shell實例 非常實用的實戰實例
grep、egrep、fgrep
知識儲備
實例
1、顯示/proc/meminfo文件中以不區分大小的s開頭的行:
grep -i '^s' /proc/meminfo
grep '^[sS]' /proc/meminfo
2、顯示/etc/passwd中以nologin結尾的行;
grep 'nologin$' /etc/passwd
取出默認shell爲/sbin/nologin的用戶列表
grep "nologin$' /etc/passwd | cut -d: -f1
取出默認shell爲bash,且其用戶ID號最小的用戶的用戶名
grep 'bash$' /etc/passwd | sort -n -t: -k3 | head -1 | cut -d: -f1
3、顯示/etc/inittab中以#開頭,且後面跟一個或多個空白字符,而後又跟了任意非空白字符的行;
grep "^#[[:space:]]\{1,\}[^[:space:]]" /etc/inittab
4、顯示/etc/inittab中包含了:一個數字:(即兩個冒號中間一個數字)的行;
grep ':[0-9]:' /etc/inittab
5、顯示/boot/grub/grub.conf文件中以一個或多個空白字符開頭的行;
grep '^[[:space:]]\{1,\}' /boot/grub/grub.conf
6、顯示/etc/inittab文件中以一個數字開頭並以一個與開頭數字相同的數字結尾的行;
grep '^\([0-9]\).*\1$' /etc/inittab
7、找出某文件中的,1位數,或2位數;
grep '[0-9]\{1,2\}' /proc/cpuinfo
grep --color '\<[0-9]\{1,2\}\>' /proc/cpuinfo
8、找出ifconfig命令結果中的1-255之間的整數;
ifconfig | egrep --color=auto "\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>"
9、查找當前系統上名字爲student(必須出現在行首)的用戶的帳號的相關信息, 文件爲/etc/passwd
grep '^student\>' /etc/passwd | cut -d: -f3
id -u student
student1
student2
10、分析/etc/inittab文件中如下文本中前兩行的特徵(每一行中出現在數字必須相同),請寫出可以精確找到類似兩行的模式:
l1:1:wait:/etc/rc.d/rc 1
l3:3:wait:/etc/rc.d/rc 3
grep '^l\([0-9]\):\1.*\1$' /etc/inittab