前端之家收集整理的这篇文章主要介绍了
课后习题3--正则表达式,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_
404_0@1、查出分区空间使用率的最大百分比值
[root@centos7~]#df|grep"^/dev"|grep-v"cdrom$"|tr''':'|tr-s':'|cut-d:-f5|sort
1%
4%
73%@H_404_3@
@H_404_0@2、查出用户UID最大值的用户名、UID及shell类型
[root@centos7~]#cat/etc/passwd|sort-n-t:-k3|cut-d:-f1,3,7|tail-1
nfsnobody:65534:/sbin/nologin@H_404_3@
@H_404_0@3、查出/tmp的权限,以数字方式显示
[root@centos7~]#stat/tmp|head-4|tail-1|tr'(/)'':'|tr''':'|tr-s':'|cut-d:-f2
0777@H_404_3@
@H_404_0@或者
[root@centos7~]#stat/tmp|grep"^A.*)$"|tr'''\n'|head-2|tail-1|tr-cd'[:digit:]'
0777@H_404_3@
@H_404_0@4、统计当前连接本机的每个远程主机IP的连接数(包括端口号),并按从大到小排序
[root@centos7~]#netstat-tan|grep"^tcp\>"|tr'''*'|tr-s'*'|cut-d*-f4|uniq-c|sort-r
310.1.0.17:22
1192.168.122.1:53
1127.0.0.1:631
1127.0.0.1:25
10.0.0.0:22@H_404_3@
@H_404_0@5、显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式)
@H_404_0@方法一
[root@centos7~]#grep"^[sS]"/proc/meminfo
SwapCached:6928kB
SwapTotal:2097148kB
SwapFree:2051836kB
Shmem:20884kB
Slab:150348kB
SReclaimable:84320kB
SUnreclaim:66028kB@H_404_3@
@H_404_0@方法二
[root@centos7~]#grep-i"^s"/proc/meminfo
SwapCached:6928kB
SwapTotal:2097148kB
SwapFree:2051836kB
Shmem:20884kB
Slab:150348kB
SReclaimable:84320kB
SUnreclaim:66028kB@H_404_3@
@H_404_0@6、显示/etc/passwd文件中不以/bin/bash结尾的行
[root@centos7~]#grep-v"^/bin/bash"/etc/passwd@H_404_3@
@H_404_0@7、显示用户rpc默认的shell程序
[root@centos7~]#grep"^rpc\>"/etc/passwd|cut-d:-f1,7
rpc:32:/sbin/nologin@H_404_3@
@H_404_0@8、找出/etc/passwd中的两位或三位数,必须是正整数
[root@centos7~]#grep-E"\<1[0-9]{1,2}\>"/etc/passwd@H_404_3@
@H_404_0@9、显示/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面存非空白字符的行
[root@centos7~]#grep"^[[:space:]]\+[^[:space:]]\+.*"/etc/grub2.cfg@H_404_3@
@H_404_0@10、找出“netstat -tan”命令的结果中以‘LISTEN’后跟任意多个空白字符结尾的行
[root@centos7~]#netstat-tan|grep-E"LISTEN[[:space:]]*$"
tcp00192.168.122.1:530.0.0.0:*LISTEN
tcp000.0.0.0:220.0.0.0:*LISTEN
tcp00127.0.0.1:6310.0.0.0:*LISTEN
tcp00127.0.0.1:250.0.0.0:*LISTEN
tcp600:::22:::*LISTEN
tcp600::1:631:::*LISTEN
tcp600::1:25:::*LISTEN@H_404_3@
@H_404_0@11、添加用户bash、testbash、basher以及nologin(其shell为/sbin/nologin),而后找出/etc/passwd文件中用户名同shell名的行
[root@centos7~]#grep-E"^\<(.*)\>.*\<\1\>$"/etc/passwd
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
nologin:x:4346:4346::/home/nologin:/sbin/nologin@H_404_3@
@H_404_0@12、显示三个用户root、mage、wang的用户名、UID和默认shell
[root@centos7~]#grep-E"^(root|mage|wang)\>"/etc/passwd|cut-d:-f1,7
root:0:/bin/bash
mage:4347:/bin/bash
wang:4348:/bin/bash@H_404_3@
@H_404_0@13、找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行
grep-E"^[[:alpha:]_]+\(\)"/etc/rc.d/init.d/functions@H_404_3@
@H_404_0@14、使用egrep取出/etc/rc.d/init.d/functions中其基名
[root@centos7~]#echo/etc/rc.d/init.d/functions|grep-E-o"[^/]+/?$"
functions@H_404_3@
@H_404_0@15、使用egrep取出上面路径的目录名
[root@centos7~]#echo/etc/rc.d/initd/function|grep-E-o"^/.*/"
/etc/rc.d/initd/@H_404_3@
@H_404_0@16、显示ifconfig命令结果中所有IPv4地址
[root@centos7~]#ifconfig|grep-E-o'(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])'
10.1.0.17
255.255.0.0
10.1.255.255
127.0.0.1
255.0.0.0
192.168.122.1
255.255.255.0
192.168.122.255@H_404_3@
@H_404_0@
@H_404_0@附一个取目录名的方法,大家帮忙解释一下哈!
[root@centos7~]#echo/etc/rc.d/initd/function/|grep-E-o"^/.*/\b"
/etc/rc.d/initd/@H_404_3@