標籤:linux 標準
詳細理解:
linux命令預設從標準輸入裝置(stdin)擷取輸入,將結果輸出到標準輸出裝置(stdout)顯示。一般情況下,標準輸入裝置就是鍵盤,標準輸出裝置就是終端,即顯示器。在linux shell執行命令時,每個進程都和三個開啟的檔案相聯絡,並使用檔案描述符來引用這些檔案。由於檔案描述符不容易記憶,shell同時也給出了相應的檔案名稱:
檔案描述符說明列表
檔案 |
檔案描述符 |
輸入檔案-標準輸入 |
0(預設為鍵盤;0為檔案或其他命令的輸出) |
輸出檔案-標準輸出 |
1(預設為螢幕;1為檔案) |
錯誤輸出檔案-標準錯誤 |
2(預設為螢幕;2為檔案) |
全部可用的命令列列表
命令 |
說明 |
command > file |
將輸出重新導向到 file。 |
command < file |
將輸入重新導向到 file。 |
command >> file |
將輸出以追加的方式重新導向到 file。 |
n > file |
將檔案描述符為 n 的檔案重新導向到 file。 |
n >> file |
將檔案描述符為 n 的檔案以追加的方式重新導向到 file。 |
n >& m |
將輸出檔案 m 和 n 合并。 |
n <& m |
將輸入檔案 m 和 n 合并。 |
<< tag |
將開始標記 tag 和結束標記 tag 之間的內容作為輸入。 |
預設情況下,command > file 將stdout重新導向到file,command < file 將stdin 重新導向到 file。
- 如果希望stderr重新導向到 file,可以這樣寫:
$ command 2 > file # 2表示標準錯誤檔案(stderr)
- 如果希望stderr追加到file檔案末尾,可以這樣寫:
$ command 2 >> file # >>表示追加寫入,不覆蓋之前的內容
- 如果希望將stdout和stderr合并後重新導向到file,可以這樣寫:
$ command > file 2>&1
或
$ command >> file 2>&1
- 如果希望對stdin和stdout 都重新導向,可以這樣寫:
$ command < infile > outfile # command命令將stdin重新導向到infile,將stdout重新導向到outfile