Linux標准錯誤
❶ linux標准輸入輸出與重定向詳解|果斷收藏
linux中的>、>>、<、<<、2>、2>>、2>&1、&>、&<,總歸要面對的
為了更好的理解這個問題,我們需要追本溯源。
執行一個shell命令行時通常會自動打開三個標准文件
(1) 、標准輸入文件(stdin)
通常對應終端的鍵盤。
(2)、標准輸出文件(stdout)。
(3)、標准錯誤輸出文件(stderr)。
(2)和(3)這兩個文件都對應終端的屏幕。
進程將從標准輸入文件中得到輸入數據。
將正常輸出數據輸出到標准輸出文件[顯示器]。
將錯誤信息送到標准錯誤文件中[顯示器]。
下圖所示:
0、1、2表示一個文件描述符
但是,有時候我們不想把一些進程處理後信息輸出到顯示器。
這時我們就引出了重定向。
改變標准輸入/輸出的方向
三種重定向:
1、重定向標准輸出,包括兩種。
(1)、>(覆蓋),等價1>
將命令執行的結果輸出到指定文件,非顯示器。
(2) 、>>(追加),等價1>>
將命令執行的結果追加到指定文件,非顯示器。
2、 重定向標准輸入,包括兩種。
(1) 、<
將命令中接收的輸入途徑,由鍵盤改為指定文件。
(2) 、<<[Here Document]
命令序列傳遞到一個交互程序或者命令中。
3、 重定向標准錯誤,包括兩種。
(1) 、2>(覆蓋)
將命令執行的結果輸出到指定文件。
(2) 、2>>(追加)
將命令執行的結果追加到指定文件。
1、重定向標准輸出和重定向標准錯誤到同一個文件中
有以下的幾種方式
(1) 、2>&1
(2) 、>&
(3) 、&>
2、 兩個特殊文件
(1) 、/dev/nul
過濾標准錯誤信息
意思就是不想顯示結果就輸出到這裡面。
(2) 、/dev/zero
創建指定長度的文件
案例1:
測試> and >>
案例2:
測試< and <<
測試<
測試<<
案例3:
測試2> and 2>>
案例4:
測試重定向標准輸出和重定向標准錯誤到同一個文件中
(1)、>&
(2)、&>
與上面的案例類似,不做解釋
(3) 、2>&1
案例5:
使用/dev/nul文件
有時候我們使用命令,不想將輸出的信息顯示到界面
這時我們可以使用 &> /dev/nul[常用]
簡單測試修改demo 用戶密碼