1.find详解
查看/usr/local 下面 带 “nginx” 文件 或目录
find /usr/local/ -name "*nginx*"
只找文件 或 只找目录
find /usr/local/ -name "*nginx*" -type f
######
-type f: 只找文件
-type d : 只找目录
按时间,大小过滤
#查找当前目录名称为xxx的目录且1天内创建 且大小大于1k
find . -name "xxx" -type d -mtime -1 -size +1k
#######参数解释
-mtime -1 : -1代表1天内创建的, +1代表1天外创建的。
-size +1k : 大于1k的 +1M代表大于1M的 -1k代表小于1k的。
查找文件后执行命令
#将当前一天内创建的*.logs目录 拷贝到 /tmp目录下
find . -name "*.logs" -type d -mtime -1 -exec cp -r {} /tmp \;
#######参数解释
-exec cp -r {} /tmp : 执行cp命令,{}代表前面find的结果
2.grep详解
找文件中带有以"linux"开头的字符串
grep -n --color "^linux" 1.txt
#####参数解释
-n : 显示行号。
--color : 显示 颜色。
^linux : 以linux开头, linux$ 以linux结尾。
反向选择 : 查找不包含linux的行
grep -v "linux" 1.txt
#####参数解释
-v : 反向选择。
3.awk详解
案例一:假如有一个文件1.txt 内容如下:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
按:号截取第一列到最后一列
[root@VM-0-3-centos test]# awk -F: '{print $1"---"$NF}' 1.txt
root---/bin/bash
bin---/sbin/nologin
daemon---/sbin/nologin
adm---/sbin/nologin
lp---/sbin/nologin
sync---/bin/sync
shutdown---/sbin/shutdown
halt---/sbin/halt
-F : 指定分隔符,默认是空格。
‘{print
1
"
−
−
−
"
1"---"
1"−−−"NF}’ : 打印第1列 和 最后一列 , 并用指定的—连接。
案例二:
找到上面ip地址,并把.替换成- ,结果输出:
172-17-0-3
ifconfig|grep "inet "|grep -v "127.0.0.1"|awk -F " " '{print $2}'|awk -F "." '{print $1"-"$2"-"$3"-"$4}'
第一层grep
ifconfig|grep "inet " : 查找含inet空格的 字符串,结果:
[root@VM-0-3-centos test]# ifconfig |grep "inet "
inet 172.17.0.3 netmask 255.255.240.0 broadcast 172.17.15.255
inet 127.0.0.1 netmask 255.0.0.0
第二层grep
ifconfig|grep "inet "|grep -v “127.0.0.1” : 把 含127.0.0.1排除
[root@VM-0-3-centos test]# ifconfig|grep "inet "|grep -v "127.0.0.1"
inet 172.17.0.3 netmask 255.255.240.0 broadcast 172.17.15.255
第三层awk
awk -F " " ‘{print $2}’ : 以空格分隔列, 打印出第二列。
[root@VM-0-3-centos test]# ifconfig|grep "inet "|grep -v "127.0.0.1"|awk -F " " '{print $2}'
172.17.0.3
第四层awk
awk -F “.” ‘{print $1"-"$2"-"$3"-"$4}’ : 以.分隔,打印1,2,3,4列,中间添加-号
[root@VM-0-3-centos test]# ifconfig|grep "inet "|grep -v "127.0.0.1"|awk -F " " '{print $2}'|awk -F "." '{print $1"-"$2"-"$3"-"$4}'
172-17-0-3