1. 程式人生 > >流、管道、重定向

流、管道、重定向

重定向:顯示的命令結果輸送到其他地方。
管道:兩個命令連起來。一個輸出一個輸入。

命令的結果可以“流向”:終端,檔案,其他命令。

>和>>:重定向到檔案
>新檔案
>>追加

/dev/null 檔案是特殊檔案,不是一個目錄。此檔案具有唯一的屬性:它總是空的。它能使傳送到/dev/null 的任何資料作廢,就好像這些資料掉進了無底的黑洞一般。

stdin,stdout,stderr:標準輸入,標準輸出,標準錯誤輸出

2> 重定向錯誤資訊
2>> 追加
2>&1 將標準錯誤輸出重定向到與標準輸出相同的地方

<:從檔案中讀取
<<:從鍵盤讀取
輸入END來結束輸入,END被稱為結束字串。

|:管道
du | sort -nr | head
du 深入遍歷當前目錄下每個子目錄,把所有檔案的大小都做一個統計
sort -nr sort命令的-n引數是按以數值來排序(此處是檔案大小)排序,預設是小的在前;-r引數是倒序排列,有了-r引數,-n引數就變成大的數值在前了
head 列出前十個最大的數值(這裡是檔案大小)

sudo grep log -Ir /var/log | cut -d : -f 1 | sort | uniq
sudo grep log -Ir /var/log :遍歷/var/log這個目錄及其子目錄,列出所有包含log這個關鍵字的行。-I引數用於排除二進位制檔案。-r引數用於遞迴遍歷。sudo命令是為了以root身份查詢系統資料夾/var/log。
cut -d : -f 1 從命令1的輸出結果中只剪切出檔名那一列(由冒號分隔的第一個區域)。
sort 將檔名的列以首字母的字典順序進行排序。
uniq : 去掉重複的檔名。