




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
6.linux的文件权限与目录配置6.1 用户与用户组的定义6.2 linux文件权限概念6.2.1 linux文件权限与属性1.一般权限1) 对文件,R指用户可读取文件内容;W指用户可以编辑、新增、修改文件内容但不能删除文件;X指用户可以执行该文件。2) 对目录,R指用户可以查询目录结构(ls);W指用户可对目录下的文件删除、重命名、转移、新建等。X指用户能进入该目录,使其成为工作目录2. 特殊权限1) SetUID:(-rwsr-xr-x)使文件(仅可执行文件)在执行过程中,执行者拥有文件所有者的权限。2) SetGID:(rwxrwsr-x)对于文件,仅对可执行文件而言,在执行过程中,执行者拥有文件用户组的权限。对于目录,用户需同时拥有r与x权限才能进入该目录,用户在此目录下的有效用户组变为该目录的用户组,用户在此目录下新建的文件的用户组与此目录的用户组相同。3) SBIT:(drwxrwxrwt)对于目录,目录下的文件或目录,只有文件/目录所有者和root能够进行删除动作。4) 特殊权限的设置:4 SetUID、2 setGID、1 SBIT(chmod 7777 filename)。3. 隐藏权限1) chattr +(-)i filename:使文件不能被删除、改名、设置链接文件、写入或添加数据。2) chattr +(-)a filename:使文件只能增加数据。3) isattr filename:显示隐藏属性。一般权限 -rwx rwx rwx特殊权限 -rws rws rwx隐藏权限 -ia - -4. 默认权限1) 文件初始默认权限为666,目录初始默认权限为777.umask设置默认权限,如umask为0022,则文件默认权限为644(rw-rr-),目录默认权限为755(rwxrwxrwx).6.2.2如何改变文件和目录的权限与属性1. chgrp1) chgrp grpname file/dirname: 改变文件/目录的所属用户组2. chown1) chown ownname file/dirname:改变文件/目录的所属用户3. chmod1) chmod 777 file/dirname:改变文件/目录的所属用户的权限4. touch命令1) touch -d “2 days ago” filename:修改文件时间2) touch -t 0709150202 filename:修改文件时间3) touch filename:新建文件4) modification time (mtime):文件数据内容更改时间5) status time (ctime):文件权限属性更改时间6) access time (atime):文件读取时间6.3 linux目录配置6.3.1 linux目录配置标准FHS(filesystem hierarchy standard)FHS是一种目录规划标准。6.3.2 目录树参考链接6.3.4 linux内核信息查看1. lsb_release a2. uname r7. linux文件与目录管理7.1 目录与路径7.1.2 相对路径与绝对路径7.1.2 目录的相关操作1. cd:切换目录的命令,与之相关的有(根目录)、.(当前目录)、.(上层目录)等。2. pwd:显示当前目录3. mkdir:新建目录4. rmdir:删除空目录7.1.3关于执行文件路径的变量$PATH1. $PATH是环境(全局)变量的一种,表示命令(执行文件)查找的路径位置。2. 往PATH里添加路径:PATH=”$PATH”:/*。7.2 文件与目录管理7.2.1 查看文件与目录1. ls :1) ls:只查看目录下的文件目录的名称。2) ls al:显示当前目录下,所有文件/目录的类型、权限、节点链接数、用户、用户组、大小(B)、创建或最近被修改的日期时间、文件名,7项文件属性。3) ls l:显示当前目录下.但不查看隐藏文件。(-a代表all,-l代表list)4) ls -time=atime:更改查看的文件/目录时间类型5) ls -lid :查看文件inode信息6) ls l dir/filename:可指定查看的文件或目录7.2.2复制、删除、移动(重命名)1. cp1) cp filename PATH:复制文件,2) cp r:递归持续复制,用户目录的复杂。2. rm1) rm filename:删除文件2) rm r dirname:递归删除目录,rm命令别名已经自动加上-i参数(rm=“rm -i”),因此每次删除都会询问用户。3) rm r dirname:取消参数-i,不需要询问用户4) rm f :force的意思,忽略不存在的文件,不会出现警告信息。3. mv1) mv file/dirname PATH/newname:移动/重命名文件/目录。7.2.3 取得路径的文件名与目录名称1. basename:1) basename PATH:取得路径文件名2. dirname:2) dirname PATH:取得路径目录名7.3 文件内容的查看7.3.1直接查看文件内容1. cat:1) cat filename:由第一行到最后一行完整得在屏幕中连续显示出来2) cat-n filename:加上行号3) cat -A filename:完整显示包括特殊字符2. tac:cat的反向显示,参数都一样。3. nl:与cat n一样。7.3.2 可翻页、查询得进行查看1. more:1) more filename:可翻页查看2) 空格:向下翻一页3) Enter:向下翻一行4) /字符串:向下搜索查询字符串5) :f:显示文件名和当前行数6) b或ctrl+b:向前翻页7) q:退出2. less:more的改进版1) less filename:翻页查看文件内容,-N参数,加上行号查询2) 空格:向下翻一页3) PageUP:向上翻一页4) /字符串:向下搜索字符串5) ?字符串:向上搜索字符串6) n:重复前一个查询7) N: 复重复前一个查询8) q:退出7.3.3 数据选取1. head:1) head -n 20 filename:取出前20行的文件数据2) head -n -20 filename:取出除后20行的文件数据2. tail:1) tail -n 20 filename:列出最后20行的文件数据2) tail -n +20 filename:列出除前20行的文件数据3) tail -f filename:动态文件的显示7.3.4 非文本文件1. od 1) od -t c filename:使用ASCII码输出文件数据2) od -t oc filename:使用八进制ASCII码输出文件7.5 文件类型与查看1. -rwxrr-:普通文件,包括纯文本文件、二进制文件、数据格式文件!2. drwxrr-:目录文件!3. lrwxrr-:连接文件!4. brwxrr-:块设备文件5. crwxrr-:字符设备文件6. srwxrr-:套接字文件7. prwxrr-:管道文件8. file filename 查看文件类型7.5 命令与文件的查询1. which:1) which command:找出命令(执行文件)路径2. find1) find特定名称的文件或目录1 find / -name file/dirname: 找出整个文件系统中特定名称文件或目录,可使用*等通配符2) find特定类型的文件或目录1 find / -types 文件类型:找出文件系统中特定类型的文件a) f:一般文件;b、c:设备文件;d:目录;l:链接文件;s:socket文件;p:FIFO文件3) find特定权限的文件或目录1 find / -perm 7000:找出文件系统中权限为7000的文件2 find / -perm -7000:找出文件系统中包含“7000”权限的文件3 find / -perm +7000:找出文件系统中包含“7000”任一权限的文件4) find特定大小的文件或目录1 find / -size +/-#c/k:找出文件系统中比#bytes/kb要大/小的文件。5) find特定时间的文件1 find / -mtime #:找出在n天前的“一天之内”被更改过的文件2 find / -mtime -#:找出在n天内(不含今天)被更改过的文件3 find / -mtime +#:找出在n天内(今天)被更改过的文件4 find / -newer file/dirname:找出比file/dirname更新的文件6) find特定用户或用户组的文件1 find / -uid #:找出所属用户编号为#的文件2 find / -user uname:找出所属用户名称uname的文件3 find / -gid #:找出所属用户组编号为#的文件4 find / -group gname:找出所属用户组名称为gname的文件5 find / -nouser:找出没有所属用户的文件6 find / -nogroup:找出没有所属用户组的文件7) find的额外命令1 find / -exec command ;:-exec;代表命令的开始与结束,代表有find命令找到的结果。2 print:打印选项7.6 权限与命令间的关系8 linux磁盘与文件系统管理8.1 EXT2文件系统EX2是linux使用的最传统的文件系统。8.1.1 磁盘组成与分区1. 磁盘组成与分区1) 磁盘是由盘片、机械手臂、磁头、主轴马达四部分组成。2) 磁盘分为扇区(最小单位512b ytes)、磁道、柱体(划分磁盘最小单位)。3) 磁盘最重要的部分是第一个扇区,存有MBR(主引导区446 bytes)、分区表(64 bytes,最多只支持分4个主分区和扩展分区(最多只能有一个)4) 主分区名为sda1-sda4(SATA接口磁盘),扩展分区可以分很多个逻辑分区sda5-sda15。2. 开机流程与多重引导1) BIOS程序读取CMOS上的信息到内存中,取得各项硬件的参数,对硬件进行检测和初始化。2) BIOS读取MBR中的引导装载程序(boot loader)到内存中3) 引导装载程序将内核文件读入内存,内核加载后,重新检测硬件并加载各硬件的驱动程序,使硬件准备就绪!4) 运行第一个进程initrd,并逐步启动各种服务。5) 每个分区也会有引导扇区(boot sector),用于完成多重引导功能3. EXT2文件系统磁盘分区的具体细分:u EXT2将每个分区又分为一个引导扇区和很多个block group(块组),块组的具体内容如下:1) Super block:记录整个分区(文件系统)的信息,包括block与inode总量、使用量、size、文件系统时间信息等。每个块组都可能含有super block,来作为第一个的备份。2) File system Description:记录block group和各区段的开始与结束的block号码3) Block bitmap:记录块组中使用与未使用的block号码。4) Inode bitmap:记录块组中使用与未使用的inode号码。5) Inode table:存放inode的地方,Inode大小为128bytes,记录一个block号码要花费4bytes空间,因此但文件太大时,会使用间接方法,借用block空间进行记录(12个直接、1个间接、1个双间接、1个三间接)。6) Date block:存放block的地方,一个block最多只能存放一个文件。8.1.2索引式文件系统8.1.3 linux的EXT2文件系统(见上面第3点)1. 当单个文件太大,文件的inode(128bytes,指向一个block要4bytes)无法指向这么多block(1K、2K、4K)时,会采用间接方式,利用新的block分为inode再指向block。2. dumpe2fs 文件系统 :可查看文件系统信息。df命令查看目前挂载的设备。8.1.4 与目录树的关系8.1.5 Ext2/Ext3文件的访问与日志文件系统的功能8.1.6 linux文件系统的操作1. linux系统会将常用的数据加载在内存中,这些数据如果被更改,数据的状态会有clean变为dirty,系统会不定时得将dirty的数据写回硬盘,也可使用sync命令强制写回磁盘。正常关机情况下,系统会主要主动调用sync命令;不正常关机时,由于dirty数据没有写回磁盘,当再次启动电脑时,会进行很长时间的磁盘检验工作,甚至导致文件系统的损坏。8.1.7 挂载点的意义1. 挂载点是一个目录,该目录是进入文件系统(磁盘)的入口。根目录虽然在分区上不包含/home目录,但在目录结构上是包含/home的,因此find /时会查找/home目录。因此查找时,是以目录树为基础,而不是分区。8.1.8 其它linux支持的文件系统和VFS1. 其它linux支持的文件系统1) 传统文件系统:ext2/minix/MS-DOS/ios9660(光盘)等2) 日志文件系统:ext3/ReiserFS/WindowsNTFS等3) 网络文件系统:NFS/SMBFS2. VFS(虚拟文件系统)1) 对linux认识的文件系统进行管理,判断硬盘的文件系统并进行通信。8.2 文件系统的简单操作8.2.1 磁盘与目录的容量:df与du1. df:文件系统(分区)使用情况查询1) df 文件系统:列出文件系统的使用状态和挂载点(单位为bytes)2) df h 文件系统:以G/M/K为单位查询3) df i 文件系统:列出文件系统inode的使用情况4) 不加文件系统对象则表示查询系统上所有文件系统2. du:1) du dirname:列出目录dirname下目录的容量(单位为kb)2) du a dirname:列出目录dirname下目录的容量和文件(单位为kb)3) du s dirname:只列出目录dirname下文件和目录的总量(单位为kb)4) du b/k/m dirname:单位为bytes/kb/mb8.2.2 链接文件1. 硬连接(实际连接):在目录的block中将多个文件名对应一个inode,可以理解为文件的别名,不需要占有额外的inode和block,只需要在目录的block下添加点数据。只能对文件使用硬连接(别名),对目录不行。使用命令 ln filename1 filename2,将文件filename1产生一个硬连接(别名)filename2. 2. 符号连接(快捷方式):创建一个文件(inode+block),block记载需连接文件的目录的inode及该文件的文件名,变形成了符号链接,可以理解为快捷方式。符号连接可以针对目录。ln s filename1 filename28.3 磁盘的分区、格式化、检验与挂载没看!9 文件与文件系统的压缩与打包9.1 压缩文件的用途与技术9.2 linux常见的压缩命令:只能对文件或目录下的文件进行压缩,如果要直接对目录进行压缩,那要使用tar命令。1. compress/uncompress:比较老旧的压缩工具,基本被淘汰了1) compress -rv filename:将文件filename压缩为filename.z2) compress c filename newname.Z:将文件filename压缩,但压缩数据输入到屏幕上,可使用数据流重定向!3) compress r filename:将目录下的文件压缩,不保留原文件4) uncompress filename.Z:将压缩文件解压,和compress参数一致2. gzip、zcat:使用最广泛的压缩工具,可以解开compress、zip、gzip等软件压缩的文件。但只能压缩文件不能压缩目录下的文件。1) gzip -tv# filename:将文件filename压缩为filename.gz,-#表示压缩等级,-1最快但压缩比最差,-9最慢,但压缩比最好,默认为-62) gzip c:将压缩数据输入到屏幕中,用作数据流重定向。3) gzip -d filename.gz:将文件解压4) zcat filename:查看压缩文件内容3. bzip2、bzcat:比gzip更好的压缩工具,只能压缩文件1) bzip2 zvk# filename:将文件压缩为filename.bz2,并保留原文件(k)2) bzip2 c filename:将压缩数据输入到屏幕上,用作数据流重定向3) bzip2 d filename.bz2:解压缩4) bzcat filename.bz2:查看压缩文件内容9.3 打包命令1. tar(压缩与打包)1) tar -jcv -f file/dirname.tar.bz2 file/dirname:对file/dirname使用bzip2进行打包压缩为filename/dirname.tar.bz2(-j表示bzip2,-z代表gzip),且保留原文件。2) tar -jtv -f file/dirname.tar.bz2:查看打包文件file/dirname.tar.bz2内容3) tar -jxv -f file/dirname.tar.bz2 (-C PATH):解压缩,保留原打包压缩文件4) tar -jcv -f root.tar.bz2 -exclude=/root/* /root:打包压缩/root,但不含*文件 5) -new-mtime=“2014/09/09”: 仅备份某时间以后的文件/目录6) tar -jcv -f - | tar -jxv -:一边备份一边解压9.4 完整备份与恢复工具:dump与restore1. dump1) dump一般用作系统设备(文件系统)差异备份工具,0表示完整备份,1-9表示差异备份。dump -0u f A.dump A ; dump -1u -f A.dump1 A;2) 也可用于备份一般文件与目录,只能使用完整备份,dump -0j f A.dump A 9.5 光盘写入工具mkisofs与cdrecord(没看)9.6其它常见的压缩与备份工具1. 备份工具:dd2. 备份工具:cpiocpio必须要知道每一个备份文件的名字才能备份,所以要搭配find和数据流重定向的命令。10 vim程序编辑器10.1 vi与vimvim是vi的升级版!10.1.1为何要学vim10.2 vi的使用1. 一般(默认)模式:可进行光标移动,删除、复制、粘贴等操作。2. 编辑(i插入)模式:可对文件进行编辑,添加内容3. 命令行(末行: / ?)模式:1) :对文件保存、离开等2) ?、/:搜索10.2 多文件的编辑10.3 中文编码的问题10.4 DOS与linux断行字符1. DOS的断行符号为M$(CRLF)M可使用r替代,LINUX则为$。2. 两者转换使用dos2UNIX和UNIX2dos10.5 语系编码转换(格式工厂!)iconv命令11 认识与学习bash11.1 认识bash这个shell11.1.1 硬件、内核与shell我们必须要通过”shell”将我们输入的命令与内核进行通信,好让内核可以控制硬件来正确无误地工作。shell给用户提供一个接口,以便和内核通信,继而控制硬件。shell又是一种语言,有其特定的语法和命令。11.1.2 为何要学命令行界面的shell11.1.3 系统合法的shell与/etc/shells功能1. 系统合法的shell有:1)/bin/sh(bourne shell已被bash取代)2)/bin/bash (bourne again shell linux默认的shell)3)/bin/ksh (kornshell,AT&T Bell lab 提出,兼容于bash)4)/bin/csh (BSD shell,语法类似于C语言,已被tcsh取代)5)/bin/zsh (功能更强大的shell)2. /etc/shells记录了系统合法的shell和一些奇怪的shell(nologin shell)。11.1.4 bash shell 的功能1. 命令记忆能力(默认可记忆1000个)2. 命令与文件补全与查询(TAB)3. 命令别名设置(alias)4. 作业控制、前台、后台控制(job control、 foreground、background)5. 程序脚本(shell script)6. 通配符(*等)11.1.5 bash shell的内置命令:type1. type:利用type command,可查询command是否已内置在bash中,可替代which进行命令的查询。1) type command:查询命令类型,是否为bash内置命令2) type -t command:查询命令类型,file(外部)、alias、builtin(内置)3) type -a command:查看命令路径11.1.6 命令的执行11.2 shell 的变量功能11.2.1 什么是变量11.2.2 变量的显示与设置:echo,unset1. 变量相关内容1) 变量赋值时,变量内容含有空格可使用单引号或双引号括起;双引号中,会保有特殊字符的原本特性。但单引号会转化为一般字符。2) $变量使用总结1 变量显示时使用 echo $PATH2 取得命令执行结果 $(uname -r)3 取得变量内容 name1=$name4 数值运算:var=$(运算内容)5 awk后接的字段:$0(整行)、$1(第一字段)、$2、.6 shell script的默认变量 $0、$1、$23) echo $var,echo “字符串”:显示变量或字符串1 echo n:取消行未自动换行2 echo e:启用反斜线”的控制字符,-E为关闭。a) a:从系统发出声音b) b:删除前一个字符c) c:最后不叫上换行符号,相当于-n参数d) n:换行符号e) :插入字符“”f) #:插入八进制#所代表ASCII字符3 echo的颜色显示a) echo e “033#1;#2m string”:设置字符串显示的字体颜色和背景颜色。b) 30m-37m:黑色字-白色字c) 40m-47m:黑色背景-白色背景4 echo详解/ZhangShuo/articles/1829589.html4) export varname:让变量varname成为环境变量,可以在shell子进程中保留。5) unset varname 取消变量设置11.2.3 环境变量的功能1. 查看环境变量:env;查看环境变量与自定义变量:set/declare1) HOME代表用户的主文件夹。2) SHELLshell的默认程序(bash)3) HISTSIZE历史命令被记录的条数4) MAIL邮件信箱文件设置5) PATH执行文件查找路径的设置6) LANG语系编码设置7) RANDOM随机数(0-32767)8) PS1提示符设置9) $shell进程的PID10) ?上一各执行命令的回传值,执行正确返回0,错误返回1。11) OSTYPE、HOSTTYPE、MACHTYPE主机硬件与内核的等级11.2.4 影响显示结果的语系变量(locale)1. 查询linux支持的语系及设置1) locale -a: 查询linux支持的语系2) locale:查询linux语系设置,即/etc/sysconfig/i18n里的内容2. 修改系统语系1) cat /etc/sysconfig/i18n:11.2.5 变量的有效范围11.2.6 变量的键盘读取、数组与声明、read,array,declare1. read:读取来自键盘的变量1) read var:读取键盘输入内容,设置变量var;以回车键作为结束2) read -p string var:加入提示语句string3) read -t # var:加入等待时间#秒2. declare/typeset:声明变量类型1) declare -i var:将变量声明为整数类型(默认为字符串类型)(+取消,下同)2) declare -x var:将变量声明为环境变量(全局变量)3) declare -r var:使变量不能被修改和重设4) declare -p var:列出变量类型5) bash默认的变量类型为字符串类型;数组运算时,最多支持整数。6) 数组(array):数组的显示echo $varindex11.2.7 与文件系统及程序的限制关系(ulimit)1. bash可以限制用户使用某些系统资源,包括可以打开的文件数量、可以使用的CPU时间、可以使用的内存总量等。重启后ulimit的设置值消失。1) ulimit a:列出目前身份的所有限制数据2) ulimit -f 102400:限制所有用户新建单个文件的大小11.2.8 变量内容的删除、替代与替换1. 变量内容的删除(仅显示删除,并非真的删除)1)$var#起始符号*终止符号:从前往后,删除起始符号间最短内容。2)$var#起始符号*终止符号:从前往后,删除起始符号间最长内容。3)$var%起始符号*终止符号:从后往前,删除起始符号间最短内容。4)$var%起始符号*终止符号:从后往前,删除起始符号间最长内容。2. 变量内容的替换(仅显示)1)$var/旧字符串/新字符串 ,对第一个旧字符串进行替换。2)$var/旧字符串/新字符串 ,对所有旧字符串进行替换。3. 变量的测试与内容替换1) var1=$var - root1 若变量var未定义,var1=$root,var不变。2 若变量var已定义,var1=$var,var不变。2) var1=$var :- root1 如变量var未定义或为空字符串,var1=root,var不变。2 如变量var已定义且为非空字符串,var1=$var,var不变。3) var1=$var=root1 如变量var未定义,var=root,var1=root。2 如变量var定义,var1=$var,var不变。4)var1=$var:=root 类似2)5)var1=$var?root1 变量var未定义,将root输出至stderr2 变量已定义,var1=$var,var不变。6)var1=$var:?root 类似11.3 命令别名与历史命令11.3.1 命令别名的设置:alias,unalias1. 命令别名的设置:alias newcommand=oldcommand2. 命令别名的取消:unalias newcommand3. 命令别名的查询:alias11.3.2 历史命令:history1. history:列出目前内存内所有history命令,注销时会将内存中的命令写入用户主文件下的/.bash_history中的,默认记录1000条2. history #:列出近#条命令3. history W:强制将内存中的命令写入到/.bash_history4. history c:清除内存中所有history命令5. !#:执行第#条命令;!:执行上一条命令;!al:执行以al开头的命令11.4 bash shell的操作环境11.4.1 路径与命令的查找顺序1. 以相对/绝对路径执行命令,会直接执行对应路径下的命令,如直接执行命令的话,命令路径的查找顺序如下,如是命令别名的话,会查找原命令的路径。1) 由bash内置的(builtin)命令来执行2) 通过$PATH变量的顺序找到第一个命令来执行11.4.2 bash的登入与欢迎信息:/etc/issue、/etc/motd1. /etc/issue:tty的进站界面信息2. /etc/motd:用户登入界面信息11.4.3 bash的环境配置文件11.4.4终端机的环境设置:stty,set11.4.5 通配符与特殊符号1. 通配符(wildcard)1) *:代表0到无穷个任意字符2) ?:代表一定有一个任意的字符3) :代表一定有一个中括号里的字符4) -:连续性表述5) :的反向选择6) :digdit:等:特殊符号2. 特殊符号:很多11.5 数据流重定向11.5.1 什么是数据流重定向1. 输出重定向改变标准输出信息和标准错误输出信息的传输轨道,将信息输入到新文件或设备中。1) standard output 与standard error output1 standard output(标准输出)a) 标准输出是指命令执行所回传的正确信息,会传输到特定的文件或设备中(屏幕)。2 standard error output(标准错误输出)a) 标准输出是指命令执行所回传的错误信息,会传输到特定的文件或设备中(屏幕)。2) 1/1:正确信息以覆盖/累加的方式输入到指定的文件/设备中(默认)3) 2/2:错误信息以覆盖/累加的方式输入到指定的文件/设备中(默认),当正确信息与错误信息要输入到同一文件中时,注意使用2&1或2&1。2. 输入重定向将原本由键盘输入的数据改由文件内容来替代。1) standard input(标准输入)键盘输入2) / filename:相当于新建文件filename。11.5.2 命令的执行判断依据:;、&、|1. cmd1;cmd2:一行内连续执行多个命令。2. cmd1&cmd2:cmd1执行正确,cmd2执行;cmd1执行错误,cmd2不执行。3. cmd1|cmd2:cmd1执行正确,cmd2不执行;cmd1执行错误,cmd2执行。4. cmd1&cmd2&cmd3:由左向右执行。11.6 管道命令格式(pipe)管道命令格式类似与数据流重定向,是将前一个命令的标准输出,作为后一个命令的标准输入。11.6.1 选取命令:cut,grep1. cut:对文件内容进行选取,以行为单位1)cut d 分隔字符 -f # filename:选取每行中的第#个内容2)cut c #-# filename:选取每行中范围为#-#的内容2. grep:对文件内容进行搜索,以行为单位1) grep var filename:将文件内容中含有字符串var的行搜索出来。2) grep -v var filename:反向搜索3) -color=auto:搜索内容加上颜色4) grep -A#1 -B#2 string filename:将关键字的前#1和后#2一起显示出来5) grep n:添加行数显示6) grep i:忽略大小写11.6.2 排序命令:sort,wc,uniq1. sort1) sort filename:sort默认以第一个字符进行排序,第一个字符相同再比较第二个字符。默认是先数字(0-9)再字母(a、A、b、B、z、Z),特殊字符会被忽视掉,选择特征字符后面的字符进行排序。2) sort n filename:先字母再数字,但是0排在最前面3) sort t 分隔符 k # filename:根据第#个字段进行排序4) sort r filename:反向排序2. uniq1) sort filename | uniq :配合sort命令,将相同行合并为一行2) sort filename|uniq c:添加计数功能3. wc:统计文件内容的行、字(英文单词)、字符数1) wc l:统计行数2) wc w:统计字数3) wc m:统计字符数11.6.3 双向重定向:tee(仅应用于管道中)1. 双向重定向,将输出同时传输到当前文件/设备或命令中。1) ls l / |tee filename | command:双向重定向,将输出同时传输到当前文件和命令。2)tee a:以累加方式传输到文件中。11.6.4 字符转换命令:tr,col,join,paste,expand1. tr:文件内容的替换和删除(仅应用于管道中)1)| tr 旧内容 新内容:新内容替换旧内容2)|tr d 内容:删除文件中的指定内容2. col:特殊字符tab和/的转换命令(仅应用于管道中)1)|col x:将TAB键转换为对等的空格键2)|col b:在文字内有/时,仅保留/最后接的那个字符。3. join:将两个文件的相关行,显示为同一个文件中1) join t 分隔符 -1 #1 filename1 -2 #2 filename2:对比以分隔符为分隔的第一个文件的第#1个字符和第二个#2字符,将相关行显示在同一个文件中。2) 默认情况下,分隔符是空格;对比第一组字符。注意使用join命令之前,文件必须都是排好序的,否则无法正确的显示4. paste:与join类似,直接将相关两行写在同一行,以TAB分开。1) paste filename1 filename2:默认以TAB分隔2) paste d 分隔符3) paste filename1 filename2 -:-代表标准输入5. expand:将TAB转换为空格1) expand t # filename:将TAB用#个空格替换。11.6.5 切割命令:spilt1. spilt:文件的切割命令1) spilt b #b/k/m filename1 filename2:将文件filename1以#b/k/m为单位进行切割,切割文件为filename2aa、filename2ab2) spilt l # filename1 filename2:以#行为单位对文件进行切割11.6.6 参数代换:xargs(仅应用于管道中)1. xargs:将标准输入信息作为所接命令的参数,以行为单位,参数必须在命令的最后!1)|xargs command:将标准输入信息作为所接命令的参数,以行为单位2)|xargs n # command:一次执行#行。3)|xargs p command:执行命令时,执行一行,询问一次。4)|xargs e 字符串:到字符串时,结束。11.6.7 关于减号-的用途1. 在管道命令可代表stdout和stdin:tar cvf - /home |tar xvf -12 正则表达式与文件格式化处理12.1 前言:什么是正则表达式12.1.1 什么是正则表达式1. 正则表达式就是处理字符串的方法,它以行为单位对进行字符串的处理,通过一些特殊符号的辅助,可以让用户轻易得完成查找、删除、替换某特定字符串处理工作。常用的正则命令有:grep;sed等;正则命令加上一些特殊字符就组成了正则表达式。12.1.2 正则表达式对于系统管理员的用途12.1.3 正则表达式的广泛用途12.1.4正则表达式与shell在linux当中的角色定位12.1.5 扩展的正则表达式1. 正则表达式的字符串表示方式依据不同的严谨程度而分为基础正则表达式和扩展正则表达式。12.2 基础正则表达式12.2.1 语系对正则表达式的影响1. 主要表现字符的排序等问题12.2.2 grep的一些高级参数1. grep n A#1 -B#2 string filename:连同后面#1行和前面#2行一起搜索出来12.2.3 基础正则表达式练习12.2.4 基础正则表达式字符与1. 正则表达式中的特殊符号1) :在内时表示反向选择,在外或没有时表示行首2) $:表示行尾3) .:代表一定有一个任意字符4) :转义字符,将特殊符号的特殊意义去除5) *:重复0个到无穷个的前一个字符6) :与通配符相似的功能一样7) #1,#2:连续#1-#2个前一个字符。2. 正则表达式特殊符号与通配符号1) 不同之处:正则表达式特殊符号侧重对文件内容的变量表示,而通配符侧重于对文件名的变量表示。而且*的意义不相同2) 相同之处:正则表达式特殊符号和通配符都是一种变量表示方法,且在两者之间可以通用!12.2.5 sed工具u sed:以行为单位,对文件内容进行替换、删除、新增、选取特定行等操作,只是一种显示修改,并未真正得内文件内容进行修改,除非加上参数-i。1. 以行为单位的新增功能1) sed #a string filename:在文件内容第#行后,即第#+1行新增内容string2) sed #i string filename:在文件内容第#行前,即第#-1行新增内容string3) sed #a string1 string2:在文件内容第#行后,新增string1和string2两行内容2. 以行为单位的删除功能1) sed #d filename:将文件内容第#行删除2) sed #,$d filename:将文件内容第#行到最后一行都删除3. 以行为单位的替换与显示功能1) sed #1,#2c string filename:将文件内容第#1-#2行替换为string2) sed n #1,#2p filename:仅显示文件内容的#1-#2行4. 部分数据的查找替换功能(可以使用正则符号)1) sed s/oldstring/newstring/g:用新字符串内容替换就字符串内容5. 直接修改文件内容:1) sed i:加上i参数12.3 扩展的正则表达式u 扩展的正则表达式无非就是增加了一些特殊字符,但是使用这些扩展的特殊时,grep必须加上-E参数,或使用扩展的正则命令12.4 文件的格式化与相关处理12.4.1 格式化打印:printf1. printf $var:功能类似与echo,但echo不能使用n等格式。2. printf 打印格式 打印内容:使打印内容按照打印格式进行输出。3. n:换行;4. r:enter,不会显示打印内容5. t:水平tab;v:垂直tab6. #:将数字#对应的ascii符号显示出来7. %ns:长度为n的字符串位置8. %ni:长度为n的数字位置9. %N.nf:前面为N,小数点后长度为n的数字位置12.4.2 好用的文件内容处理工具:awku awk是一个非常棒的数据处理工具,相比于sed常常作用于一整行的处理,awk则比较倾向于将一行分成数个“字段”来处理,因此,awk适合处理小型数据1. awk 条件类型1commands条件类型2commands filename:awk命令的一般格式;条件类型主要是利用逻辑逻辑运算符进行判断;commands主要是使用printf或print;在awk中,变量可以直接使用,不需要加上$符号(指NF等变量)。2. $0,$1,$2:$0代表一整行,$#代表第#个字段;默认以TAB进行分隔。3. NF:每一行的字段总数;NR:awk目前处理的是第几行;FS:分隔字符,默认是TAB4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药品连锁采购管理制度
- 药库药品使用管理制度
- 药店基本药物管理制度
- 药店药品供应管理制度
- 薪资等级晋升管理制度
- 设备信息档案管理制度
- 设备大修计划管理制度
- 设备招标采购管理制度
- 设备润滑及其管理制度
- 设备维修安装管理制度
- 2024年黔东南州能源投资限公司招聘(高频重点提升专题训练)共500题附带答案详解
- JGJ100-2015 车库建筑设计规范
- 2024年陕西省西安市碑林区西北工业大学附属中学丘成桐少年班选拔复试数学试题
- 人音版六年级下册音乐教案及反思
- DL-T800-2018电力企业标准编写导则
- 北师大版六年级下册数学期末测试卷a4版可打印
- 五金材料采购投标方案(技术方案)
- IATF16949不符合项整改8D报告
- 《电磁学》梁灿彬课后答案解析
- 产品保修卡模板
- 英国签证申请资料表(请完整填写)
评论
0/150
提交评论