面試官都在問 Linux命令 grep

2022-09-06 07:15:12 字數 1924 閱讀 2657

grep是乙個文字過濾器,作用是在檔案中查詢符合我們要求的內容。

第一種形式,從指定的檔案中找出匹配pattern的行:grep [option] pattern [file1,file2,...]

第二種形式,從管道中找出匹配pattern的行:cmd | grep [option] pattern

說明:pattern是由正規表示式字元及文字字元所編寫的過濾條件。

選項含義

-v不顯示匹配行資訊

-i搜尋時忽略大小寫

-n顯示行號

-r遞迴搜尋

-e支援擴充套件正規表示式

-f不按正規表示式匹配,按字串字面意思匹配

-c只輸出匹配行的數量,不顯示具體內容

-o只顯示模式匹配到的字串

例項:我們的測試檔案test.txt內容如下:

i love linux

i love linux

i love linux

i love linux

i love linu.*

-v 選項,反向匹配:

[root@localhost ~]

# grep -v love test.txt

i love linux

i love linux

-i 選項,忽略大小寫:

[root@localhost ~]

# grep -i love test.txt

i love linux

i love linux

i love linux

i love linux

-n 選項,顯示匹配行的行號:

[root@localhost ~]

# grep -n love test.txt

1:i love linux

2:i love linux

-e 支援擴充套件正則,|是擴充套件正則中的特殊含義的符號,代表任意乙個匹配(不是管道哦):

[root@localhost ~]

# grep -e 'linux|linux' test.txt

i love linux

i love linux

i love linux

-f 不要按正則來解析,就要字串本身:

[root@localhost ~]

# grep -f "linu.*" test.txt

i love linu.*

-c 只顯示匹配的行數:

[root@localhost ~]

# cat /etc/passwd | grep -c "root" # 查詢passwd檔案中有多少行有root

2

檢視最近有哪些遠端ip以root身份登陸過我們的機器,統計每個ip登陸的次數。我們的思路如下:

1.通過last列出最近登陸系統的所有使用者。

2.過濾出以root登陸系統的ip。

3.過濾出遠端登陸的ip。

4.統計出每個ip登陸的次數。

last |

grep

"^root"

|grep -e -o "([[:digit:]].)[[:digit:]]"

|sort

|uniq -c

grep主要功能是文字過濾,往往需要和管道還有正規表示式搭配使用才能發揮威力。

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-eorncsbw-1602670793953)(image/grep.png)]

製作人 : 李濤

審核人:王海斌

面試官都在問 Linux命令之許可權理解

0.概述 1.linux命令之切換使用者 su 全程 switch user 1.1 簡述 作業系統中,並不能讓乙個使用者可以為所欲為,這樣會使得系統的安全性無法得到保障,因此有了操作許可權的劃分,在linux系統中使用者共劃分為兩類 管理員使用者 root 以及 普通使用者 su命令可讓乙個普通使...

面試官都在問 選擇排序

選擇排序的思想不難理解。選擇排序把資料分成兩組來看待,一組已經有序的資料和一組無序的資料,排序開始之前,有序資料的個數為0。每次從未排序的資料中選取最小值,並與未排序的最左資料進行交換,直到未排序的資料為0,則結束排序。演算法過程如下圖所示 3.1 時間複雜度選擇排序每次需要遍歷未排序的資料,尋找最...

面試官都在問 快速排序C 實現

快排是c.a.r.hoare在1960提出的一種排序演算法,這是一種採用分治思想的排序演算法,大致分為三個步驟。定基準 首先選擇乙個元素作為基準值 劃分區 所有比基準小的元素置於基準左側,比基準大的元素置於右側,構成左右兩個子串行 遞迴呼叫 遞迴地呼叫此切分過程,切分其子序列,直到子串行只含有乙個值...