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

linux ">/dev/null 2>&1 &"的更多相关文章

  1. linux /dev/null 中有数据

    前段时间有个同事问我说,他 cat /dev/null有数据.这个颠覆大家认知的问题最终却是个小问题. 我们来看/dev/null的操作函数: static const struct memdev { ...

  2. Linux /dev/null详解

    常用的命令展示 /dev/null 和 /dev/zero的区别        1./dev/null:表示 的是一个黑洞,通常用于丢弃不需要的数据输出, 或者用于输入流的空文件            ...

  3. linux输出 /dev/null

    在学习Linux的过程中,常会看到一些终端命令或者程序中有">/dev/null 2>&1 "出现,由于已经遇到了好几次了,为了理解清楚,不妨花点时间百度或者g ...

  4. Linux命令:nohup、df、du与/dev/null

    早上开始工作时发现服务器挂掉了,重启TongWeb时有报错: 上面的红框圈错了,第一个红框的下一行: java.io.IOException: No Space left on device 我们用d ...

  5. 【Linux】/dev/null 2>&1 详解

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

  6. Linux基础教程之/dev/null和/dev/zero的区别及其用法

    在Linux操作系统中/dev/null和/dev/zero是两个相似却又很特殊的文件,特别是在shell脚本开发和系统运维过程中会经常用这两个文件,因此作为Linux系统工程师,必须了解这两个文件的 ...

  7. Linux Shell脚本入门--(linux空设备文件和重定向)>/dev/null 2>&1

    linux空设备文件和重定向 输出/输入重导向 >      >>   <   <<   :>   &>   2&>   2< ...

  8. Linux下的 >, >>, <, ps, |, grep, /dev/null

    1 要将命令行运行的结果保存到文件中,truncate模式下使用 >,append模式下使用 >> ls > ~/test.txt 2 要将文件中的内容作为标准输入,应使用 & ...

  9. Linux Shell下”>/dev/null 2>&1“相关知识说明

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

随机推荐

  1. VDMA时序分析

    VDMA时序分析

  2. redis集群设置密码

    redis集群密码设置 1.密码设置(推荐)方式一:修改所有Redis集群中的redis.conf文件加入:  masterauth passwd123 requirepass passwd123 说 ...

  3. cookie.js插件的案例

    cookie.js插件的案例: https://github.com/jaywcjlove/cookie.js/blob/master/README.md    文档  api   在这里即可查看用法 ...

  4. Ubuntu16.04下修改MySQL数据的默认存储位置

    由于在Linux下MySQL默认是存储在/var/lib/mysql目录下,mysql的数据会非常大,由于/var所划分的空间不够大,所以我们需要将mysql数据存放路径修改一下,放到大分区里面,以便 ...

  5. 基于Dubbo框架构建分布式服务(集群容错&负载均衡)

    Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...

  6. 如何正确实现 Java 中的 HashCode

    相等 和 Hash Code 从一般角度来看,Equality 是不错的,但是 hash code 更则具技巧性.如果我们在 hash code上多下点功夫,我们就能了解到 hash code 就是用 ...

  7. 一份快速完整的Tensorflow模型保存和恢复教程(译)(转载)

    该文章转自https://blog.csdn.net/sinat_34474705/article/details/78995196 我在进行图像识别使用ckpt文件预测的时候,这个文章给我提供了极大 ...

  8. 第三方jar上传到Maven私服(Nexus)

    mvn deploy:deploy-file -DgroupId=taobao-sdk -DartifactId=taobao-sdk-java -Dversion=1.0 -Dpackaging=j ...

  9. pandas 存取数据小笔记

    import pandas as pd 1.   读取和保存 csv文件 #读 df = pd.read_csv(read_file_path, header=0) # 其中read_file_pat ...

  10. Openface 入门

    Openface 简单入门 背景 Openface是一个开源的人脸识别框架,同类软件产品还有 seetaface ,DeepID等,当然,如果算上商业的产品,那就更多了. Openface人脸比对结果 ...