簡單一句話概括:"使用輸入重定向能把檔案匯入到命令中,而輸出重定向則是能夠把原本要輸出到螢幕的資料資訊寫入到指定檔案中"
重定向詳解 :
linux啟動後,會預設開啟3個檔案描述符(通過分配的乙個數字,實現對檔案的讀寫操作),分別是:標準輸入standard input 0,正確輸出standard output 1,錯誤輸出:error output 2
linux命令執行過程的資料傳輸情況:
standard intput:預設從鍵盤輸入,為0時表示從其他檔案或命令的輸入
standard output:預設輸出到螢幕,為1時表示輸出到檔案
standard error output:預設輸出到螢幕,為2時表示輸出到檔案
標準輸入(stdin):**為0,使用《或<<
標準輸出(stdout):**為1,使用》或》
標準錯誤輸出(stderr):**為2,使用2>或2>>
系統預設存在/etc/crontab檔案,卻無/etc/crontab/vbird這個檔案,執行"cat /etc/crontab /etc/crontab/vbird"這個命令,cart會進行:
①標準輸出:讀取/etc/crontab後,將該檔案內容顯示到螢幕上
②標準錯誤輸出:因為無法找到/etc/crontab/vbird,因此在螢幕上顯示錯誤資訊
通過資料流重定向分別將
標準輸出("正確"的輸出資料)輸出/存放到ist1_right檔案中(通),
標準錯誤輸出("錯誤的"輸出資訊)輸出/存放到list2_error檔案中(通過2>)
對於輸出重定向符有這些情況:
符號作用
命 檔案將標準輸出重定向到乙個檔案中(清空原有檔案的資料)
命令2>
檔案將錯誤輸出重定向到乙個檔案中(清空原有檔案的資料)
檔案將標準輸出重定向到乙個檔案中(追加到原有內容的後面)
命令2>>
檔案將錯誤輸出重定向到乙個檔案中(追加到原有內容的後面)
檔案2>&1 或命令
&>>
檔案將標準輸出與錯誤輸出共同寫入到檔案中(追加到原有內容的後面)
2>&1的含義:
錯誤輸出重定向:命令 2> 檔案(若該檔案不存在,系統會自動建立)
標準輸出重定向:命令 > 檔案
linuxprobe這個檔案是真實存在的,即使用標準輸出即可將資料寫入到檔案中,而錯誤輸出的重定向則不行,依然會把資訊輸出到了螢幕上
將標準輸出與錯誤輸出共同寫入到檔案中(原檔案資訊保留,追加到後面)
(&>
可實現清空後再寫入)
將錯誤資訊直接忽略(不顯示、不儲存):黑洞裝置/dev/null可以"吃掉"任何導向這個裝置的資訊
追加寫入:命令 >> 檔案
對於輸入重定向有這些情況:
符號作用
命令<
檔案將檔案作為命令的標準輸入
命令<<
分界符從標準輸入中讀入,直到遇見
"分界符
"才停止(內聯輸入重定向)
命令<
檔案1 > 檔案2
將檔案1
作為命令的標準輸入並將標準輸出到檔案
2命令 < 檔案:將/etc/passwd檔案作為wc命令的標準輸入,相當於命令"cat /etc/passwd | wc -l"統計行數(統計使用者個數)
用stdin替代鍵盤的輸入以建立新檔案(將.bashrc檔案作為cat命令的標準輸入並輸出到建立的catfile檔案中(類似cp命令複製的一般)):命令 < 檔案1 > 檔案2
命令 << 分界符:用cat命令直接將輸入的資訊輸出到catfile中,且當由鍵盤輸入"eof"分界符(ctrl+d)時輸入才停止
雙向重定向:tee(t,t型水管介面)命令
tee會同時將資料流送往檔案與螢幕。
而輸出到螢幕的,是stdout,且可以讓下個命令繼續處理
選項:
輸入輸出重定向 雙向重定向tee
簡單一句話概括 使用輸入重定向能把檔案匯入到命令中,而輸出重定向則是能夠把原本要輸出到螢幕的資料資訊寫入到指定檔案中 重定向詳解 linux啟動後,會預設開啟3個檔案描述符 通過分配的乙個數字,實現對檔案的讀寫操作 分別是 標準輸入standard input 0,正確輸出standard outp...
Linux重定向(輸入輸出重定向)
我們知道,linux 中標準的輸入裝置預設指的是鍵盤,標準的輸出裝置預設指的是顯示器。而本節所要介紹的輸入 輸出重定向,完全可以從字面意思去理解,也就是 通常是用檔案或命令的執行結果來代替鍵盤作為新的輸入裝置,而新的輸出裝置通常指的就是檔案。對於輸入重定向來說,其需要用到的符號以及作用如表 1 所示...
輸入輸出重定向
使用標準輸入流,標準輸出流和標準錯誤流,這些標準流都被預分配給鍵盤和顯示器。在需要的時候,可以使用重定向臨時改變這些預設分配。重定向是這樣一種過程,我們借助它指定乙個用於替代某個 標準檔案的檔案。輸入重定向 可以將標準輸入從鍵盤重定向到任何文字檔案。輸入重定向運算子為小於號 意味著該命令從此給 派的...