歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

Linux 管道命令

管道命令在Linux中十分有用,管道命令操作符是“|”,它能將經由前一個命令輸出的標准輸出,作為管道後一個命令的標准輸入。

1、grep命令
grep是一個文本搜索工具,用於在文本或標准輸入中查找指定的匹配,並輸出到標准輸出上。

一般格式:
grep [選項] 模式 [文件...]

常用選項:
-E, --extended-regexp :將查找模式解釋成擴展的正則表達式。
-F, --fixed-strings :將查找模式解釋成單純的字符串。
-c, --count :只是輸出文件中匹配的行的總數
-i, --ignore-case :忽略大小寫。
-n, --line-number :輸出時加上行號。
-r, --recursive :以遞歸方式查詢目錄下的所有子目錄中的文件。
-v, --invert-match :只顯示不包含匹配的行。

舉例:
1)查找是否安裝過httpd
# rpm -qa | grep httpd

2)在hi.txt中查找字符串Hello
# grep 'Hello' hi.txt

# cat hi.txt | grep 'Hello'

2、cut命令
cut命令用於截取字符串,顯示到標准輸出上。

一般格式:
cut [選項]... [文件]...

常用選項:
-b, --bytes=LIST :以字節為單位。
-c, --characters=LIST :以字符為單位。
-d, --delimiter=DELIM :表示分隔符,默認情況下為TAB。
-f, --fields=LIST :以字段為單位。

截取范圍:
N :只有第N項
N- :從第N項一直到行尾
N-M :從第N項到第M項(包括M)
-M :從一行的開始到第M項(包括M)
- :從一行的開始到結束的所有項

舉例:
1)找出passwd中的所有用戶名
# cat /etc/passwd | cut -d ':' -f1
root
bin
daemon
adm
lp
...
smmsp
sshd
apache
rpc
pcap
nscd
rpm
named

# cut -d ':' -f1 /etc/passwd 一樣效果。

2)查看vps上有哪些IP ssh登陸失敗,並計算次數
# lastb | cut -c 23-38 | uniq -c
9 213.229.124.66
6 178.162.239.192
1 121.9.245.177
8 147.213.138.201
11 119.161.208.37
61 220.225.70.251
6 123.30.108.208
3 h-sys.biz
7 220.225.70.251
6 61.111.18.25
...

3、sort命令
sort命令用於將文件內容排序,顯示到標准輸出上。排序是根據某個或多個關鍵字進行排序。

一般格式:
sort [選項]... [文件]...

常用選項:
-b, --ignore-leading-blanks :忽略每行前面開始出的空格字符和制表符。
-c, --check :檢查文件是否已經按照順序排序。
-d, --dictionary-order :排序時,處理英文字母、數字及空格字符外,忽略其他的字符。
-f, --ignore-case :忽略大小寫。
-i, --ignore-nonprinting :排序時,除了040至176之間的ASCII字符外,忽略其他的非打印字符。
-m, --merge :將幾個排序好的文件進行合並。
-M, --month-sort :規定月份的比較次序是(未知)<”JAN”<”FEB”<…<”DEC”。
-n, --numeric-sort :依照數值的大小排序。
-r, --reverse:按逆序排序。默認排序輸出是按升序排序的。
-t :字符將指定的“字符”作為字段間的分隔符,默認為TAB。
-u, --unique :與-c選項一起用,嚴格地按順序檢查;否則,對排序後的重復行只輸出第一行。
-k n1[,n2] :指定從文本行的第n1字段開始至第n2字段(不包括第n2字段)中間的內容作為排序關鍵字。如果沒有n2,則關鍵字是從第n1個字段到行尾的所有字段。n1和n2可以是小數形式。如”x.y”,x表示第x字段,y表示第x字段中的第y個字符。字段和字符的文職都是從1開始算起的。

舉例:
1)將/etc/passwd中按第三列uid的數值大小排序輸出
# cat /etc/passwd | sort -n -t ':' -k 3

4、uniq命令
uniq命令將排序好後文件中的重復行去除。

一般格式:
uniq [選項]... [INPUT [OUTPUT]]

常用選項:
-c, --count :顯示輸出時,在每行的行首加上該行在文件中出現的次數。
-d, --repeated :只顯示重復行。
-i, --ignore-case :忽略大小寫。
-f, --skip-fields=N :忽略比較前N個字段。
-s, --skip-chars=N :忽略比較前N個字符。
-u, --unique :只顯示文件中不重復的行。

舉例:
1)查看/etc/passwd中,所有群組gid及它們的用戶數
# cat /etc/passwd | cut -d ':' -f4 | sort -n | uniq -c

 

Copyright © Linux教程網 All Rights Reserved