天天看點

Linux-(16)管道和重定向

  Linux的指令行為我們提供了管道和重定向機制,通過管道和重定向就可以完成多指令協作。

  指令行shell的資料流有以下三種定義:

名稱 說明 編号 預設
STDIN 标準輸入 鍵盤
STDOUT 标準輸出 1 終端
STDERR 标準錯誤 2 終端

  指令通過STDIN接收參數或資料,通過STDOUT輸出結果或通過STDERR輸出錯誤,通過管道和重定向可以控制CLI的資料流

  如果将輸出重定向到/dev/null就不會有輸出了(這個通常用于在結果中過濾錯誤資訊)

  重定向:

  >  将STDOUT重定向到檔案(覆寫),例:echo "xxx" > outfile

  >>  将STDOUT重定向到檔案(追加),例:echo "xxx" >> outfile

  2>  将STDERR重定向到檔案(覆寫),例:ls nothere 2> errout

  2>&1  将STDERR與STDOUT結合,例:ls nothere 2>&1 alloutput

  <  重定向STDIN, 例:grep xxx < /etc/passwd

  管道:

  | (一個豎線):将一個指令的STDOUT(前一個指令)作為另一個指令(後一個指令)的STDIN,例:ls -l | grep xxx

  管道通常用來組合不同的指令,以實作一個複雜的功能,重定向通常用來儲存某指令的輸出資訊或錯誤資訊,可以用來記錄執行結果或儲存錯誤資訊到一個指定的檔案。

繼續閱讀