Linux中正則表達式的練習集合
阿新 • • 發佈:2018-05-27
LINUX 正則表達式 grep 1、找出ifconfig “網卡名” 命令結果中本機的IPv4地址
ifconfig | head -n 2 |tail -1 |tr -s " " |cut -d" " -f3
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/bf7b4e062bd6238021d5aa42810945a2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
2、查出分區空間使用率的最大百分比值
df |tr -s " " |cut -d" " -f5
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/27bfa2ed511868c589869c5018424a92.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
3、查出用戶UID最大值的用戶名、UID及shell類型
cat /etc/passwd | cut -d: -f1,3,7| sort -nt: -k2 |tail -n 1
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/72b9e7355054ddce7d18bda697fb3423.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
4、查出/tmp的權限,以數字方式顯示
stat /tmp | head -n 4 |tail -n 1|cut -c10-13
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/4d6645e91b42cdd3b52ab37de70f1425.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
5、統計當前連接本機的每個遠程主機IP的連接數,並按從大到小排序(無圖)
cat /var/log/httpd/access_log |cut -d" " -f1 |sort |uniq -c |sort -n -r |head
6、顯示CentOS7的/etc/grub2.cfg文件中,至少以一個空白字符開頭的且後面存非空白字符的行
grep "^[[:blank:]]+" /etc/grub2.cfg |grep -v "^[[:space:]]$"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/4c1a9a3985917626b15ccf254b90a5cc.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
7、找出“netstat -tan”命令的結果中以‘LISTEN’後跟任意多個空白字符結尾的行
netstat -tan |grep "LISTEN[[:blank:]] $"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/195429f54b2e59bb5c02afe7f7be04ee.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
8、顯示CentOS7上所有系統用戶的用戶名和UID
cat /etc/passwd |cut -d: -f1,3 | egrep -v "[0-9]{4,}"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/c9409b608873f39dfde6ae034f075420.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
9、添加用戶bash、testbash、basher、sh、nologin(其shell為/sbin/nologin),找出/etc/passwd用戶名同shell名的行
grep "(^.)\>.\<\1$" /etc/passwd
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/72bf04e7fef0bff083a476a7842ad29e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
10、利用df和grep,取出磁盤各分區利用率,並從大到小排序
df |egrep "\<[0-9]%." -o|sort -nr
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/a01688ef005c50dd0ebd4e902a22bba3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
11、顯示三個用戶root、mage、wang的UID和默認shell(C7代替)
cat /etc/passwd |egrep "^(root|C7)" |cut -d: -f1,3
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/4bb1d3b238dd176303a734b328ca5a30.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
12、找出/etc/rc.d/init.d/functions文件中行首為某單詞(包括下劃線)後面跟一個小括號的行
egrep ".()" /etc/rc.d/init.d/functions
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/86c73a20a5dfa9d34782508622c1c679.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
13、使用egrep取出/etc/rc.d/init.d/functions中其基名(弄得有點投機嫌疑)
echo /etc/rc.d/init.d/functions | egrep "[a-z]$"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/4afcaabfa56a7dc60384f760f2242e7a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
14、使用egrep取出上面路徑的目錄名
echo /etc/rc.d/init.d/functions | egrep "/.*/"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/ed6d33f98b0740e806d066623fc8e32a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
15、統計last命令中以root登錄的每個主機IP地址登錄次數
last|cut -c23-38 |sort|uniq -c|sort -rn|head -n 1
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/a9b3b71a39f20982d02a2f430a793574.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
16、利用擴展正則表達式分別表示0-9、10-99、100-199、200-249、250-255
echo {1..255} |
egrep "\<[0-9]\>"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/1112058698b5f22c121d0b3d6fa3c0f2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
egrep "\<1[0-9]\>"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/e8e873e80adabfcc82cdca47159b2c4a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
egrep "\<1[0-9][0-9]\>"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/cf51604af9681169267ce3dad9554477.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
egrep "\<2[0-4][0-9]\>"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/d3a5149339e8a580e02c2468d95e2e5a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
egrep "\<25[0-5]\>"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/90017a9b70b6ca16bf862efacb8487a8.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
17、顯示ifconfig命令結果中所有IPv4地址(瞎寫)
ifconfig |egrep "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/f15ea6590918c9d253b55d82c07ac489.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
18、將此字符串:welcome to tiantianpaokuzhentmdehaowan linux 中的每個字符去重並排序,重復次數多的排到前面
echo wecomele to tiantianpaokuzhentmdehaowan linux |grep -o . |sort |uniq -c |sort -nr
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/a910f4cbf60d68080f3c7edd085d2b55.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
如有錯誤之處還請批評指正。
ifconfig | head -n 2 |tail -1 |tr -s " " |cut -d" " -f3
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/bf7b4e062bd6238021d5aa42810945a2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
2、查出分區空間使用率的最大百分比值
df |tr -s " " |cut -d" " -f5
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/27bfa2ed511868c589869c5018424a92.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
3、查出用戶UID最大值的用戶名、UID及shell類型
cat /etc/passwd | cut -d: -f1,3,7| sort -nt: -k2 |tail -n 1
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/72b9e7355054ddce7d18bda697fb3423.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
4、查出/tmp的權限,以數字方式顯示
stat /tmp | head -n 4 |tail -n 1|cut -c10-13
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/4d6645e91b42cdd3b52ab37de70f1425.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
5、統計當前連接本機的每個遠程主機IP的連接數,並按從大到小排序(無圖)
cat /var/log/httpd/access_log |cut -d" " -f1 |sort |uniq -c |sort -n -r |head
6、顯示CentOS7的/etc/grub2.cfg文件中,至少以一個空白字符開頭的且後面存非空白字符的行
grep "^[[:blank:]]+" /etc/grub2.cfg |grep -v "^[[:space:]]$"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/4c1a9a3985917626b15ccf254b90a5cc.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
7、找出“netstat -tan”命令的結果中以‘LISTEN’後跟任意多個空白字符結尾的行
netstat -tan |grep "LISTEN[[:blank:]]
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/195429f54b2e59bb5c02afe7f7be04ee.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
8、顯示CentOS7上所有系統用戶的用戶名和UID
cat /etc/passwd |cut -d: -f1,3 | egrep -v "[0-9]{4,}"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/c9409b608873f39dfde6ae034f075420.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
9、添加用戶bash、testbash、basher、sh、nologin(其shell為/sbin/nologin),找出/etc/passwd用戶名同shell名的行
grep "(^.)\>.\<\1$" /etc/passwd
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/72bf04e7fef0bff083a476a7842ad29e.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
10、利用df和grep,取出磁盤各分區利用率,並從大到小排序
df |egrep "\<[0-9]%." -o|sort -nr
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/a01688ef005c50dd0ebd4e902a22bba3.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
11、顯示三個用戶root、mage、wang的UID和默認shell(C7代替)
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/4bb1d3b238dd176303a734b328ca5a30.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
12、找出/etc/rc.d/init.d/functions文件中行首為某單詞(包括下劃線)後面跟一個小括號的行
egrep ".()" /etc/rc.d/init.d/functions
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/86c73a20a5dfa9d34782508622c1c679.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
13、使用egrep取出/etc/rc.d/init.d/functions中其基名(弄得有點投機嫌疑)
echo /etc/rc.d/init.d/functions | egrep "[a-z]$"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/4afcaabfa56a7dc60384f760f2242e7a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
14、使用egrep取出上面路徑的目錄名
echo /etc/rc.d/init.d/functions | egrep "/.*/"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/ed6d33f98b0740e806d066623fc8e32a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
15、統計last命令中以root登錄的每個主機IP地址登錄次數
last|cut -c23-38 |sort|uniq -c|sort -rn|head -n 1
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/a9b3b71a39f20982d02a2f430a793574.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
16、利用擴展正則表達式分別表示0-9、10-99、100-199、200-249、250-255
echo {1..255} |
egrep "\<[0-9]\>"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/1112058698b5f22c121d0b3d6fa3c0f2.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
egrep "\<1[0-9]\>"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/e8e873e80adabfcc82cdca47159b2c4a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
egrep "\<1[0-9][0-9]\>"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/cf51604af9681169267ce3dad9554477.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
egrep "\<2[0-4][0-9]\>"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/d3a5149339e8a580e02c2468d95e2e5a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
egrep "\<25[0-5]\>"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/90017a9b70b6ca16bf862efacb8487a8.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
17、顯示ifconfig命令結果中所有IPv4地址(瞎寫)
ifconfig |egrep "[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}"
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/f15ea6590918c9d253b55d82c07ac489.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
18、將此字符串:welcome to tiantianpaokuzhentmdehaowan linux 中的每個字符去重並排序,重復次數多的排到前面
echo wecomele to tiantianpaokuzhentmdehaowan linux |grep -o . |sort |uniq -c |sort -nr
![技術分享圖片](http://i2.51cto.com/images/blog/201805/27/a910f4cbf60d68080f3c7edd085d2b55.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
如有錯誤之處還請批評指正。
Linux中正則表達式的練習集合