`

/dev/null 2>&1 详解

 
阅读更多
from :http://viplin.blog.51cto.com/241472/99568


今天一个朋友突然在自己的维护的Linux中, /var/spool/cron/root 中看到了以下的内容:
30 19 * * * /usr/bin/**dcon.sh > /dev/null 2>&1
59 23 * * 1-7 /home/s**-log/squid-log.renew > /dev/null 2>&1
50 1 * * 1-7 /usr/local/src/**log.sh > /dev/null 2>&1
20 2 * * 1-7 /home/sq**-log/**log > /dev/null 2>&1
30 2 * * 1-7 /home/sq**-log/**log.01
30 22 * * * /bin/**sync > /dev/null 2>&1
00 8 * * 1-7 /home/**-log/rmcore > /dev/null 2>&1
00 16 * * 1-7 /home/**-log/rmcore > /dev/null 2>&1
他问我为什么要用 /dev/null 2>&1 这样的写法.这条命令的意思是将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃.下面我就为大家来说一下, 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 这样的写法.
分享到:
评论

相关推荐

    详解nohup /dev/null 2>&1 含义的使用

    在 `nohup /mnt/Nand3/H2000G >/dev/null 2>&1 &` 这个例子中,`>/dev/null` 表示将标准输出(文件描述符 1)重定向到 `/dev/null`,这是一个特殊的设备文件,任何写入它的数据都会被丢弃,相当于“黑洞”。`2>&1` ...

    详解nohup /dev/null 2&1 含义的使用

    nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对 于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述

    /dev/null和/dev/zero文件使用详解和误删修复方法以及服务器磁盘IO测试详解

    关于linux系统文件/dev/null和/dev/zero文件的详解和/dev/null、/dev/zero文件误删后的修复方法以及服务器磁盘IO测速详解,和一些常见/dev/null /dev/zero文件的用途用法示例说明

    详解shell中>/dev/null 2>&1到底是什么

    在Shell脚本中,我们经常会遇到`>/dev/null 2>&1`这样的重定向操作,它是用来处理命令的输出和错误的。接下来,我们将详细解释这个命令的含义和作用。 首先,`>/dev/null`是将标准输出(标准输出的文件描述符为1)...

    详解shell中/dev/null 2&1到底是什么

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

    nohup使用方法LINUX|CENTOS

    nohup ganache-cli > /dev/null 2>&1 & 这条命令将 `ganache-cli` 的输出重定向到 `/dev/null`,这样就不会显示输出结果。 nohup 命令的参数解释 * `&`:表示让命令在后台执行。 * `>`:表示输出重定向。 * `2>&1...

    HACMP安装手册.pdf

    /usr/sbin/no -o extendednetstats=0 >> /dev/null 2>&1 /usr/sbin/no -o ipsendredirects=0 /usr/sbin/no -o ipforwarding=0 fi ``` **2. 串口配置:** - **添加串口设备:** - 使用`#smittytty`命令添加...

    大数据框架的部署

    nohup bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 & ``` **4. Kafka监控工具部署** - 创建一个目录`kafkaoffsetmonitor`,用于存放监控工具`KafkaOffsetMonitor-assembly-0.2.0.jar...

    Linux 的dev目录详解和Linux系统各个目录的作用.pdf

    Linux 的dev目录详解和Linux系统各个目录的作用 Linux 的/dev 目录详解 在 Linux 系统中,/dev 目录是一個非常重要的目录,包含了所有外部设备的访问端口。/dev 目录对所有用户都非常重要,因为它包含了所有 Linux...

    详解Linux系统中虚拟设备文件的各种实用用法

    在这里,先将标准输出重定向到/dev/null,然后2>&1将标准错误重定向到标准输出,此时标准输出已指向/dev/null,因此标准错误也被清除。 2. `grep -r power /sys/ 2>&1 >/dev/null` 如果顺序交换,标准错误首先被...

    修改Mysql的root密码方法

    同时,命令后面的部分`>/dev/null 2>&1 &` 是为了将输出重定向到`/dev/null`,避免日志文件过大,同时后台运行该命令。 3. **连接MySQL并修改密码** 在MySQL以跳过权限表模式运行之后,我们可以直接使用root用户...

    dd命令详解和使用方法

    12. 测试硬盘的读写速度:`dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file` 和 `dd if=/root/1Gb.file bs=64k | dd of=/dev/null` dd 命令是一个功能强大且灵活的数据复制命令,能够满足各种数据复制和...

    Linux下生成core dump

    ulimit -S -c 0 > /dev/null 2>&1 ``` 这行命令表示不允许生成core dump文件。如果希望不限制core dump文件的大小,可以将这行命令修改为: ```sh ulimit -S -c unlimited > /dev/null 2>&1 ``` 或者直接移除...

    linux服务器配置定时任务教程

    * * * * * /home/wwwroot/wechatmini/cli.sh > /dev/null 2>&1 ``` ##### 3.2 直接配置定时任务 - 如果不想创建额外的脚本文件,可以直接在定时任务中指定要执行的命令。例如: ```bash * * * * * ...

    Linux 的dev目录详解和Linux系统各个目录的作用.docx

    Linux 的dev目录详解和Linux系统各个目录的作用 Linux 的dev目录是 Linux 系统中非常重要的一个目录,它包含了所有的外部设备,例如磁盘驱动、USB 驱动、打印机等等。dev目录的主要作用是提供一个访问这些外部设备...

    Linux后台运行java的jar包.docx

    其中,`> /dev/null`表示将标准输出重定向到“空设备”中,而`2>&1`则是将标准错误输出重定向到与标准输出相同的位置。 #### 方式四:高级输出重定向 **命令示例**: ``` nohup java -jar shareniu.jar >/dev/null...

    crontab用法详解

    对于 `crontab` 中的输出配置,`>/dev/null 2>&1` 是一种常见做法,它将标准输出和标准错误都重定向到空设备文件,从而避免在终端显示任何输出。 总之,`crontab` 是一个强大的工具,可以帮助你自动化执行周期性的...

    crontab 定时执行文件详解

    12 3 * * * root tar czf /usr/local/backups/daily/etc.tar.gz /etc >> /dev/null 2>&1 ``` 这条语句表示在每天凌晨3点12分(03:12),使用`tar`命令将`/etc`目录压缩并备份到`/usr/local/backups/daily/etc....

    weblogic集群

    1. **启动Node Manager**:使用`nohup sh ./startNodeManager.sh > /dev/null`命令启动Node Manager服务。这将生成两个配置文件:`nodemanager.domains` 和 `nodemanager.properties`。 2. **配置文件调整**:进入`/...

Global site tag (gtag.js) - Google Analytics