導航:首頁 > 程序命令 > linux命令大全grep

linux命令大全grep

發布時間:2022-09-08 18:31:39

linux中使用grep命令,查詢多個字元串

grep 搜索同時滿足多個關鍵字和滿足任意關鍵字
1、 grep -E "word1|word2|word3" file.txt
滿足任意條件(word1、word2和word3之一)將匹配。

這樣也可以
egrep 'word1|word2|word3' 文件名
grep 'word1/|word2|word3' 文件名

錯誤的:
grep 'word1|word2|word3'

2、 grep word1 file.txt | grep word2 |grep word3
必須同時滿足三個條件(word1、word2和word3)才匹配。
為什麼需要加-E

② linux grep命令詳解

簡介

grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行列印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。

Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字元, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字元表示回其自身的字面意義,不再特殊。linux使用GNU版本的grep。它功能更強,可以通過-G、-E、-F命令行選項來使用egrep和fgrep的功能。

grep常用用法

[root@www ~]#grep[-acinv] [--color=auto]'搜尋字元串' filename

選項與參數:-a :將 binary 文件以 text 文件的方式搜尋數據-c :計算找到'搜尋字元串' 的次數-i :忽略大小寫的不同,所以大小寫視為相同-n :順便輸出行號-v :反向選擇,亦即顯示出沒有'搜尋字元串' 內容的那一行!--color=auto :可以將找到的關鍵詞部分加上顏色的顯示喔!

 

將/etc/passwd,有出現 root 的行取出來

# greproot /etc/passwdroot:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

或# cat/etc/passwd|grep root

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

將/etc/passwd,有出現 root 的行取出來,同時顯示這些行在/etc/passwd的行號

#grep-n root /etc/passwd1:root:x:0:0:root:/root:/bin/bash30:operator:x:11:0:operator:/root:/sbin/nologin

 在關鍵字的顯示方面,grep 可以使用 --color=auto 來將關鍵字部分使用顏色顯示。 這可是個很不錯的功能啊!但是如果每次使用 grep 都得要自行加上 --color=auto 又顯的很麻煩~ 此時那個好用的 alias 就得來處理一下啦!你可以在 ~/.bashrc 內加上這行:『alias grep='grep --color=auto'』再以『 source ~/.bashrc 』來立即生效即可喔! 這樣每次運行 grep 他都會自動幫你加上顏色顯示啦

將/etc/passwd,將沒有出現 root 的行取出來

#grep-v root /etc/passwdroot:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

將/etc/passwd,將沒有出現 root 和nologin的行取出來

#grep-v root /etc/passwd|grep-v nologin

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin

用 dmesg 列出核心信息,再以 grep 找出內含 eth 那行,要將捉到的關鍵字顯色,且加上行號來表示:

[root@www ~]# dmesg |grep-n --color=auto'eth'247:eth0: RealTek RTL8139 at0xee846000,00:90:cc:a6:34:84, IRQ10248:eth0: Identified8139chip type'RTL-8139C'294:eth0: link up, 100Mbps, full-plex, lpa0xC5E1305:eth0: no IPv6 routers present

# 你會發現除了 eth 會有特殊顏色來表示之外,最前面還有行號喔!

在關鍵字的顯示方面,grep 可以使用 --color=auto 來將關鍵字部分使用顏色顯示。 這可是個很不錯的功能啊!但是如果每次使用 grep 都得要自行加上 --color=auto 又顯的很麻煩~ 此時那個好用的 alias 就得來處理一下啦!你可以在 ~/.bashrc 內加上這行:『alias grep='grep --color=auto'』再以『 source ~/.bashrc 』來立即生效即可喔! 這樣每次運行 grep 他都會自動幫你加上顏色顯示啦

用 dmesg 列出核心信息,再以 grep 找出內含 eth 那行,在關鍵字所在行的前兩行與後三行也一起捉出來顯示

[root@www ~]# dmesg |grep-n -A3 -B2 --color=auto'eth'245-PCI: setting IRQ10as level-triggered246-ACPI: PCI Interrupt0000:00:0e.0[A] -> Link [LNKB] ...247:eth0: RealTek RTL8139 at0xee846000,00:90:cc:a6:34:84, IRQ10248:eth0: Identified8139chip type'RTL-8139C'249-input: PC Speaker as /class/input/input2250-ACPI: PCI Interrupt0000:00:01.4[B] -> Link [LNKB] ...251-hdb: ATAPI 48X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache, UDMA(66)

# 如上所示,你會發現關鍵字 247所在的前兩行及248 後三行也都被顯示出來!

# 這樣可以讓你將關鍵字前後數據捉出來進行分析啦!

根據文件內容遞歸查找目錄

#grep『energywise』 *          #在當前目錄搜索帶'energywise'行的文件

# grep-r 『energywise』 *        #在當前目錄及其子目錄下搜索'energywise'行的文件

# grep-l -r 『energywise』 *    #在當前目錄及其子目錄下搜索'energywise'行的文件,但是不顯示匹配的行,只顯示匹配的文件

這幾個命令很使用,是查找文件的利器。

grep與正規表達式

 字元類

字元類的搜索:如果我想要搜尋 test 或 taste 這兩個單字時,可以發現到,其實她們有共通的 't?st' 存在~這個時候,我可以這樣來搜尋:

[root@www ~]#grep-n't[ae]st' regular_express.txt8:I can't finish the test.9:Oh! The soup taste good.

其實 [] 裡面不論有幾個位元組,他都謹代表某『一個』位元組, 所以,上面的例子說明了,我需要的字串是『tast』或『test』兩個字串而已!

字元類的反向選擇 [^] :如果想要搜索到有 oo 的行,但不想要 oo 前面有 g,如下

[root@www ~]#grep-n'[^g]oo' regular_express.txt2:apple is my favorite food.3:Football game is not use feet only.18:google is the best toolsfor search keyword.19:goooooogle yes!

第 2,3 行沒有疑問,因為 foo 與 Foo 均可被接受!

但是第 18 行明明有 google 的 goo 啊~別忘記了,因為該行後面出現了 tool 的 too 啊!所以該行也被列出來~ 也就是說, 18 行裡面雖然出現了我們所不要的項目 (goo) 但是由於有需要的項目 (too) , 因此,是符合字串搜尋的喔!

至於第 19 行,同樣的,因為 goooooogle 裡面的 oo 前面可能是 o ,例如: go(ooo)oogle ,所以,這一行也是符合需求的!

字元類的連續:再來,假設我 oo 前面不想要有小寫位元組,所以,我可以這樣寫 [^abcd....z]oo , 但是這樣似乎不怎麼方便,由於小寫位元組的 ASCII 上編碼的順序是連續的, 因此,我們可以將之簡化為底下這樣:

[root@www ~]#grep-n'[^a-z]oo' regular_express.txt3:Football game is not use feet only.

