言简意赅解释Linux中的标准输入输出

服务器

浏览数:22

2019-10-9

一、说明

标准输入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

总结:“不想看到谁,就在“>”前面加上谁”

作者:Mr大表哥