Shell學習之:輸入輸出重新導向

來源:互聯網
上載者:User

標籤: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


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.