Linux下Null文件,Linux下 /dev/null 21 相关知识说明

news/2024/7/5 15:14:01

一些终端命令或者程序中有">/dev/null 2>&1 "出现

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命令或者程序等运行中有内容输出。

I/O重定向

重定向

的作用是把一个命令的输出结果发送到另一个地方。

例如,使用

cat

命令查看一个文件,文件内容会被打印到屏幕 :

$ cat foo.txtfoo

bar

baz

此时,屏幕就是命令的标准输出( standard output 【stdout】)位置。

我们可以把文件内容发送到别的地方,例如,重定向到

output.txt

文件中 :

$ cat foo.txt > output.txt$ cat output.txtfoo

bar

baz

其中第一个

cat

使用

>把

stdout

的位置改为了另一个文件。

再看一个例子,查看一个不存在的文件:

$ cat nop.txt > output.txtcat: nop.txt: No such file or directory

这里的错误提示信息为什么显示到了屏幕,而不是发送到

output.txt

呢?

这就涉及到了另一个位置:标准错误输出

standard error 【stderr】。

$ cat nop.txt > output.txt

这个命令是把

stdout

定位到了文件,而没有定义

stderr

的位置,所以错误信息显示到了默认的位置:屏幕。

文件描述符

Linux 中一切皆文件,每个文件都有一个文件描述符,值是个正整数。

所以,标准输出

stdout与 标准错误输出

stderr也有自己的文件描述符:

stdout 为 1

stderr 为 2

综合

$ cat foo.txt > output.txt

实际上就是这样的:

$ cat foo.txt 1> output.txt

就是把

stdout

指向了

output.txt,

>

1>

的简写。

所以重定向错误信息的输出就应该是这样的:

$ cat nop.txt 2> error.txt$ cat error.txtcat: nop.txt: No such file or directory

连个命令连起来就是:

$ cat foo.txt > output.txt 2> error.txt

同时重定向了标准输出

stdout与标准错误输出

stderr。

回顾开头的那个命令:

ls foo > /dev/null 2>&1

现在基本上已经可以理解了:

stdout 重定向到

/dev/null

stderr 重定向到

&1

/dev/null

是空设备的意思,重定向到空设备,也就是输出信息不要了。

&1 表示:文件描述符1 的值,也就是标准输出的值,那么

2>&1 就是 标准错误输出 与 标准输出 一样,也是重定向到空设备。

所以这个命令的意思是:正确信息和错误信息都不显示了。


http://www.niftyadmin.cn/n/3660224.html

相关文章

Linux进程的uid和euid,关于 Linux 进程的 UID、EUID、GID 和 EGID

UID、EUID、GID 和 EGID 简介UID 真实用户IDEUID 有效用户IDGID 真实组IDEGID 有效组ID用户信息对于服务器程序的安全性来说是很重要的,比如大部分服务器就必须以 root 身份启动,但不能以 root 身份运行。一个进程拥有两个用户ID:UID 和 EUID…

linux把2块盘挂到一个分区,敬告大家不要把Linux 装在第二个硬盘的主分区上

敬告大家不要把Linux 装在第二个硬盘的主分区上.如果再同时装GRUB,它会把他的信息插到主硬盘的比较前面的磁道.....然后发生可怕的事情.. 装好后...GRUB不能引导Linux和主硬盘上的系统,一开机就出现全屏的GRUB...... 糟糕的是你的XP系统从光盘安装都安装不起来.把主硬盘的C盘格…

linux显示器配置文件是啥,Ubuntu 无法应用原保存的显示器配置

打开Ubuntu之后的开启页面出现:所选模式均不匹配可能的模式:为 CRTC 63 尝试模式CRTC 63:尝试 800x60060Hz 模式输出在 1366x76860Hz (通过 0)CRTC 63:尝试 2560x160060Hz 模式输出在 1366x76860Hz (通过 0)CRTC 63:尝…

linux文件多个用户,linux – 如何让多个用户访问chmod()相同的文件?

在添加用户时使用Linux ACL,您不会将它们添加为文件的所有者.只是打开/修改和写入该文件的权限.当调用chown或chmod时,有效用户ID将是例如. jacob和那个将匹配所有者的价值.如果不匹配,则命令将失败.从男人2 chmod.The effective UID of the calling process must match the ow…

[CSDN 视频--新闻分析第三期]:微软ohloh、Lava-Lava、破解Skype

本次视频链接: http://live.csdn.net/Issue23/LivePlay.aspx 本次新闻分析主要内容: 前微软员工合推网站 为开源开发人员指点迷津 害怕自己像缺乏经验的小白兔,闯入开放源代码的丛林吗?一群前微软员工合力推出新网站Ohloh,提供一个开源软件目录,协助开发人员评估各种开源…

tab自动补全 linux,Linux环境下python的Tab自动补全设置

步骤1:在server/scripts/py路径下编写tab.py脚本vi tab.py步骤2:将下面代码添加至tab.py脚本中,保存退出#!/usr/bin/env python# python startup fileimport sysimport readlineimport rlcompleterimport atexitimport os# tab completionrea…

linux通过ip和掩码计算网段,linux如何实现IP地址汇总,以掩码方式显示

其实这个标题名字不规范,应该叫做how to deaggregate ip ranges in linux但是deaggregate ip ranges这个语句实在是不好翻译啊。我先说下需求把,我们从纯真数据库中获得了这样的IP地址信息:58.63.253.0 58.63.253.255 广东省广州市 世纪…

linux命令 waf,命令执行WAF绕过技巧总结

原标题:命令执行WAF绕过技巧总结*本文作者:zusheng,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。前言如今市面上的WAF几乎都已经具备了针对RCE攻击的防御能力,这些WAF并不是想象中毫无破绽,当Web服务器…