講師說這是個難點,是以就把這部分寫一下,本人認為通過習題了解會更深刻一些。
1.找出/etc/passwd中的兩位或三位數
<a href="https://s3.51cto.com/wyfs02/M00/9D/3E/wKiom1l8TavSriv4AABFdWLNLfE042.png" target="_blank"></a>
注意:在做這道題時,一定要錨定詞首詞尾,錨定詞尾因為四位數包含三位數,如下圖所示
<a href="https://s1.51cto.com/wyfs02/M01/9D/3E/wKiom1l8TdLBUrLbAABQ_wL87Zc579.png" target="_blank"></a>
錨定詞首是因為萬一所建的使用者名中包含數字,如下圖所示。
<a href="https://s4.51cto.com/wyfs02/M00/9D/3E/wKioL1l8TfSBOlSRAAAREXs-4nk733.png" target="_blank"></a>
2.添加使用者bash、testbash、basher、sh、nologin(其shell為/sbin/nologin),找出/etc/passwd使用者名同shell名的行。
<a href="https://s2.51cto.com/wyfs02/M02/9D/3E/wKiom1l8UkGyT43IAABUCs4iqfM921.png" target="_blank"></a>
在做這道題的時候,我就忽視了下面的情況,主要是當時對詞首詞尾錨定了解不夠深刻。要避免這種情況的出現,也可以加個/來差別。
<a href="https://s1.51cto.com/wyfs02/M01/9D/3E/wKiom1l8UbmgKQJoAABjx6S_gys062.png" target="_blank"></a>
3.找出/etc/rc.d/init.d/functions檔案中行首為某單詞(包括下劃線)後面跟一個小括号的行
<a href="https://s3.51cto.com/wyfs02/M00/9D/3E/wKioL1l8VqKxDM3gAABJwZ5HA1U207.png" target="_blank"></a>

4.将此字元串:welcome to magedu linux 中的每個字元去重并排序,重複次數多的排到前面
<a href="https://s3.51cto.com/wyfs02/M01/9D/3F/wKioL1l8WdvyoZlxAABS3KZukhs831.png" target="_blank"></a>
這個題的難點是怎樣把這句話以單個字母單行顯示,這個會了,其他就小菜一碟。
5.使用egrep取出/etc/rc.d/init.d/functions中其基名
<a href="https://s1.51cto.com/wyfs02/M00/9D/41/wKiom1l8g46QOCuSAAAjYYMfUrI479.png" target="_blank"></a>
注意:^放在括号裡是“非”的意思放在括号外邊是行首的意思。
6.統計last指令中以root登入的每個主機IP位址登入次數
<a href="https://s4.51cto.com/wyfs02/M01/9D/41/wKiom1l8hYjB2fWOAAAkM1KsBVg086.png" target="_blank"></a>
注意:先把root截取出來,再取ip位址。
7.使用正規表達式的時候,使用擴充表達式比較友善,因為很多地方不用加轉義字元。另外,"."包含大小寫字母,數字和下劃線。
本文轉自 honeyorange 51CTO部落格,原文連結:http://blog.51cto.com/13172732/1952009