分析文本工具相关练习题
1 、找出ifconfig 命令结果中本机的所有IPv4 地址
~]# ifconfig|tr -cs '[0-9].' '\n'|sort -ut '.' -k3 255.255.0.0 127.0.0.1 10.1.249.36 10.1.255.255
2 、查出分区空间使用率的最大百分比值
~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg0-root 20G 6.1G 13G 33% / tmpfs 491M 0 491M 0% /dev/shm /dev/sda1 190M 34M 147M 19% /boot /dev/mapper/vg0-usr 9.8G 2.1G 7.2G 23% /usr /dev/mapper/vg0-var 20G 122M 19G 1% /var ~]# df -h|tr -s ' '|cut -d ' ' -f 5|sort -n|tail -1 33%
3 、查出用户UID 最大值的用户名、UID 及shell 类型
~]# cat /etc/passwd|sort -t: -k3 -n|tail -1|cut -d: -f 1,3,7 nfsnobody:65534:/sbin/nologin
4 、查出/tmp 的权限,以数字方式显示
~]# stat /tmp|head -4|tail -1|cut -d'(' -f2|cut -d '/' -f1 1777
5 、统计当前连接本机的每个远程主机IP 的连接数,并按从大
到小排序
~]# netstat -nt |tr -s ' '|cut -d' ' -f 5|sort -n|uniq -c 1 Address 1 servers) 1 10.1.250.58:56102
grep相关练习题
1、显示/proc/meminfo文件中以大小s开头的行;(要求:使用两种方式)
1. ~]# grep -i "^S" /proc/meminfo SwapCached: 0 kB SwapTotal: 2097148 kB SwapFree: 2097148 kB Shmem: 236 kB Slab: 76832 kB SReclaimable: 50940 kB SUnreclaim: 25892 kB 2. ~]# grep "^[sS]" /proc/meminfo SwapCached: 0 kB SwapTotal: 2097148 kB SwapFree: 2097148 kB Shmem: 236 kB Slab: 76792 kB SReclaimable: 50944 kB SUnreclaim: 25848 kB 3.~]# egrep "^(s|S)" /proc/meminfo SwapCached: 0 kB SwapTotal: 2097148 kB SwapFree: 2097148 kB Shmem: 236 kB Slab: 76800 kB SReclaimable: 50944 kB SUnreclaim: 25856 kB
2、显示/etc/passwd文件中不以/bin/bash结尾的行
~]# cat /etc/passwd|grep -v "/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
3、显示用户rpc默认的shell程序
~]# cat /etc/passwd|grep 'rpc\>' |cut -d: -f7 /sbin/nologin
4、找出/etc/passwd中的两位或三位数
~]#cat /etc/passwd|grep '\b[1-9][0-9]\{1,2\}\b' ~]# cat /etc/passwd|grep "\b[0-9][0-9][0-9]\?\b"
5、显示/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面存非空白字符的行
~]# cat /etc/grub2.cfg |grep "^[[:space:]]\+[^[:space:]]\+"
6、找出“netstat -tan”命令的结果中以‘LISTEN’后跟任意多个空白字符结尾的行
~]# netstat -tan|grep "LISTEN[[:space:]]*$"
7、添加用户bash、testbash、basher以及nologin(其shell为/sbin/nologin),而后找出/etc/passwd文件中用户名同shell名的行
~]# cat /etc/passwd|grep "^\([[:alnum:]]\+\):.*\1$" sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt bash:x:1003:1005::/home/bash:/bin/bash nologin:x:1006:1008::/home/nologin:/sbin/nologin ash:x:1007:1009::/home/ash:/bin/bash
egrep相关练习题
1、显示三个用户root、mage、wang的UID和默认shell
~]# cat /etc/passwd|egrep "^(mage|wang|root)" |cut -d : -f 3,7 0:/bin/bash 503:/bin/bash 509:/bin/bash
2、找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行
~]# cat /etc/rc.d/init.d/functions|egrep "^[[:alpha:]_]+\(\)" checkpid() { __pids_var_run() { __pids_pidof() { daemon() { killproc() {
3、使用egrep取出/etc/rc.d/init.d/functions中其基名
~]# ls -l /etc/rc.d/init.d/functions |egrep -o "[^/]+/?$" functions
4、使用egrep取出上面路径的目录名
ls -l /etc/init.d/functions |egrep -o "(/.*/)"
5、统计以root身份登录的每个远程主机IP地址的登录次数
last | grep -E -o "^root\>.*([[:digit:]]\.){3}[[:digit:]]" |tr -s '' | cut -d' ' -f3 | sort | uniq -c
6、利用扩展正则表达式分别表示0-9、10-99、100-199、200-249、250-255
0-9:[0-9] ; 10-99 :[1-9][0-9];100-199:1[0-9]{2};200-249:2[0-4][0-9];25[0-5]
7、显示ifconfig命令结果中所有IPv4地址
~]# ifconfig|egrep -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.249.36 10.1.255.255 255.255.0.0 127.0.0.1 255.0.0.0
课后作业
1、取各分区利用率的数值
~]# df -h|egrep "/dev/sd" |tr -s ' '|cut -d' ' -f 5|tr -d % 37 13 29
2、统计/etc/init.d/functions 文件中每个单词出现的次数,并按频率从高到低显示
~]# cat /etc/init.d/functions |tr '[[:punct:]]' '\n'|tr '[[:digit:]]' '\n'|tr -s '[[:space:]]' |sort|uniq -c|sort -t' ' -k1 -rn
3、正则表达式表示身份证号
~]# cat test |egrep "\b[0-9]{15}\b|\b[0-9]{18}\b|\b[0-9]{17}[xX]\b" 32454648456545455x 54654465464654644X 215451412152412
4、正则表达式表示手机号
cat f1 | egrep "\b1[34578][0-9]{9}\b"
5、正则表达式表示邮箱
~]# cat test| egrep "\b[[:alnum:]_-]+@[[:alnum:]]+.(com|cn)\b"
6、正则表达式表示QQ号
~]# cat f1 |egrep "\b[1-9][0-9]{5,9}\b" 564654 1546562 457896541
原创文章,作者:提着酱油瓶打醋,如若转载,请注明出处:http://www.178linux.com/29984