1、cut (显示行中的指定部分,删除文件中指定字段)
1)、
-b:仅显示行中指定范围的字节数;
-c:仅显示行中指定范围的字符;
-d:指定字段的分隔符,默认的字段分隔符为“TAB”;
-f:显示指定字段的内容;
[root@admin ~]# cat file |cut -b 0,4
[root@admin ~]# cat file |cut -b 1,4
Ts
Tt
[root@admin ~]# cat file |cut -b 1,2
Th
Th
[root@admin ~]# cat passwd |cut -d : -f 1
[root@admin ~]# cat file |cut -b 1 -n #不以字节分割,多字节会输出
2、 sort 排序
[root@admin ~]# cat file2 |sort
[root@admin ~]# cat file2 |sort -t ";" -k3
L:76
l:108
J:74
j:106
LANG="en_US.UTF-8"
[root@admin test]# ll |sort -k6 -M #月份(系统识别)
[root@admin ~]# cat file2 |sort -k3 -n #数字排序 ---(字符) 1,2,3 .... 11 ,12,
[root@admin ~]# cat file2 |sort -k3 -nr #到序
[root@admin ~]# cat file2 |sort -k5 -nu #去重
[root@admin ~]# cat file2 |sort -k5 -nuo num #输出到文件 num中
3、uniq 去重
:相邻的两行做比较
[root@admin ~]# cat /file4 |sort |uniq -f1 #跳过几列后对比
[root@admin ~]# cat /file4 |sort |uniq -i -f1 #不区分大小
[root@admin ~]# cat /file4 |sort |uniq -i -s1 #跳过字符
[root@admin ~]# cat file4 |sort |uniq -u #只显示唯一行
[root@admin ~]# cat /file4 |sort |uniq -w1 -d #只显示重复的行
[root@admin ~]# cat /file4 |sort |uniq -w1 #1个字符之后的忽略
[root@admin ~]# cat /file4 |sort |uniq -w1 -c #统计相同的行数
[root@admin ~]# cat /file4 |uniq -f1 -D #取重复行
[root@admin test]# cat file |uniq -z |xargs -0
a b
c d
[root@admin test]#
[root@admin test]#
[root@admin test]# uniq -z ---->标准输出时\0 ; xrags -0 遇到0换行
-z, --zero-terminated 末尾生成0个字节的终止符作为输出(\0),这样的目的就是避免一条记录行因为存在空格被识别为多行
例如:当文本中的行记录是以空格分隔,并且需要将标准输出传给xargs,由于xargs是以空格作为分隔符,但是实际需要将整个文本内容作为一个完整的输出,
这个时候就需要使用-z参数在文本末尾生成\0的终止符告诉程序整个文本作为一个整体,
[root@admin ~]# cat file4 | uniq -z | xargs -0
4、 xargs
给命令传递参数
[root@admin ~]# echo file3 file4 file5 |xargs rm -rf
会把空格以及换行转化为空格。
[root@admin test]# cat var
fiel1
fiel2
fiel3
fiel4
fiel5
[root@admin test]# cat var |xargs rm -rf
5、wc
[root@admin test]# cat var1 |wc -c #统计字节 ,Linux系统上每行结尾有一个换行符
[root@admin test]# ll |wc -l #统计行
[root@admin test]# cat var1 |wc -m #统计字符
[root@admin test]# cat var2 |wc -w #-w 统计字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
[root@admin test]# cat var2 |wc -L #统计最长行长度
6、tail :文后的若干行
[root@admin log]# tail yum.log |wc -l #输出文尾10行
[root@admin log]# tail -f yum.log #动态输出
[root@admin log]# tailf -20 yum.log #动态输出20行
[root@admin log]# tail -c 1 yum.log #指定字节
[root@admin log]# tail -n 20 yum.log #之后多少行
7、head :文前的若干行
[root@admin log]# head yum.log #查看文前10行
[root@admin log]# head -c2 yum.log #取字节
[root@admin log]# head -n20 yum.log #文前多少行
8、which
which安装PATH的环境变量的去查文件,默认一旦找到则后面的文件就不会再查找。
[root@admin log]# file `which pwd`
[root@admin ~]# which pwd ---- /usr/bin/pwd
[root@admin ~]# `which pwd` ---->解析执行 /usr/bin/pwd
/root
[root@admin ~]# /usr/bin/pwd
/root
[root@admin ~]# which -a pwd #查看$PATH的所有路径
9、whereis 查找可执行文件,$PATH
[root@admin ~]# whereis pwd #可执行文件 + 帮助
[root@admin ~]# whereis -b pwd #可执行文件
[root@admin ~]# whereis -m pwd #帮助文件
10 、locate && find
find :查找真正的文件系统。
locate :locate自己的数据库。将文件系统定时的更新到自己的数据库中
查找速度快
模糊查找
非实时查找;
[root@admin ~]# updatedb #手动触发构建索引库
[root@admin ~]# locate -b /etc/ passwd
[root@admin ~]# locate -b -c /etc/ passwd #统计数字
[root@admin ~]# locate -r .*wd$ #正则查找
find:
[root@admin test]# find 123/ -depth -user root # 从最里层查看文件,在查目录。默认是先查目录,在查文件
[root@admin test]# find 123/ -maxdepth 3 -user root
[root@admin test]# find 123/ -mindepth 3 -user root
[root@admin test]# find / -maxdepth 7 -mindepth 4 -name passwd
[root@admin test]# find /usr/ -not -user root
[root@admin home]# find . -not -user test01 -a -not -user test02
[root@admin home]# find . -not \( -user test01 -o -user test02 \)
(修改时间)
[root@node2 ~]# find . -mtime 1 相隔24小时
[root@localhost test]# find . -mtime -2 查找出文件最后一次修改时间距离现在2*24小时的内容。
[root@localhost test]# find . -mtime -3
[root@localhost test]# find . -mtime -4
[root@localhost test]# find . -mtime -5
[root@localhost test]# find . -mtime +1 查找出文件最后已修改时间在现在时间24-48小时之外的文件。(不到一天,不算)
[root@localhost test]# find . -mtime +2
[root@localhost test]# find . -mtime +3
(访问时间)
[root@admin find]# find / -atime -7