Linux输入输出重定向详解

shell中可能经常能看到:>/dev/null 2>&1

命令的结果可以通过%>的形式来定义输出

分解这个组合:“>/dev/null 2>&1” 为五部分。

1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt

2:/dev/null 代表空设备文件 (可以理解为黑洞)

3:2> 表示stderr标准错误

4:& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

5:1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于 "1>/dev/null"

因此,>/dev/null 2>&1也可以写成“1> /dev/null 2> &1”

示例:

1.后台启动
nohup hdfs balancer -threshold 10 > ~/balancer-stdout.log 2> ~/balancer-stderr.log &
2.调整带宽
hdfs dfsadmin -setBalancerBandwidth 104857600 #默认设置:10485761 M/S)

拓展:

& 放在启动参数后面表示设置此进程为后台进程,默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,

对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的。

参考:

Linux输入输出重定向

1>/dev/null 2>&1 & 意思解析

原文地址:https://www.cnblogs.com/-courage/p/15411311.html