1 查找工具find
查找某一特征的文件,可以利用find。name选项是根据文件名查找,例如:#find /etc -name
"*.conf"。perm是根据权限查找,例如:#find / -perm 664。type是根据类型查找,例如:#find /dev
-type c。mtime是根据修改时间查找,+n表示n天以前,-n表示n天之内,例如:#find ~ mtime
-1。size是根据文件大小查找,+n表示长度大于n,-n表示长度小于n,默认单位是512字节,如果以字节计算应加c,例如:find
. -size -5c。
在Linux管理和维护中,大多数查找是为了处理这些文件,通常是删除、移动等。
可以使用exec和ok对查找到的文件执行Shell命令,不同的是ok执行较危险的命令。格式:-exec [Shell命令] {}
\;。例如:#find . -name "a*" -exec ls -l {} \;
在利用exec和ok参数时存在一些缺陷,一是传给exec和ok的文件列表长度有限,二是每个文件发起一个相应的处理进程。xargs命令是构造参数列表并交给命令执行,不是一次获取所有文件,而是每次获取部分处理完再获取下一部分。整个过程只发起一个处理进程,对系统影响很小。例如:#find
. -name "a*" | xargs ls -l。
2 查找文本工具grep
从命令输出或者文本文件中找到一两行主要内容。
i忽略大小写;n输出行号;v输出匹配内容以外的行。例如:#grep "a" a。
多文件查找,例如:#grep "ab" /etc/*。
3 流编辑器sed
与grep一样,源于老式的ed编辑器。sed是一种非交互式编辑器(即用户不参与编辑过程),使用预先设定好的编辑指令对输入文本进行编辑,并输出结果。sed通常用来对多个文件或命令进行重复处理,以达到简化操作的目的。
n不输出所有行;e允许在后面添加新的编辑命令;f用于指定编辑命令的脚本文件。
4 格式化文本数据抽取awk
与sed类似,awk也有两种调用方式,一种是直接用awk命令调用,另一种是要输入的选项放到脚本文件中。
5 转换和删除重复命令tr
tr命令用于处理字符串转换和删除,例如小写转换为大写:#tr "[a-z]" "[A-Z]"
6 合并和分割工具
sort命令进行排序和合并,例如:#sort aa >aaa。按指定域排序,例如:#sort
-k4 students。
数据剪切命令cut,例如前10个字节的内容:#cut -b-10- aaa,例如5-8个字符:#cut -c5-8
aaa。
数据粘贴命令paste。
数据连接命令join。
去除重复命令uniq,例如:#uniq aa > aaa。
分割文件命令split,在管理和维护Linux中,有时为了传输方便,可以利用Linux的split,将大文件分割成若干小文件。例如指定每3行划分为一个文件:#split
-l 3 a splita。