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 #默认设置:1048576(1 M/S)
拓展:
& 放在启动参数后面表示设置此进程为后台进程,默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,
对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的。
参考:
Linux输入输出重定向
1>/dev/null 2>&1 & 意思解析
posted on 2021-10-15 15:42 RICH-ATONE 阅读(552) 评论(0) 编辑 收藏 举报