也就是說,當我們在一組集合位元組中,如果該位元組組是連續的,例如大寫英文/小寫英文/數字等等, 就可以使用[a-z],[A-Z],[0-9]等方式來書寫,那麼如果我們的要求字串是數字與英文呢? 呵呵!就將他全部寫在一起,變成:[a-zA-Z0-9]。

我們要取得有數字的那一行,就這樣:

[root@www ~]#grep-n'[0-9]' regular_express.txt5:However, this dress is about $3183 dollars.15:You are the best is mean you are the no.1.

行首與行尾位元組 ^ $

行首字元:如果我想要讓 the 只在行首列出呢? 這個時候就得要使用定位位元組了!我們可以這樣做:

[root@www ~]#grep-n'^the' regular_express.txt12:the symbol'*'is represented as start.

此時,就只剩下第 12 行,因為只有第 12 行的行首是 the 開頭啊~此外, 如果我想要開頭是小寫位元組的那一行就列出呢?可以這樣:

[root@www ~]#grep-n'^[a-z]' regular_express.txt2:apple is my favorite food.4:this dress doesn't fit me.10:motorcycle is cheap than car.12:the symbol'*' is represented as start.18:google is the best toolsfor search keyword.19:goooooogle yes!20:go! go! Let's go.

如果我不想要開頭是英文字母,則可以是這樣:

[root@www ~]#grep-n'^[^a-zA-Z]' regular_express.txt1:"Open Source" is a good mechanism to develop programs.21:# I am VBird

^ 符號,在字元類符號(括弧[])之內與之外是不同的! 在 [] 內代表『反向選擇』,在 [] 之外則代表定位在行首的意義!

那如果我想要找出來,行尾結束為小數點 (.) 的那一行:

[root@www ~]#grep-n'\.$' regular_express.txt1:"Open Source" is a good mechanism to develop programs.2:apple is my favorite food.3:Football game is not use feet only.4:this dress doesn't fit me.10:motorcycle is cheap than car.11:This window isclear.12:the symbol'*' is represented as start.15:You are the best is mean you are the no.1.16:The world is the same with"glad".17:I like dog.18:google is the best toolsfor search keyword.20:go! go! Let's go.

特別注意到,因為小數點具有其他意義(底下會介紹),所以必須要使用轉義字元(\)來加以解除其特殊意義!

找出空白行:

[root@www ~]#grep-n'^$' regular_express.txt22:

因為只有行首跟行尾 (^$),所以,這樣就可以找出空白行啦!

任意一個位元組 . 與重復位元組 *

這兩個符號在正則表達式的意義如下:

. (小數點):代表『一定有一個任意位元組』的意思;* (星號):代表『重復前一個字元,0到無窮多次』的意思,為組合形態

假設我需要找出 g??d 的字串,亦即共有四個位元組, 起頭是 g 而結束是 d ,我可以這樣做:

[root@www ~]#grep-n'g..d' regular_express.txt1:"Open Source" is a good mechanism to develop programs.9:Oh! The soup taste good.16:The world is the same with"glad".

因為強調 g 與 d 之間一定要存在兩個位元組,因此,第 13 行的 god 與第 14 行的 gd 就不會被列出來啦!

如果我想要列出有 oo, ooo, oooo 等等的數據, 也就是說,至少要有兩個(含) o 以上,該如何是好?

因為 * 代表的是『重復 0 個或多個前面的 RE 字元』的意義, 因此,『o*』代表的是:『擁有空位元組或一個 o 以上的位元組』,因此,『 grep -n 'o*' regular_express.txt 』將會把所有的數據都列印出來終端上!

當我們需要『至少兩個 o 以上的字串』時,就需要 ooo* ,亦即是:

[root@www ~]#grep-n'ooo*' regular_express.txt1:"Open Source" is a good mechanism to develop programs.2:apple is my favorite food.3:Football game is not use feet only.9:Oh! The soup taste good.18:google is the best toolsfor search keyword.19:goooooogle yes!

如果我想要字串開頭與結尾都是 g,但是兩個 g 之間僅能存在至少一個 o ,亦即是 gog, goog, gooog.... 等等,那該如何?

[root@www ~]#grep-n'goo*g' regular_express.txt18:google is the best toolsfor search keyword.19:goooooogle yes!

如果我想要找出 g 開頭與 g 結尾的行,當中的字元可有可無

[root@www ~]#grep-n'g.*g' regular_express.txt1:"Open Source" is a good mechanism to develop programs.14:The gd software is a libraryfor drafting programs.18:google is the best toolsfor search keyword.19:goooooogle yes!20:go! go! Let's go.

因為是代表 g 開頭與 g 結尾,中間任意位元組均可接受,所以,第 1, 14, 20 行是可接受的喔! 這個 .* 的 RE 表示任意字元是很常見的.

如果我想要找出『任意數字』的行?因為僅有數字,所以就成為:

[root@www ~]#grep-n'[0-9][0-9]*' regular_express.txt5:However, this dress is about $3183 dollars.15:You are the best is mean you are the no.1.

限定連續 RE 字元范圍 {}

我們可以利用 . 與 RE 字元及 * 來配置 0 個到無限多個重復位元組, 那如果我想要限制一個范圍區間內的重復位元組數呢?

舉例來說,我想要找出兩個到五個 o 的連續字串,該如何作?這時候就得要使用到限定范圍的字元 {} 了。 但因為 { 與 } 的符號在 shell 是有特殊意義的,因此, 我們必須要使用字元   \ 來讓他失去特殊意義才行。 至於 {} 的語法是這樣的,假設我要找到兩個 o 的字串,可以是:

[root@www ~]#grep-n'o\{2\}' regular_express.txt1:"Open Source" is a good mechanism to develop programs.2:apple is my favorite food.3:Football game is not use feet only.9:Oh! The soup taste good.18:google is the best toolsfor search ke19:goooooogle yes!

假設我們要找出 g 後面接 2 到 5 個 o ,然後再接一個 g 的字串,他會是這樣:

[root@www ~]#grep-n'go\{2,5\}g' regular_express.txt18:google is the best toolsforsearch keyword.

如果我想要的是 2 個 o 以上的 goooo....g 呢?除了可以是 gooo*g ,也可以是:

[root@www ~]#grep-n'go\{2,\}g' regular_express.txt18:google is the best toolsfor search keyword.19:goooooogle yes!

擴展grep(grep -E 或者 egrep):

使用擴展grep的主要好處是增加了額外的正則表達式元字元集。

列印所有包含NW或EA的行。如果不是使用egrep,而是grep,將不會有結果查出。

#egrep'NW|EA' testfile   

    northwest      NW      Charles Main        3.0.98334    eastern        EA      TB Savage          4.4.84520

對於標准grep,如果在擴展元字元前面加\,grep會自動啟用擴展選項-E。

#grep'NW\|EA' testfile

northwest      NW      Charles Main        3.0.98334eastern        EA      TB Savage          4.4.84520

搜索所有包含一個或多個3的行。

#egrep'3+' testfile

# grep-E'3+' testfile

