歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux基礎知識 >> Linux 數據流重定向

Linux 數據流重定向

日期:2017/3/2 17:13:51   编辑:Linux基礎知識

1.三種數據流重定向
1)標准輸入(stdin):代碼為0,使用0<或0<<,其中代碼0可以省略
2)標准輸出(stdout):代碼為1,使用1>或1>>,其中代碼1可以省略
3)標准錯誤輸出(stderr):代碼為2,使用2>或2>>

2.標准輸出(stdout)重定向
我們知道Linux中,cat命令可以將文件內容輸出到屏幕。
如下所示:

我們可以使用>將輸出重定向到其他文件,如下所示:

可以看到,使用>後,文件內容並沒有輸出到屏幕,而是輸出到了mytxt文件。

>>與>的區別是,>>會把輸出添加到文件的末尾,>會清空文件,然後將輸出寫入該文件。

3.標准輸入(stdin)重定向
cat>mytxt,表示需要從鍵盤輸入數據到文件。如下所示:

使用<可以將其他文件內容輸入到該文件,如下所示:

使用<<,表示定義輸入結束符,
從鍵盤輸入時,輸入Ctrl+D,可結束進程。
還可以使用<<自定義結束符,如下所示:

4.標准錯誤輸出(stderr)重定向
與標准輸出(stdout)重定向使用相同。
表示重定向的是錯誤信息。
一般用來將錯誤信息和正確信息分開。

5.標准輸出和標准錯誤輸出寫入同一個文件
使用&>可將stdout和stderr輸出到同一個文件,如下所示:

6.屏蔽所有輸出的方法
有時我們希望將所有的錯誤信息或正確信息屏蔽掉,
此時,可將輸出重定向到設備/dev/null。如下所示:

將正確信息吃掉,此時屏幕輸出的只有錯誤信息了。

7.為什麼要用數據流重定向
1)需要將屏幕信息保存下來的時候
2)不希望其他程序干擾到當前程序的屏幕輸出
3)執行時一些已知的錯誤,我們可以用"2>/dev/null"丟掉
4)正確信息和錯誤信息需要分開輸出

Copyright © Linux教程網 All Rights Reserved