Linux passwd使用者查找:grep正規表示法及awk資料剖析

Linux使用者帳號的資訊都存放在「/etc/passwd」系統文件,本文實際檢視其內容,利用grep正規表示法的「|」聯集篩選,wc字數統計、sort排序,最後補充awk資料剖析。

一、etc/passwd文件

先前文章介紹過passwd是Linux系統一個設定密碼的命令,它其實也是一個Linux系統文件,通常Linux系統配置文件都是放在「etc」資料夾中,例如輸入命令:「cat /etc/passwd」,實際檢視「etc」資料夾中的「passwd」文件,,發現到它會列出一長串的名稱清單出來。這裡截圖沒有辦法全部展現,可以注意到最後一筆「zanzan」是贊贊小屋自己新增的使用者帳號,它的序號是「1000」。

Linux系統如何以cat命令檢視文件,可以參考贊贊小屋相關文章,而Linux如何新增使用者帳號及設置密碼,可以參考贊贊小屋另外一篇相關文章

Linux passwd使用者查找:grep正規表示法及awk資料剖析 1

二、「| head」附加命令

由於上個步驟的文件內容較多,可以在原來命令後面加一個「| head」,代表是要在前面已經取得文件清單的基礎上,再執行head命令,於是取得前10筆的資料。這裡看到第一筆是root使用者,也就是天字第一號的系統管理者。

Linux passwd使用者查找:grep正規表示法及awk資料剖析 3

三、tail取得末三筆

上個步驟是附加head條件篩選前10筆,在此則是附加tail命令,它預設是篩選取得末十筆,不過這裡加上一個參數「-n 3」,表示只取三筆,因此就是最後三筆,其中最後一筆當然會跟先前第一個步驟一樣是「zanzan」。

一張含有 文字 的圖片

自動產生的描述

四、grep正規表示法

除了取得前後幾筆資料,還可以進行關鍵字查找,例如這裡加上「|grep “zanzan”」,代表要使用簡單的正規表示法取得包含「zanzan」的資料。

關於grep正規表示法如何使用,可以參考贊贊小屋相關文章

Linux passwd使用者查找:grep正規表示法及awk資料剖析 6

五、\|^符號的作用

想要同時取得「root」以及「zanzan」的結果,正規表示法可以設定為「zanzan/|root」,其中的豎線作用是條件聯集,也就是或者的邏輯判斷,注意到這裡加了「/」,作用類似於鍵盤shift鍵進行功能切換,在此是將單純文字切換成系統符號,所以本來是「zanzan|root」字串,加上斜線轉換作用之後,變成是「zanzan」和「root兩個文字的或者條件。

不過由於「zanzan/|root」是關鍵字的包含規則,而在帳號裡面有一個「Operator」,雖然它的名稱沒有包含關鍵字,但是它的屬性包含了關鍵字「root」,因此也算是符合條件。

為了避免得到不想要的結果,進一步優化正規表示,在兩個帳號前面都加上一個向上箭頭:「^zanzan/|^root」,「^」作用是以某個字串開頭才算符合條件,等於進一步限制是以zanzan或者 root開頭才算符合條件,如此得到預期結果,只有「root」及「zanzan」兩個帳戶。

一張含有 文字 的圖片

自動產生的描述

六、wc字數sort排序

除了查找資料之外,很多時候想要進行統計或者排序,可以在上個步驟命令的基礎上,再加上「|wc」,其中「wc」作用是字數統計(words count),沒有其他參數它會計算出多少筆資料、包含多少個字、多少個字元,加上參數「-l」則是單純的幾筆資料。

此外還可以加上「sort」進行排序,預設是依照英文字母由A到Z排序,想要要反過來可以在後面再加上一個「- r」。

Linux passwd使用者查找:grep正規表示法及awk資料剖析 9

七、awk資料剖析

最後再補充在Linux另一個強大命令:awk,其主要作用和grep同樣在於處理較為複雜的文字資料,它有很多種用法,在此介紹一個常見用法,等於是執行Excel資料剖析。例如在這裡輸入命令:「awk – F “:” ‘{print$1}’」。這裡的「-F」代表指定分隔符號,而分隔符號便是雙引號中的冒號,接著再加上簡單的一行程式碼:「’{print$1}’」,意思是列印第一欄資料,因此得到的結果就是比較乾淨的「Root」和「zanzan」。

Linux passwd使用者查找:grep正規表示法及awk資料剖析 11

Linux處理文字資料

這篇文章主要內容其實很簡單:查找 Linux系統的使用者帳號資料。不過由於所得到的資料較多,過程中用到了grep正規表示法和awk文件規範化,這兩個命令正是Linux系統處理文字資料的兩大工具,在利用熟悉的Excel處理資料通常會用到篩選與排序或者資料剖析,而在本篇文章只要輸入簡單命令參數便能執行和Excel一樣的資料處理,由此可見Linux系統命令的強大之處。

每天學習,每天充電:Linux文章合集

Linux passwd使用者查找:grep正規表示法及awk資料剖析 13
歡迎加入Line社群,口袋裡的VBA小教室!