分析文本工具相關練習題
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.www58058.com/29984