綜合案例分析(sort,cut,正則)
1、 找出ifconfig “網卡名” 命令結果中本機IPv4地址
分析:
解釋:要取出ip地址,首先我們可以先取出ip所在的行,即取行;可以結合head和tail,後面會有
更好的方法去取行,取列當然會想到cut命令,但是此例中,我們要考慮分隔符(空格和冒號),
因此tr的引入,會使題目變得更加簡單。
答:
在這裏小編僅提供一種比較好的方法。
2.查出分區空間使用率的最大百分比值
分析:
解釋;先附上一張df查看的結果,比較容易解釋
首先我們可以用df查看分區,很明顯我們需要的是第5列,自然而然會考慮使用cut命令,但是第一列和第二列
中間的空格長度不一,我們利用以往的經驗會使用tr這個命令,可以將空格壓縮,而且還能轉化為自己想要的
間隔符那麽接下來就是排序了。
答:
這樣就很容易知道分區的最大利用率了。
3.查出用戶UID最大值的用戶名、UID及shell類型
分析:
解釋:首先取出文件/etc/passwd中含有用戶名.UID.以及shell類型的列,不難記憶,分別是1,3,7這三列,
我們可以用cut命令將這三列取出,然後根據sort的功能,根據uid大小排序,這也是比較容易的。
答:
需要區分cut和sort的分隔符,cut的是 -d -f sort的是-t -k。
4.查出/tmp的權限,以數字方式顯示
分析:
解釋:說到權限,最容易想到的自然是使用ls命令,很容查看到文件的權限,當然查看到的是用字符表示的,
和題意是不符的,我們可能會想對字符做一個轉化,但是以目前接觸到的命令,還是無法解決,那麽有沒有
更簡單的方法,直接截取到數字表示的權限。還記得我們如何查看atime.mtime以及ctime,使用的是
stat這個命令,使用它也可以查看到數字表示的權限哦。
答:
知道了stat這個命令可以查看到文件的權限,而且是用數字法表示的,剩下的只是截取的問題了,是不是值得
去學stat這個命令,在這裏還有更簡單的方法,stat -c %a /tmp/一條命令就可以。
5.統計當前連接本機的每個遠程主機IP的連接數,並按從大到小排序
分析:
解釋:首先我們可以使用netstat命令查看遠程連接的IP,由於對ip的統計,我們下一步把ip取出來,
這個操作和案例一類似,這裏就不深入研究了,再接著是排序,會使用sort命令也比較容易,統計數量
當然是uniq了,這樣一分析發現題目很簡單呢,以後要學會分析題目,對困難逐個攻破,加油。
答:
這樣就很容易得出答案了。
第一次嘗試在博客中添加思維導圖,寫的不好,多多見諒。
6. 找出/etc/passwd中的兩位或三位數
分析:
解釋:首先你可以很容易表示出一位數,即[[:digit:]]或[0-9] ,那麽表示2位或3位數也就很簡單了,
可以在後面加上\{2,3\},指定數字重復的次數,這樣可以指定為2位數和3位數,這一題需要考慮的是錨定詞首和詞尾,
如果不錨定,篩選的範圍就會變大,4位數5位數也會被包含在內,因此需要加上\<.\>.
答:
7. 顯示CentOS6上所有系統用戶的用戶名和UID
分析:
解釋:
首先利用cut命令截取/etc/passwd的第一列和第三列是比較容易的,接下來是從這些用戶中篩選出系統用戶,
而篩選系統用戶的條件是UID<500,如何用正則表達式表示出小於500的數,成為這一題的難點,不過我們先前知道
表示一位可以用[0-9] 那表示一個範圍呢?也就不是那麽的困難了,\([0-9]{0,2}\|[1-4][0-9]{2},還有就是註意用戶名可能
是個數字而且在500以內,所以就必須限定範圍和位置。
答:
表示0-499的數字還有別的方法,課余同學們可以好好探討。
8.添加用戶bash、testbash、basher、sh、nologin(其shell
為/sbin/nologin),找出/etc/passwd用戶名同shell名的行。
分析:
解釋:首先是關於創建用戶的,在這裏我們創建用戶是沒有困難的,關鍵是如何滿足後面的條件,即用戶名同shell名,
前面和後面的相同我們自然會想到使用後向引用,但是用戶名是未知的該如何表示,那當然使用(.*)了,但是 這裏需要
限制用戶名的位置,所以就會知道^\(.*\)\>,這樣第一步就完成了,中間的內容我們不關心,所以可以用.*替代,接著是結尾的處理,
既然是後向引用,那麽\1肯定少不了,關鍵是在什麽位置匹配,那當然是行尾即\1$,還有一點要註意那就是只限制了\1在行尾,
還要限制\1左邊的位置,即加上\/將/作為左邊的分界線。
答:
這是一題典型的後向引用的題目,要多實驗,在實驗中尋求更多的解決方法。
綜合案例分析(sort,cut,正則)