# grep'3\+' testfile       

#這3條命令將會

northwest      NW      Charles Main          3.0.98334western        WE      Sharon Gray          5.3.97523northeast      NE      AM Main Jr.          5.1.94313central        CT      Ann Stephens          5.7.94513

搜索所有包含0個或1個小數點字元的行。

#egrep'2\.?[0-9]' testfile

# grep-E'2\.?[0-9]' testfile

# grep'2\.\?[0-9]' testfile

#首先含有2字元,其後緊跟著0個或1個點,後面再是0和9之間的數字。

western        WE      Sharon Gray          5.3.97523southwest      SW      Lewis Dalsass        2.7.8218eastern        EA      TB Savage            4.4.84520

搜索一個或者多個連續的no的行。

#egrep'(no)+' testfile

# grep-E'(no)+' testfile

# grep'\(no\)\+' testfile  #3個命令返回相同結果,

northwest      NW      Charles Main        3.0.98334northeast      NE      AM Main Jr.        5.1.94313north          NO      Margot Weber        4.5.8959

不使用正則表達式

fgrep 查詢速度比grep命令快,但是不夠靈活:它只能找固定的文本,而不是規則表達式。

如果你想在一個文件或者輸出中找到包含星號字元的行

fgrep  '*' /etc/profile

for i in /etc/profile.d/*.sh ; do



grep -F '*' /etc/profile

for i in /etc/profile.d/*.sh ; do

③ 急:Linux 和 grep命令大全

Linux系統的學習過程中,會認識很多命令,記住這些命令會對你學習Linux系統,有很好的提高。你可能會看到grep命令,這里將介紹grep命令的知識。1.作用
Linux系統中grep命令是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用許可權是所有用戶。2.格式
grep [options]3.主要參數
[options]主要參數:
-c:只輸出匹配行的計數。
-I:不區分大小寫(只適用於單字元)。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字元的文件名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數:
\:忽略正則表達式中特殊字元的原有含義。
^:匹配正則表達式的開始行。
$: 匹配正則表達式的結束行。
\<:從匹配正則表達式的行開始。
\>:到匹配正則表達式的行結束。
[ ]:單個字元,如[A]即A符合要求 。
[ - ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的單個字元。
* :有字元,長度可以為0。4.grep命令使用簡單實例
$ grep 『test』 d*
顯示所有以d開頭的文件中包含test的行。
$ grep 『test』 aa bb cc
顯示在aa,bb,cc文件中匹配test的行。
$ grep 『[a-z]\{5\}』 aa
顯示所有包含每個字元串至少有5個連續小寫字元的字元串的行。
$ grep 『w\(es\)t.*\1′ aa
如果west被匹配,則es就被存儲到內存中,並標記為1,然後搜索任意個字元(.*),這些字元後面緊跟著另外一個es(\1),找到就顯示該行。如果用egrep或grep -E,就不用」\」號進行轉義,直接寫成』w(es)t.*\1′就可以了。5.grep命令使用復雜實例
假設您正在』/usr/src/Linux/Doc』目錄下搜索帶字元串』magic』的文件:
$ grep magic /usr/src/Linux/Doc/*
sysrq.txt:* How do I enable the magic SysRQ key?
sysrq.txt:* How do I use the magic SysRQ key?
其中文件』sysrp.txt』包含該字元串,討論的是 SysRQ 的功能。
默認情況下,』grep』只搜索當前目錄。如果此目錄下有許多子目錄,』grep』會以如下形式列出:
grep: sound: Is a directory
這可能會使』grep』的輸出難於閱讀。這里有兩種解決的辦法:
明確要求搜索子目錄:grep -r
或忽略子目錄:grep -d skip
如果有很多輸出時,您可以通過管道將其轉到』less』上閱讀:
$ grep magic /usr/src/Linux/Documentation/* | less
這樣,您就可以更方便地閱讀。有一點要注意,您必需提供一個文件過濾方式(搜索全部文件的話用 *)。如果您忘了,』grep』會一直等著,直到該程序被中斷。如果您遇到了這樣的情況,按 <CTRL c> ,然後再試。下面還有一些有意思的命令行參數:
grep -i pattern files :不區分大小寫地搜索。默認情況區分大小寫,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整個單詞,而不是字元串的一部分(如匹配』magic』,而不是』magical』),
grep -C number pattern files :匹配的上下文分別顯示[number]行,
grep pattern1 | pattern2 files :顯示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。這里還有些用於搜索的特殊符號:
\< 和 \> 分別標注單詞的開始與結尾。
例如:
grep man * 會匹配 『Batman』、』manic』、』man』等,
grep 『\<man』 * 匹配』manic』和』man』,但不是』Batman』,
grep 『\<man\>』 只匹配』man』,而不是』Batman』或』manic』等其他的字元串。
『^』:指匹配的字元串在行首,
『$』:指匹配的字元串在行尾, 1. grep簡介grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行列印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字元, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字元表示回其自身的字面意義,不再特殊。Linux使用GNU版本的grep。它功能更強,可以通過-G、-E、-F命令行選項來使用egrep和fgrep的功能。grep的工作方式是這樣的,它在一個或多個文件中搜索字元串模板。如果模板包括空格,則必須被引用,模板後的所有字元串被看作文件名。搜索的結果被送到屏幕,不影響原文件內容。2. POSIX字元類為了在不同國家的字元編碼中保持一至,POSIX(The Portable Operating System Interface)增加了特殊的字元類,如[:alnum:]是A-Za-z0-9的另一個寫法。要把它們放到[]號內才能成為正則表達式,如[A- Za-z0-9]或[[:alnum:]]。在Linux下的grep除fgrep外,都支持POSIX的字元類。[:alnum:]文字數字字元[:alpha:]文字字元[:digit:]數字字元[:graph:]非空字元(非空格、控制字元)[:lower:]小寫字元[:cntrl:]控制字元[:print:]非空字元(包括空格)[:punct:]標點符號[:space:]所有空白字元(新行,空格,製表符)[:upper:]大寫字元[:xdigit:]十六進制數字(0-9,a-f,A-F)
3.Grep命令選項-?同時顯示匹配行上下的?行,如:grep -2 pattern filename同時顯示匹配行的上下2行。-b,--byte-offset列印匹配行前面列印該行所在的塊號碼。-c,--count只列印匹配的行數,不顯示匹配的內容。-f File,--file=File從文件中提取模板。空文件中包含0個模板,所以什麼都不匹配。-h,--no-filename當搜索多個文件時,不顯示匹配文件名前綴。-i,--ignore-case忽略大小寫差別。-q,--quiet取消顯示,只返回退出狀態。0則表示找到了匹配的行。-l,--files-with-matches列印匹配模板的文件清單。-L,--files-without-match列印不匹配模板的文件清單。-n,--line-number在匹配的行前面列印行號。-s,--silent不顯示關於不存在或者無法讀取文件的錯誤信息。-v,--revert-match反檢索,只顯示不匹配的行。-w,--word-regexp如果被<和>引用,就把表達式做為一個單詞搜索。-V,--version顯示軟體版本信息。4.實例要用好grep這個工具,其實就是要寫好正則表達式,所以這里不對grep的所有功能進行實例講解,只列幾個例子,講解一個正則表達式的寫法。$ ls -l | grep '^a'通過管道過濾ls -l輸出的內容,只顯示以a開頭的行。$ grep 'test' d*顯示所有以d開頭的文件中包含test的行。$ grep 'test' aa bb cc顯示在aa,bb,cc文件中匹配test的行。$ grep '[a-z]' aa顯示所有包含每個字元串至少有5個連續小寫字元的字元串的行。$ grep 'w(es)t.*' aa如果west被匹配,則es就被存儲到內存中,並標記為1,然後搜索任意個字元(.*),這些字元後面緊跟著另外一個es(),找到就顯示該行。如果用egrep或grep -E,就不用""號進行轉義,直接寫成'w(es)t.*'就可以了。

④ Linux實用命令有哪些

1、bc


這個Linux命令用於精度比較高的數學運算。如:開平方根等。下面利用bc命令寫個腳本(文件名:sqrt)


#!/bin/bashif [ $then echo 'Usage: sqrt number' exit 1else echo -e "sqrt($1) quit " | bc -q -ifi


接著,可使用這個腳本進行平方根運算:


[hchen@RHELSVR5]$ ./sqrt 366[hchen@RHELSVR5]$ ./sqrt 2.00001.4142[hchen@RHELSVR5]$ ./sqrt 10.00003.1622


2、split


如果你的文件很大,卻接到命令要把它分割成小文件,那麼這個命令就派上用場了。


[hchen@RHELSVR5 applebak]# ls -l largefile.tar.gz-rw-r--r-- 1 hchen hchen 436774774 04-17 02:00 largefile.tar.gz[hchen@RHELSVR5 applebak]# split -b 50m largefile.tar.gz LF_[hchen@RHELSVR5]# ls -l LF_*-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_aa-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ab-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ac-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ad-rw-r--r-- 1 hchen hchen 52428800 05-10 18:34 LF_ae-rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_af-rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_ag-rw-r--r-- 1 hchen hchen 52428800 05-10 18:35 LF_ah-rw-r--r-- 1 hchen hchen 17344374 05-10 18:35 LF_ai。


反而來,合並也只需要簡單的合並就行,如:


[hchen@RHELSVR5]# cat LF_* >largefile.tar.gz。


3、pgrep


pgrep名字前有個p,可以猜想它可能和grep有關,確實這是進程相關的grep命令。不過,這個命令主要是用來列舉進程ID的。如:


$ pgrep -u hchen2244122444


這個命令相當於:


ps -ef | egrep '^hchen' | awk '{print $2}'。


4、nl


nl命令其它和cat命令很像,只不過它會打上行號。如下所示:


[hchen@RHELSVR5 include]# nl stdio.h | head -n 10 1 /* Define ISO C stdio on top of C++ iostreams. 2 Copyright (C) 1991,1994-2004,2005,2006 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 The GNU C Library is free software; you can redistribute it and/or 5 modify it under the terms of the GNU Lesser General Public 6 License as published by the Free Software Foundation; either 7 version 2.1 of the License, or (at your option) any later version. 8 The GNU C Library is distributed in the hope that it will be useful。


5、ldd


這個命令,用來可執行文件所使用了動態鏈接庫。如:


[hchen@RHELSVR5 ~]# ldd /usr/bin/java linux-gate.so.1 => (0x00cd9000) libgij.so.7rh => /usr/lib/libgij.so.7rh (0x00ed3000) libgcj.so.7rh => /usr/lib/libgcj.so.7rh (0x00ed6000) libpthread.so.0 => /lib/i686/nosegneg/libpthread.so.0 (0x00110000) librt.so.1 => /lib/i686/nosegneg/librt.so.1 (0x009c8000) libdl.so.2 => /lib/libdl.so.2 (0x008b5000) libz.so.1 => /usr/lib/libz.so.1 (0x00bee000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00aa7000) libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0x0022f000) libm.so.6 => /lib/i686/nosegneg/libm.so.6 (0x00127000) /lib/ld-linux.so.2 (0x00214000)。


關於Linux實用命令有哪些,青藤小編就和您分享到這里了。如果你對大數據工程有濃厚的興趣,希望這篇文章能夠對你有所幫助。如果您還想了解更多數據分析師、大數據工程師的技巧及素材等內容,可以點擊本站的其他文章進行學習。

⑤ Linux命令大全

linux命令格式:

說明:command: 命令名,相應功能的英文單詞或單詞的縮寫 [-options]:選項,可用來對命令進行控制,也可以省略,[]代表可選 parameter1 …:傳給命令的參數:可以是零個一個或多個

一般是linux命令自帶的幫助信息
如:

man是linux提供的一個手冊,包含了絕大部分的命令、函數使用說明
該手冊分成很多章節(section),使用man時可以指定不同的章節來瀏覽。
例:man ls ; man 2 printf
man中各個section意義如下:

man是按照手冊的章節號的順序進行搜索的。
man設置了如下的功能鍵:

在敲出命令的前幾個字母的同時,按下tab鍵,系統會自動幫我們補全命令

當系統執行過一些命令後,可按上下鍵翻看以前的命令,history將執行過的命令列舉出來

ls是英文單詞list的簡寫,其功能為列出目錄的內容,是用戶最常用的命令之一,它類似於DOS下的dir命令。

Linux文件或者目錄名稱最長可以有265個字元,「.」代表當前目錄,「..」代表上一級目錄,以「.」開頭的文件為隱藏文件,需要用 -a 參數才能顯示。
ls常用參數:

Linux允許將命令執行結果重定向到一個文件,本應顯示在終端上的內容保存到指定文件中。
如:ls > test.txt ( test.txt 如果不存在,則創建,存在則覆蓋其內容 )
注意: >輸出重定向會覆蓋原來的內容,>>輸出重定向則會追加到文件的尾部。

查看內容時,在信息過長無法在一屏上顯示時,會出現快速滾屏,使得用戶無法看清文件的內容,此時可以使用more命令,每次只顯示一頁,按下空格鍵可以顯示下一頁,按下q鍵退出顯示,按下h鍵可以獲取幫助。

管道:一個命令的輸出可以通過管道做為另一個命令的輸入。
管道我們可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這里「 | 」的左右分為兩端,左端塞東西(寫),右端取東西(讀)。

clear作用為清除終端上的顯示(類似於DOS的cls清屏功能),也可使用快捷鍵:Ctrl + l ( 「l」 為字母 )。

在使用Unix/Linux的時候,經常需要更換工作目錄。cd命令可以幫助用戶切換工作目錄。Linux所有的目錄和文件名大小寫敏感
cd後面可跟絕對路徑,也可以跟相對路徑。如果省略目錄,則默認切換到當前用戶的主目錄。

使用pwd命令可以顯示當前的工作目錄,該命令很簡單,直接輸入pwd即可,後面不帶參數。

通過mkdir命令可以創建一個新的目錄。參數-p可遞歸創建目錄。
需要注意的是新建目錄的名稱不能與當前目錄中已有的目錄或文件同名,並且目錄創建者必須對當前目錄具有寫許可權。

可使用rmdir命令刪除一個目錄。必須離開目錄,並且目錄必須為空目錄,不然提示刪除失敗。

可通過rm刪除文件或目錄。使用rm命令要小心,因為文件刪除後不能恢復。為了防止文件誤刪,可以在rm後使用-i參數以逐個確認要刪除的文件。
常用參數及含義如下表所示:

Linux鏈接文件類似於Windows下的快捷方式。
鏈接文件分為軟鏈接和硬鏈接。
軟鏈接:軟鏈接不佔用磁碟空間,源文件刪除則軟鏈接失效。
硬鏈接:硬鏈接只能鏈接普通文件,不能鏈接目錄。
使用格式:

如果沒有-s選項代表建立一個硬鏈接文件,兩個文件佔用相同大小的硬碟空間,即使刪除了源文件,鏈接文件還是存在,所以-s選項是更常見的形式。
注意:如果軟鏈接文件和源文件不在同一個目錄,源文件要使用絕對路徑,不能使用相對路徑。

Linux系統中grep命令是一種強大的文本搜索工具,grep允許對文本文件進行模式查找。如果找到匹配模式, grep列印包含模式的所有行。

grep一般格式為:

在grep命令中輸入字元串參數時,最好引號或雙引號括起來。例如:grep『a 』1.txt。

常用選項說明:

find命令功能非常強大,通常用來在特定的目錄下搜索符合條件的文件,也可以用來搜索特定用戶屬主的文件。
常用用法:

cp命令的功能是將給出的文件或目錄復制到另一個文件或目錄中,相當於DOS下的命令。
常用選項說明:

用戶可以使用mv命令來移動文件或目錄,也可以給文件或目錄重命名。
常用選項說明:

計算機中的數據經常需要備份,tar是Unix/Linux中最常用的備份工具,此命令可以把一系列文件歸檔到一個大文件中,也可以把檔案文件解開以恢復數據。
tar使用格式 tar [參數] 打包文件名 文件
tar命令很特殊,其參數前面可以使用「-」,也可以不使用。
常用參數:

tar與gzip命令結合使用實現文件打包、壓縮。 tar只負責打包文件,但不壓縮,用gzip壓縮tar打包後的文件,其擴展名一般用xxxx.tar.gz。
gzip使用格式如下:
gzip [選項] 被壓縮文件
常用選項:

tar與bzip2命令結合使用實現文件打包、壓縮(用法和gzip一樣)。
tar只負責打包文件,但不壓縮,用bzip2壓縮tar打包後的文件,其擴展名一般用xxxx.tar.gz2。
在tar命令中增加一個選項(-j)可以調用bzip2實現了一個壓縮的功能,實行一個先打包後壓縮的過程。
壓縮用法:tar -jcvf 壓縮包包名 文件...(tar jcvf bk.tar.bz2 *.c)
解壓用法:tar -jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)

通過zip壓縮文件的目標文件不需要指定擴展名,默認擴展名為zip。
壓縮文件:zip [-r] 目標文件(沒有擴展名) 源文件
解壓文件:unzip -d 解壓後目錄文件 壓縮文件

whoami該命令用戶查看當前系統當前賬號的用戶名。可通過cat /etc/passwd查看系統用戶信息。
由於系統管理員通常需要使用多種身份登錄系統,例如通常使用普通用戶登錄系統,然後再以su命令切換到root身份對傳統進行管理。這時候就可以使用whoami來查看當前用戶的身份。

who命令用於查看當前所有登錄系統的用戶信息。
常用選項:

如果是圖形界面,退出當前終端;
如果是使用ssh遠程登錄,退出登陸賬戶;
如果是切換後的登陸用戶,退出則返回上一個登陸賬號。

在Unix/Linux中添加用戶賬號可以使用adser或useradd命令,因為adser命令是指向useradd命令的一個鏈接,因此,這兩個命令的使用格式完全一樣。
useradd命令的使用格式如下:
useradd [參數] 新建用戶賬號

在Unix/Linux中,超級用戶可以使用passwd命令為普通用戶設置或修改用戶口令。用戶也可以直接使用該命令來修改自己的口令,而無需在命令後面使用用戶名。

可以通過su命令切換用戶,su後面可以加「-」。su和su –命令不同之處在於,su -切換到對應的用戶時會將當前的工作目錄自動轉換到切換後的用戶主目錄:
注意:如果是ubuntu平台,需要在命令前加「sudo」,如果在某些操作需要管理員才能操作,ubuntu無需切換到root用戶即可操作,只需加「sudo」即可。sudo是ubuntu平台下允許系統管理員讓普通用戶執行一些或者全部的root命令的一個工具,減少了root 用戶的登陸和管理時間,提高了安全性。

方法一:

方法二:

groupadd 新建組賬號 groupdel 組賬號 cat /etc/group 查看用戶組

使用方法:usermod -g 用戶組 用戶名

新創建的用戶,默認不能sudo,需要進行一下操作

-g用來制定這個用戶默認的用戶組
-G一般配合'-a'來完成向其它組添加

chmod 修改文件許可權有兩種使用格式:字母法與數字法。
字母法:chmod u/g/o/a +/-/= rwx 文件

cal命令用於查看當前日歷,-y顯示整年日歷

設置時間格式(需要管理員許可權):
date [MMDDhhmm[[CC]YY][.ss]] +format
CC為年前兩位yy為年的後兩位,前兩位的mm為月,後兩位的mm為分鍾,dd為天,hh為小時,ss為秒。如: date 010203042016.55。
顯示時間格式(date '+%y,%m,%d,%H,%M,%S'):

進程是一個具有一定獨立功能的程序,它是操作系統動態執行的基本單元。
ps命令可以查看進程的詳細狀況,常用選項(選項可以不加「-」)如下:

top命令用來動態顯示運行中的進程。top命令能夠在運行後,在指定的時間間隔更新顯示信息。可以在使用top命令時加上-d 來指定顯示信息更新的時間間隔。
在top命令執行後,可以按下按鍵得到對顯示的結果進行排序:

kill命令指定進程號的進程,需要配合 ps 使用。有些進程不能直接殺死,這時候我們需要加一個參數「 -9 」,「 -9 」 代表強制結束.
使用格式:
kill [-signal] pid

df命令用於檢測文件系統的磁碟空間佔用和空餘情況,可以顯示所有文件系統對節點和磁碟塊的使用情況。

命令用於統計目錄或文件所佔磁碟空間的大小,該命令的執行結果與df類似,更側重於磁碟的使用狀況。
命令的使用格式如下: [選項] 目錄或文件名

⑥ Linux常用的內容查看命令有哪些

1.head
文件的開頭內容
head 文件名
2.tail
文件的末尾內容
tail -f 動態的日誌文件
tail -f 動態的日誌文件 | gerp 目標信息
3.cat / more
查看(合並)文件內容
cat 文件靜態日誌 | gerp 目標信息
4.grep
過濾文件的內容
命令 | grep 目標信息內容

⑦ linux系統grep命令有什麼用

Linux grep命令用於查找文件里符合條件的字元串。

grep指令用於查找內容包含指定的範本樣式的文件,如果發現某文件的內容符合所指定的範本樣式,預設grep指令會把含有範本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名為-,則grep指令會從標准輸入設備讀取數據。

語法

grep
[-abcEFGhHilLnqrsvVwxy][-A<顯示行數>][-B<顯示列數>][-C<顯示列數>][-d<進行動作>][-e<範本樣式>][-f<範本文件>][--help][範本樣式][文件或目錄...]

參數

-a或--text:不要忽略二進制的數據。

-A<顯示行數>或--after-context=<顯示行數>:除了顯示符合範本樣式的那一列之外,並顯示該行之後的內容。

-b或--byte-offset:在顯示符合樣式的那一行之前,標示出該行第一個字元的編號。

-B<顯示行數>或--before-context=<顯示行數>:除了顯示符合樣式的那一行之外,並顯示該行之前的內容。

-c或--count:計算符合樣式的列數。

-C<顯示行數>或--context=<顯示行數>或-<顯示行數>:除了顯示符合樣式的那一行之外,並顯示該行之前後的內容。

-d<動作>或--directories=<動作>:當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep指令將回報信息並停止動作。

-e<範本樣式>或--regexp=<範本樣式>:指定字元串做為查找文件內容的樣式。

-E或--extended-regexp:將樣式為延伸的正則表達式來使用。

-f<規則文件>或--file=<規則文件>:指定規則文件,其內容含有一個或多個規則樣式,讓grep查找符合規則條件的文件內容,格式為每行一個規則樣式。

-F或--fixed-regexp:將樣式視為固定字元串的列表。

-G或--basic-regexp:將樣式視為普通的表示法來使用。

-h或--no-filename:在顯示符合樣式的那一行之前,不標示該行所屬的文件名稱。

-H或--with-filename:在顯示符合樣式的那一行之前,表示該行所屬的文件名稱。

………………

參數較多,就不為大家一一講解了!

⑧ Linux系統中grep命令如何使用常用參數有哪些

進行Linux系統維護的時候,想要在文本中快速搜索到你需要的東西,grep命令是非常不錯的選擇,它主要用於查找文件里符合條件的字元串,從而節省時間、提高工作效率。那麼Linux系統中grep命令如何使用?我們一起來看看詳細的內容介紹。

Linux grep命令用於查找文件里符合條件的字元串。

grep指令用於查找內容包含指定的範本樣式的文件,如果發現某文件的內容符合所指定的範本樣式,預設grep指令會把含有範本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名為-,則grep指令會從標准輸入設備讀取數據。

語法

grep

[-abcEFGhHilLnqrsvVwxy][-A<顯示行數>][-B<顯示列數>][-C<顯示列數>][-d<進行動作>][-e<範本樣式>][-f<範本文件>][--help][範本樣式][文件或目錄...]

參數

-a或--text:不要忽略二進制的數據。

-A<顯示行數>或--after-context=<顯示行數>:除了顯示符合範本樣式的那一列之外,並顯示該行之後的內容。

-b或--byte-offset:在顯示符合樣式的那一行之前,標示出該行第一個字元的編號。

-B<顯示行數>或--before-context=<顯示行數>:除了顯示符合樣式的那一行之外,並顯示該行之前的內容。

-c或--count:計算符合樣式的列數。

-C<顯示行數>或--context=<顯示行數>或-<顯示行數>:除了顯示符合樣式的那一行之外,並顯示該行之前後的內容。

-d<動作>或--directories=<動作>:當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep指令將回報信息並停止動作。

-e<範本樣式>或--regexp=<範本樣式>:指定字元串做為查找文件內容的樣式。

-E或--extended-regexp:將樣式為延伸的正則表達式來使用。

-f<規則文件>或--file=<規則文件>:指定規則文件,其內容含有一個或多個規則樣式,讓grep查找符合規則條件的文件內容,格式為每行一個規則樣式。

-F或--fixed-regexp:將樣式視為固定字元串的列表。

-G或--basic-regexp:將樣式視為普通的表示法來使用。

-h或--no-filename:在顯示符合樣式的那一行之前,不標示該行所屬的文件名稱。

-H或--with-filename:在顯示符合樣式的那一行之前,表示該行所屬的文件名稱。

………………

參數較多,就不為大家一一講解了!

⑨ Linux文本匹配命令grep與fgrep使用全解

Linux中grep與fgrep命令的使用,兩個命令的使用都與文本的搜索與匹配相關,是Linux入門學習中的基礎知識,接下來是我為大家收集的Linux文本匹配命令grep與fgrep使用全解,希望能幫到大家。
Linux文本匹配命令grep與fgrep使用全解
grep

grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行列印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字元, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字元表示回其自身的字面意義,不再特殊。Linux使用GNU版本的grep。它功能更強,可以通過-G、-E、-F命令行選項來使用egrep和fgrep的功能。

grep的工作方式是這樣的,它在一個或多個文件中搜索字元串模板。如果模板包括空格,則必須被引用,模板後的所有字元串被看作文件名。搜索的結果被送到屏幕,不影響原文件內容。

grep可用於shell腳本,因為grep通過返回一個狀態值來說明搜索的狀態,如果模板搜索成功,則返回0,如果搜索不成功,則返回1,如果搜索的文件不存在,則返回2。我們利用這些返回值就可進行一些自動化的文本處理工作。

grep --help

匹配模式選擇:

-E, --extended-regexp 擴展正則表達式egrep

-F, --fixed-strings 一個換行符分隔的字元串的集合fgrep

-G, --basic-regexp 基本正則

-P, --perl-regexp 調用的perl正則

-e, --regexp=PATTERN 後面根正則模式,默認無

-f, --file=FILE 從文件中獲得匹配模式

-i, --ignore-case 不區分大小寫

-w, --word-regexp 匹配整個單詞

-x, --line-regexp 匹配整行

-z, --null-data 一個 0 位元組的數據行,但不是空行

雜項:

-s, --no-messages 不顯示錯誤信息

-v, --invert-match 顯示不匹配的行

-V, --version 顯示版本號

--help 顯示幫助信息

--mmap use memory-mapped input if possible

輸入控制:

-m, --max-count=NUM 匹配的最大數

-b, --byte-offset 列印匹配行前面列印該行所在的塊號碼。

-n, --line-number 顯示的加上匹配所在的行號

--line-buffered 刷新輸出每一行

-H, --with-filename 當搜索多個文件時,顯示匹配文件名前綴

-h, --no-filename 當搜索多個文件時,不顯示匹配文件名前綴

--label=LABEL print LABEL as filename for standard input

-o, --only-matching 只顯示一行中匹配PATTERN 的部分

-q, --quiet, --silent 不顯示任何東西

--binary-files=TYPE 假定二進制文件的TYPE 類型;

TYPE 可以是`binary', `text', 或`without-match'

-a, --text 匹配二進制的東西

-I 不匹配二進制的東西

-d, --directories=ACTION 目錄操作,讀取,遞歸,跳過

-D, --devices=ACTION 設置對設備,FIFO,管道的操作,讀取,跳過

-R, -r, --recursive 遞歸調用

--include=PATTERN 只查找匹配FILE_PATTERN 的文件

--exclude=PATTERN 跳過匹配FILE_PATTERN 的文件和目錄

--exclude-from=FILE 跳過所有除FILE 以外的文件

-L, --files-without-match 匹配多個文件時,顯示不匹配的文件名

-l, --files-with-matches 匹配多個文件時,顯示匹配的文件名

-c, --count 顯示匹配了多少次

-Z, --null 在FILE 文件最後列印空字元

文件控制:

-B, --before-context=NUM 列印匹配本身以及前面的幾個行由NUM控制

-A, --after-context=NUM 列印匹配本身以及隨後的幾個行由NUM控制

-C, --context=NUM 列印匹配本身以及隨後,前面的幾個行由NUM控制

-NUM 根-C的用法一樣的

--color[=WHEN],

--colour[=WHEN] 使用標志高亮匹配字串;

-U, --binary 使用標志高亮匹配字串;

-u, --unix-byte-offsets 當CR 字元不存在,報告位元組偏移(MSDOS 模式)

例:

測試文件

復制代碼

代碼如下:

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/bin/false,aaa,bbbb,cccc,aaaaaa

DADddd:x:2:2:daemon:/sbin:/bin/false

mail:x:8:12:mail:/var/spool/mail:/bin/false

ftp:x:14:11:ftp:/home/ftp:/bin/false

&nobody:$:99:99:nobody:/:/bin/false

zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash

http:x:33:33::/srv/http:/bin/false

dbus:x:81:81:System message bus:/:/bin/false

hal:x:82:82:HAL daemon:/:/bin/false

mysql:x:89:89::/var/lib/mysql:/bin/false

aaa:x:1001:1001::/home/aaa:/bin/bash

ba:x:1002:1002::/home/zhangy:/bin/bash

test:x:1003:1003::/home/test:/bin/bash

@zhangying:*:1004:1004::/home/test:/bin/bash

policykit:x:102:1005:Po

a,匹配含有root的行

復制代碼

代碼如下:

[root@krlcgcms01 test]# grep root test

root:x:0:0:root:/root:/bin/bash

b,匹配以root開頭或者以zhang開頭的行,注意反斜杠

復制代碼

代碼如下:

[root@krlcgcms01 test]# cat test |grep '^\(root\|zhang\)'

root:x:0:0:root:/root:/bin/bash

zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash

c,匹配以root開頭或者以zhang開頭的行,注意反斜杠,根上面一個例子一樣,-e默認是省去的

[root@krlcgcms01 test]# cat test |grep -e '^\(root\|zhang\)'

root:x:0:0:root:/root:/bin/bash

zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash

d,匹配以zhang開頭,只含有字母

復制代碼

代碼如下:

[root@krlcgcms01 test]# echo 'zhangying' |grep '^zhang[a-z]*$'

zhangying

e,匹配以bin開頭的行,用的egrep,在這里可以換成-F,-G

復制代碼

代碼如下:

[root@krlcgcms01 test]# cat test |grep -E '^bin'

bin:x:1:1:bin:/bin:/bin/false,aaa,bbbb,cccc,aaaaaa

f,在匹配的行前面加上該行在文件中,或者輸出中所在的行號

復制代碼

代碼如下:

[root@krlcgcms01 test]# cat test|grep -n zhangy

7:zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash

13:ba:x:1002:1002::/home/zhangy:/bin/bash

15:@zhangying:*:1004:1004::/home/test:/bin/bash

g,不匹配以bin開頭的行,並顯示行號

復制代碼

代碼如下:

[root@krlcgcms01 test]# cat test|grep -nv '^bin'

root:x:0:0:root:/root:/bin/bash

DADddd:x:2:2:daemon:/sbin:/bin/false

mail:x:8:12:mail:/var/spool/mail:/bin/false

ftp:x:14:11:ftp:/home/ftp:/bin/false

&nobody:$:99:99:nobody:/:/bin/false

zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash

http:x:33:33::/srv/http:/bin/false

dbus:x:81:81:System message bus:/:/bin/false

hal:x:82:82:HAL daemon:/:/bin/false

mysql:x:89:89::/var/lib/mysql:/bin/false

aaa:x:1001:1001::/home/aaa:/bin/bash

ba:x:1002:1002::/home/zhangy:/bin/bash

test:x:1003:1003::/home/test:/bin/bash

@zhangying:*:1004:1004::/home/test:/bin/bash

policykit:x:102:1005:Po

h,顯示匹配的個數,不顯示內容

復制代碼

代碼如下:

[root@krlcgcms01 test]# cat test|grep -c zhang

3

i,匹配system,沒有加-i沒有匹配到東西。

復制代碼

代碼如下:

[root@krlcgcms01 test]# grep system test

[root@krlcgcms01 test]# grep -ni system test

9:dbus:x:81:81:System message bus:/:/bin/false

j,匹配zhan沒有匹配到東西,匹配zhangy能匹配到,因為在test文件中,有zhangy這個單詞

復制代碼

代碼如下:

[root@krlcgcms01 test]# cat test|grep -w zhan

[root@krlcgcms01 test]# cat test|grep -w zhangy

zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash

ba:x:1002:1002::/home/zhangy:/bin/bash

k,在這里-x後面東西,和輸出中的整行相同時,才會輸出

[root@krlcgcms01 test]# echo "aaaaaa" |grep -x aaa

[root@krlcgcms01 test]# echo "aaaa" |grep -x aaaa

aaaa

l,最多隻匹配一次,如果把-m 1去掉的話,會有三個

復制代碼

代碼如下:

[root@krlcgcms01 test]# cat test |grep -m 1 zhang

zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash

m,匹配行的前面顯示塊號,這個塊號是干什麼的,不知道,有誰知道可否告訴我一下

復制代碼

代碼如下:

[apacheuser@krlcgcms01 test]$ cat test |grep -b zha

241:zhangy:x:1000:100:,,,:/home/zhangy:/bin/bash

480:ba:x:1002:1002::/home/zhangy:/bin/bash

558:@zhangying:*:1004:1004::/home/test:/bin/bash

n,多文件匹配時,在匹配的行前面加上文件名

復制代碼

代碼如下:

[apacheuser@krlcgcms01 test]$ grep -H 'root' test test2 testbak

test:root:x:0:0:root:/root:/bin/bash

test2:root

testbak:root:x:0:0:root:/root:/bin/bash

o,多文件匹配時,在匹配的行前面不加上文件名

復制代碼

代碼如下:

[apacheuser@krlcgcms01 test]$ grep -h 'root' test test2 testbak

root:x:0:0:root:/root:/bin/bash

root

root:x:0:0:root:/root:/bin/bash

p,多文件匹配時,顯示匹配文件的文件名

復制代碼

代碼如下:

[apacheuser@krlcgcms01 test]$ grep -l 'root' test test2 testbak DAta

test

test2

testbak

q,沒有-o時,有一行匹配,這一行裡面有3個root,加上-o後,這個3個root就出來了

復制代碼

代碼如下:

[apacheuser@krlcgcms01 test]$ grep 'root' test

root:x:0:0:root:/root:/bin/bash

[apacheuser@krlcgcms01 test]$ grep -o 'root' test

root

root

root

r,遞歸顯示匹配的內容,在test目錄下面建個mytest目錄, test目錄下面的test文件到mytest下面,能看到上面的結果

復制代碼

代碼如下:

[root@krlcgcms01 test]# grep test -R /tmp/test/mytest

/tmp/test/mytest/test:test:x:1003:1003::/home/test:/bin/bash

/tmp/test/mytest/test:@zhangying:*:1004:1004::/home/test:/bin/bash

s,顯示匹配root後面的3行

復制代碼

代碼如下:

[root@krlcgcms01 test]# cat test |grep -A 3 root

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/bin/false,aaa,bbbb,cccc,aaaaaa

daemon:x:2:2:daemon:/sbin:/bin/false

mail:x:8:12:mail:/var/spool/mail:/bin/false

fgrep

用法: fgrep [選項]... PATTERN [FILE]...

在每個 FILE 或是標准輸入中查找 PATTERN。

PATTERN 是一組由斷行符分隔的定長字元串。

例如: fgrep -i 'hello world' menu.h main.c

正則表達式選擇與解釋:

-e, --regexp=PATTERN 用 PATTERN 來進行匹配操作

-f, --file=FILE 從 FILE 中取得 PATTERN

-i, --ignore-case 忽略大小寫

-w, --word-regexp 強制 PATTERN 僅完全匹配字詞

-x, --line-regexp 強制 PATTERN 僅完全匹配一行

-z, --null-data 一個 0 位元組的數據行,但不是空行

雜項:

-s, --no-messages 不顯示錯誤信息

-v, --invert-match 選中不匹配的行

-V, --version 顯示版本信息並退出

--help 顯示此幫助並退出

--mmap 忽略向後兼容性

Output control:

-m, --max-count=NUM 匹配的最大數

-b, --byte-offset 列印匹配行前面列印該行所在的塊號碼

-n, --line-number 顯示的加上匹配所在的行號

--line-buffered 刷新輸出每一行

-H, --with-filename 當搜索多個文件時,顯示匹配文件名前綴

-h, --no-filename 當搜索多個文件時,不顯示匹配文件名前綴

--label=LABEL use LABEL as the standard input file name prefix

-o, --only-matching 只顯示一行中匹配PATTERN 的部分

-q, --quiet, --silent 不顯示所有輸出

--binary-files=TYPE 假定二進制文件的TYPE 類型;

TYPE 可以是`binary', `text', 或`without-match'

-a, --text 等同於 --binary-files=text

-I 等同於 --binary-files=without-match

-d, --directories=ACTION 操作目錄的方式;

ACTION 可以是`read', `recurse',或`skip'

-D, --devices=ACTION 操作設備、先入先出隊列、套接字的方式;

ACTION 可以是`read'或`skip'

-R, -r, --recursive 等同於 --directories=recurse

--include=FILE_PATTERN 只查找匹配FILE_PATTERN 的文件

--exclude=FILE_PATTERN 跳過匹配FILE_PATTERN 的文件和目錄

--exclude-from=FILE 跳過所有除FILE 以外的文件

--exclude-dir=PATTERN 跳過所有匹配PATTERN 的目錄。

-L, --files-without-match 只列印不匹配FILEs 的文件名

-l, --files-with-matches 只列印匹配FILES 的文件名

-c, --count 只列印每個FILE 中的匹配行數目

-T, --initial-tab 行首tabs 分隔(如有必要)

-Z, --null 在FILE 文件最後列印空字元

文件控制:

-B, --before-context=NUM 列印以文本起始的NUM 行

-A, --after-context=NUM 列印以文本結尾的NUM 行

-C, --context=NUM 列印輸出文本NUM 行

-NUM 等同於 --context=NUM

--color[=WHEN],

--colour[=WHEN] 使用標志高亮匹配字串;

WHEN 可以是`always', `never'或`auto'

-U, --binary 不要清除行尾的CR 字元(MSDOS 模式)

-u, --unix-byte-offsets 當CR 字元不存在,報告位元組偏移(MSDOS 模式)

‘fgrep’已不再使用了;請用 ‘grep -F’代替。

不帶 FILE 參數,或是 FILE 為 -,將讀取標准輸入。如果少於兩個 FILE 參數

就要默認使用 -h 參數。如果選中任意一行,那退出狀態為 0,否則為 1;

如果有錯誤產生,且未指定 -q 參數,那退出狀態為 2。

例:

復制代碼

代碼如下:

[root@linux test]# cat abc.sh |fgrep a #匹配含有a的

看了“Linux文本匹配命令grep與fgrep使用全解”還想看:

1. linux grep命令詳解

2. 全面解析Linux的grep命令中正則表達式的用法

3. Linux下如何使用grep命令搜索多個單詞

4. 開發人員常用什麼linux命令

閱讀全文

與linux命令大全grep相關的資料

熱點內容
juniper防火牆常用命令 瀏覽:426
vapp怎麼下載地址 瀏覽:11
pdf裡面內容怎麼修改 瀏覽:807
收藏網址加密的瀏覽器 瀏覽:1000
phpurl問號 瀏覽:898
什麼筆記本電腦可以用python 瀏覽:135
加密相冊如何翻找 瀏覽:992
泰州地區DNS伺服器地址 瀏覽:849
一種app可以買菜用英語怎麼說 瀏覽:196
中國聯通app裡面通話詳單怎麼刪除 瀏覽:505
計算機網路編譯軟體 瀏覽:100
程序員說不能說的秘密 瀏覽:700
在線shell編譯器 瀏覽:102
為什麼王者榮耀安卓轉蘋果成功登不上去 瀏覽:710
文件加密演算法可行性報告 瀏覽:60
a3雙面列印pdf 瀏覽:270
被命令文言文 瀏覽:717
c語言編譯器在線菜鳥 瀏覽:215
安卓如何使用華為手機助手 瀏覽:701
怎麼查看域伺服器名稱 瀏覽:775