在linux shell執行命令時,每一個進程都和三個打開的文件相聯繫,並使用文件描述符來引用這些文件。因爲文件描述符不容易記憶,shell同時也給出了相應的文件名。linux
標準輸入:0(缺省是鍵盤,爲0時是文件或者其餘命令的輸出)shell
標準輸出:1(缺省是屏幕,爲1時是文件)進程
標準出錯:2(缺省是屏幕,爲2時是文件)it
系統中實際上有12個文件描述符,能夠任意使用文件描述符3到9.file
文件重定向:改變程序運行的輸入來源和輸出地點引用
Command > filename #把標準輸出重定向到一個新文件中程序
Command >> filename #把標準輸出重定向到一個文件中(追加)im
Command > filename 2>&1 #把標準輸出和錯誤一塊兒重定向到一個文件中重定向
Command >> filename 2>&1 #把標準輸出和錯誤一塊兒重定向到一個文件(追加)di
Command 2>filename #把標準錯誤重定向到一個文件中
Command 2>>filename #把標準輸出重定向到一個文件中(追加)
Command < filename #Command命令以filename文件做爲標準輸入
Command << delimiter #從標準輸入中讀入,知道遇到delimiter分界符
Command >&m #把標準輸出重定向到文件描述符m中
Command < &- #關閉標準輸入