1,可以将/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.
用处:
禁止标准输出.    1 cat $filename >/dev/null   # 文件内容丢失,而不会输出到标准输出.
禁止标准错误.    2>/dev/null 这样错误信息[标准错误]就被丢到太平洋去了.

2, 1>/dev/null 2>&1的含义

> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

那么本文标题的语句:
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

3,/dev/zero文件代表一个永远输出 0的设备文件,使用它作输入可以得到全为空的文件。因此可用来创建新文件和以覆盖的方式清除旧文件。

下面使用dd命令将从zero设备中创建一个10K大小(bs决定每次读写1024字节,count定义读写次数为10次),但内容全为0的文件。
dd if=/dev/zero of=file count=10 bs=1024

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>/dev/null :首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
2>&1 :接着,标准错误输出重定向 到 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

最常用的方式有:
    
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 这样的写法。

Shell: /dev/null 21详解相关推荐

  1. 【Linux】/dev/null 21 详解

     今天一个朋友突然在自己的维护的Linux中, /var/spool/cron/root 中看到了以下的内容: 30 19 * * * /usr/bin/**dcon.sh > /dev/nul ...

  2. /dev/null 21 详解

    原文出处:http://blog.csdn.net/kaiwii/article/details/7308729 把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所 ...

  3. linux更改文件属性宁静,shell /dev/null 21 ( linux空设备文件和重定向)

    /dev/null代表 空文件设备 1表示系统标准输出,系统默认值是1, > /dev/null等同于1> /dev/null 对于 >dev/null 2>&11&g ...

  4. linux下详解shell中/dev/null 21

    前言 相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句.以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段命令不小心写成了2>& ...

  5. nohup /dev/null 21 含义详解

    nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令.该命令可以在你退出帐户/关闭终端之后继续运行相应的进程.nohup就是不挂起的意思( n o ...

  6. Linux Shell 1/dev/null 21 含义

    shell中可能经常能看到:echo log > /dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null :代表空设备文件 :代表重定向到哪 ...

  7. 关于/dev/null 和 /dev/zero文件详解以及误删/dev/null和/dev/zero的解决方法和利用/dev/zero进行磁盘IO测试方法

    1.概论 -- 来自维基的解释 /dev/null  : 在类Unix系统中,/dev/null,或称空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作成功),读取它则会立即得到一 ...

  8. shell之“/dev/null 21”

    shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 分解这个组合:">/dev/null 2>& ...

  9. Linux Shell下”/dev/null 21“相关知识说明

    0:表示键盘输入(stdin) 1:表示标准输出(stdout),系统默认是1  2:表示错误输出(stderr) command >/dev/null 2>&1 &  = ...

最新文章

  1. 在linux中输入locate出现locate: can not stat ()的错误
  2. 并发编程-03线程安全性之原子性(Atomic包)及原理分析
  3. 【数据结构-图】2.多图详解最小生成树(多图详解+实现代码)
  4. Matlab emd工具箱、时频分析工具箱下载以及安装方法
  5. Yii 2.0: yii2-highcharts-widget创建饼状图
  6. stm32移植paho_如何在STM32上移植Linux?超详细的实操经验分享
  7. 切片与MapTask并行度决定机制
  8. 邱锡鹏DL经典教材-《神经网络与深度学习》
  9. happen-before原则解读
  10. 企业微信机器人脚本python_Python实现企业微信机器人每天定时发消息实例
  11. iOS 微信8.0.11更新,新功能,新变化
  12. 2020阿里云服务器免费领取与互联教程
  13. 2022年软考可以参加哪些科目考试?熟知
  14. 在火狐上安装chrome 的crx扩展
  15. SSL证书概述与配置
  16. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170315
  17. 使用esp8266板子进行钓鱼攻击
  18. PS2手柄代码移植-合泰平台
  19. 2022-09-19
  20. [飞桨机器学习]决策树算法

热门文章

  1. 信息学奥赛一本通C++语言——1027:输出浮点数
  2. php 面向对象基础,PHP 面向对象基础
  3. 怎么安装mysql8.0.20_Mysql 8.0.20安装教程
  4. android 调出键盘表情_如何在Android的G板键盘中搜索表情符号和GIF | MOS86
  5. python多目标优化_多目标优化算法(四)NSGA3(NSGAIII)论文复现以及matlab和python的代码...
  6. 16进制 hbase phoenix_HBase 和 Phoenix 的使用
  7. python面向对象难学_python-面向对象进阶
  8. tensorflow saver_机器学习入门(6):Tensorflow项目Mnist手写数字识别-分析详解
  9. laravel $request 多维数组取值_3分钟短文:Laravel的“南天门”,过滤掉七七八八的数据...
  10. YOLOv1-YOLOv4