1. 程式人生 > >linux常用命令--管道命令

linux常用命令--管道命令

管道命令

|”僅能處理由前面一個命令傳來的正確資訊,管理後面接的命令必須能夠接收standard input的資料,如lessmorecutgrepsortwctee

cutgrep為選取命令,針對“行”來分析,並不是整篇資訊。cut是在一行資訊中取出某部分想要的,grep則是分析一行資訊,若當中有所需要的資訊則將該行拿出來。

cut命令

echo $PATH | cut -d ‘:’ -f 3,5    #取得分隔字元為:的和第三段和第五段的內容

export | cut -c 12-     #取得第12字元以後的所有字串

-d:後接分隔符,與-f一起使用

-f:取出第幾段的意思

-c:取出固定字元區間

grep命令

grep -n ‘^[^a-zA-Z]’ regular_express.txt    #開頭不是英文字母

grep -n ‘^[[:lower:]]’ regular_express.txt    #開頭是小寫字母

last | grep -v ’root’  #只要沒有root的就取出

-n:順便輸出行號

-i:忽略大小寫的不同

-v:顯示沒有這個字串的那一行

sort 排序

cat /etc/passwd |sort -t ‘:’ -k 3 -n    #/etc/passwd內容是以:分隔的,以第三列按照文字型別排列

wc 輸出檔案裡的字數、字元數、行數

last | grep [a-zA-Z] | grep -v ‘wtmp’ | wc -l      #grep取出非空白行,以及去除有wtmp字串的行,再計算行數

-l:列出行

-w:列出多少字

-m:多少字元

tee 雙向重定向,會同時將資料流送與檔案與螢幕

last | tee -a last.list | cut -d “ “ -f1     #last的輸出以累加的方式儲存到last.list檔案中,同時螢幕輸出以空格符分隔的第一列的資訊

-a:append的方式將資料加入檔案中,否則檔案會被覆蓋

資料重定向 可以將標準輸出和標準錯誤輸出分別傳送到其他檔案或裝置中去

find /home -name .bashrc > list_right 2> list_error

1>>:以覆蓋的方式將正確的資料輸出到指定的檔案或裝置

1>>>>:以累加的方式

2>:以覆蓋的方式將錯誤的資料輸出到指定的檔案或裝置

2>>:以累加的方式

xargs 引數代換

很多命令並不支援管道命令,因此我們可以通過xargs來提供該命令引用standard input之用

find /sbin -perm +7000 | xargs ls -l    #找出/sbin下面具有各執一份許可權的檔名,並使用ls列出屬性