Linux Shell下”/dev/null 21“相关知识说明
0:表示键盘输入(stdin)
1:表示标准输出(stdout),系统默认是1
2:表示错误输出(stderr)
command >/dev/null 2>&1 & == command 1>/dev/null 2>&1 &
1)command:表示shell命令或者为一个可执行程序
2)>:表示重定向到哪里
3)/dev/null:表示Linux的空设备文件
4)2:表示标准错误输出
5)&1:&表示等同于的意思,2>&1,表示2的输出重定向等于于1
6)&:表示后台执行,即这条指令执行在后台运行
1>/dev/null:表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。
2>&1:表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
这条命令的意思就是在后台执行这个程序,并将错误输出2重定向到标准输出1,然后将标准输出1全部放到/dev/null文件,也就是清空.
所以可以看出" >/dev/null 2>&1 "常用来避免shell命令或者程序等运行中有内容输出。
command > file 2>file 与 command > file 2>&1 有什么区别呢?
command > file 2>file 的意思是将命令所产生的标准输出信息,和错误的输出信息送到file 中.command > file 2>file 这样的写法,stdout和stderr都直接送到file中, file会被打开两次,这样stdout和stderr会互相覆盖,这样写相当使用了FD1和FD2两个同时去抢占file 的管道.
而command >file 2>&1 这条命令就将stdout直接送向file, stderr 继承了FD1管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdout和stderr的内容.
从IO效率上,前一条命令的效率要比后面一条的命令效率要低,所以在编写shell脚本的时候,较多的时候我们会用command > file 2>&1 这样的写法.
2>&1 >/dev/null
命令行的重定向什么的, 是在执行命令之前就准备好了的. 解释顺序从左至右依次进行, 2&>1 ,而1是屏幕, 所以标准错误重定向到屏幕, 再而 1>/dev/null , 即标准输出重定向到 /dev/null, 上述2>&1 >/dev/null 并不是什么同一时刻要么产生标准输出要么产生标准错误. 而是两个不同的东西.
以以下变量的方式做个解释,就很明显了,这两种方式是不同的,前者就像:
a=1
b=a
而后者就像:
b=a
a=1
&>/dev/null
// 这个就是,不管你是啥玩意儿文件描述符,通通重定向到/dev/null
http://blog.csdn.net/reyleon/article/details/11595985
http://blog.csdn.net/web256/article/details/8244286
http://blog.csdn.net/sunrier/article/details/7695839
转载于:https://www.cnblogs.com/gotodsp/p/6368277.html
Linux Shell下”/dev/null 21“相关知识说明相关推荐
- linux定时任务定向到空,Linux 定时任务下 /dev/null 21 相关知识说明
今天再使用Laravel任务调度的时候,需要在linux的cron添加如下代码:php /path/to/artisan schedule:run 1>> /dev/null 2>& ...
- Linux下/dev/null 21 相关知识说明
在学习Linux的过程中,常会看到一些终端命令或者程序中有 ">/dev/null 2>&1" 出现,由于已经遇到了好几次了,为了理解清楚,不妨花点时间百度或者 ...
- Linux下 /dev/null 21 相关知识说明
在学习Linux的过程中,常会看到一些终端命令或者程序中有">/dev/null 2>&1 "出现,由于已经遇到了好几次了,为了理解清楚,不妨花点时间百度或者g ...
- Linux Shell 1/dev/null 21 含义
shell中可能经常能看到:echo log > /dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null :代表空设备文件 :代表重定向到哪 ...
- linux下详解shell中/dev/null 21
前言 相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句.以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段命令不小心写成了2>& ...
- shell之“/dev/null 21”
shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 分解这个组合:">/dev/null 2>& ...
- 再谈shell之“/dev/null 21”
今天在自己的一个技术群中又被问道了这么一个问题,于是又通俗的解释了一下,做个记录,大家看看解释是否清楚! shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以 ...
- aix 超过一天的文件_Aix 6.1下 /dev/null 21 文件过大导致根目录爆满
原因: 这是Aix6107系统下cas_agent软件的一个bug,原因是脚本写错了 排查过程: 1. 查看是哪个文件夹或哪个文件过大 du -axg /|sort -rn|head ls -ltr ...
- linux shell 2 /dev/null的解释
那个2>/dev/null是如果你的命令出错的话,错误报告直接就删除了.不会显示在屏幕上,或者是以邮件的形式发给你了. [test @test test]# ls -al > list. ...
最新文章
- 深度学习项目代码阅读建议
- 浏览Github必备的5款神器级别的Chrome插件
- QQ vs 360的战争之我见
- dubbo+zookeeper与 eureka的区别
- SAP License:决胜职场先决条件 白领们必须要懂得的人际经
- 2008总有一种恐惧让你泪流满面
- SpringMVC form中commandName报错问题
- 主成分分析在生命科学研究中的应用
- 华丽成长为IT高富帅、IT白富美(五)
- python调用pandas保存excel
- 多层交换机静态路由实验
- React中文文档 8. 列表 Key
- 如何学习一种开发框架
- 某app登录协议逆向分析
- html 文字右侧属性,HTML标签及属性大全
- android自定义刻度线,Android自定义控件之刻度尺控件
- linux下如何拷贝软链接
- 智慧教室系统--重点设备监控系统
- 使用john 1.9 破解centos7密码
- (转)国企,私企与外企利弊通观--关键时刻给应届毕业生及时点拨