言簡意賅解釋Linux中的標準輸入輸出

一、說明

標準輸入0 :從鍵盤獲得輸入
標準輸出1 :輸出到屏幕
錯誤輸出2 :輸出到屏幕

二、廢話少說,看例子

[root@localhost ~]# echo -e "\n" | telnet 127.0.0.1 80
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Connection closed by foreign host.

這個例子裏面,標準輸入1:(前三行)
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

這個例子裏面,錯誤輸出2:(最後一行)
Connection closed by foreign host.

三、把標準輸出導入到空洞“/dev/null”,把錯誤輸出輸出到屏幕,幾種方法:

方法一:
[root@localhost ~]# echo -e "\n" | telnet 127.0.0.1 80 > /dev/null
Connection closed by foreign host.
方法二:
[root@localhost ~]# echo -e "\n" | telnet 127.0.0.1 80 2>&1 >/dev/null
Connection closed by foreign host.

四、把錯誤輸出導入到空洞“/dev/null”,把標準輸出輸出到屏幕,幾種方法:

只有一種:
[root@localhost ~]# echo -e "\n" | telnet 127.0.0.1 80 2> /dev/null
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

五、把不管是標準輸出還是錯誤輸出都都導入到空洞“/dev/null”,幾種方法:

方法一:
[root@localhost ~]# echo -e "\n" | telnet 127.0.0.1 80 > /dev/null 2>&1
方法二:
[root@localhost ~]# echo -e "\n" | telnet 127.0.0.1 80 &> /dev/null

六、建議

幾種方法都用的話,會亂,大家一定要有自己的一套方式,本博主的方式如下:
只把標準輸出導入到/dev/null(即:屏幕上只顯示錯誤輸出):
> /dev/null

只把錯誤輸出導入到/dev/null(即:屏幕上只顯示標準輸出):
2> /dev/null

不管錯誤還是標準全導走(即:屏幕上不顯示任何輸出):
&> /dev/null

總結:“不想看到誰,就在“>”前面加上誰”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章