首页 > 系统相关 >Linux 中如何将输出和错误重定向到 /dev/null

Linux 中如何将输出和错误重定向到 /dev/null

时间:2022-11-26 21:57:58浏览次数:72  
标签:输出 重定向 错误 dev command Linux null

Linux 中如何将输出和错误重定向到 /dev/null

原创 TIAP TIAP 2022-11-17 08:00 发表于山东 收录于合集#Linux139个 TIAP 技术分享,经验交流,职业生涯探讨。 101篇原创内容 公众号

假如有这样一个场景:我们运行了一个 Linux 命令,它有很多的输出信息,但是我们并不需要这些输出信息。

或者,我们在脚本中使用了某些 Linux 命令,并且不希望它在终端屏幕上显示任何输出或错误。

对于这种情况,我们可以利用输出和错误重定向,将它们发送到 /dev/null。

将标准输出发送到 /dev/null 的命令如下:
command 1> /dev/null

将错误发送到 /dev/null 的命令如下:

command 2> /dev/null

将输出和错误发送到 /dev/null:

command 2>&1 /dev/null
/dev/null 可以被认为是 Linux 文件系统中的一个黑洞,无论你往里面仍什么,都不会看到有任何回应。

下面我们来详细了解一下。

将输出重定向到 /dev/null

我们在终端中输入一个命令,可以被认为就是我们的输入(假设我们执行了 sudo apt update)。

这样,我们给了我们的系统输入,然后系统会显示正在更新的存储库以及现在可以更新的包等过程信息,如下图所示:

图片

也就是说,系统给出的输出信息,显示的是它对命令的操作。下面是每个标准数据流的编号:
  • 标准输入(stdin)指定为 0;

  • 标准输出(stdout)为 1;

  • 标准错误(stderr)为 2。

所以,将标准输出重定向到 /dev/null 的命令为:

command 1> /dev/null

比如,我们使用 find 命令,该命令会显示一部分错误的输出信息,然后我将标准输出重定向到 /dev/null,但是对错误信息不做任何处理,仍让其正常显示,如下图所示:

图片

从上图可以看到,当我没有将输出重定向时,其显示的输出信息为1807行。然后当重定向输出时,它只显示错误信息。

将错误重定向到 /dev/null

我们前文提到了,错误信息的数据流编号为 2,所以只需将上面命令的数据流编号改为 2,就可以将错误信息重定向到 /dev/null。

command 2> /dev/null
上述命令中的大于号 > 用于重定向数据流,数字 2 表示在标准错误时将其重定向。

比如,我们在 Ubuntu 上运行命令 sudo dnf updte,当然会·报错。然后在第二个窗口中,将错误进行重定向,如下图所示:

图片

将输出和错误均重定向到 /dev/null

下面我们来看一下如何将输出和错误都重定向到 /dev/null。该任务的基本语法如下:
command 1> /dev/null 2> /dev/null

或者也可以使用精简的版本:

command 2>&1 /dev/null

作为演示,我们使用 find 命令在 etc 目录中查找文件。在这个路径下访问某些子目录需要有 sudo 权限才可以,如果没有使用 sudo,就会抛出一个错误,如下图所示:

图片

以上就是本次分享全部内容。如果想了解更多关于重定向数据流的信息,可以阅读我们之前的文章:Linux中的输入、输出和错误重定向

 

标签:输出,重定向,错误,dev,command,Linux,null
From: https://www.cnblogs.com/cherishthepresent/p/16928402.html

相关文章

  • linux 7 找不到ifconfig命令
    最近最小化安装了centos,但是使用ifconfig命令时候出现”bashifconfigcommandnotfound” 然后在网上找有人说因为没有将/sbin目录放到环境变量中.导致不能直接使用......
  • Linux中的&、&&、|、||、$?、$#
    1.命令:|表示管道,上一条命令的输出,作为下一条命令参数,如:ls|grep“aa”,在ls的输出中查找aa字符串。2.命令:||表示上一条命令执行失败后,才执行下一条命令,如catnofile|......
  • Linux安全2 --- 用户登录失败处理
    一、基础环境CentOS7.9二、操作1.目标为提高服务器安全性,当有用户多次登录失败时,我们需要对该类账户的登录行为进行限制,必要时需要禁用该类账户。2.编辑/etc/pam.d......
  • Linux安全1 --- 禁用root登录
    一、基础环境CentOS7.9二、操作1.进入/etc/ssh/sshd_config文件:vi/etc/ssh/sshd_config2.定位到下面一行:#PermitRootLoginyes在其下面增加一行:PermitRo......
  • 启动项目报错:null, message from server: “Host ‘XXX‘ is not allow(数据库只能loca
    step1:之前一直都是连的测试环境由docker镜像生成的mysql,公司老是断电导致mysql数据崩坏,于是在本地整了个8.0.18版本的mysql,启动项目报错:null,messagefromserver:"Host......
  • 实验三·bdev原理和源码分析
    任务配置bdev运行环境运行hello_bdev程序并分析源码通过bdev接口写入数据并读取Bdev是在物理设备上的进一步抽象,物理层有NVM、NVMeOF、CEPHRBD等,通过bdev向......
  • Multipass,本地轻量级Linux体验!
    Multipass介绍......
  • Linux c 开发-32 in getline死循环问题
    假如有一个件,文件内容123123123123<0x00><0x00><0x00><0x00><0x00><0x00><0x00>那么while(!in.eof()){in.getline(rbuf,3);}到最后一行会卡着,可以写成in.get......
  • Linux面试题2:网络IO模型 & IO多路复用
    网络IO先确定一下范围,我们讨论的都是网络IO,现阶段计算机早已经从CPU密集型转换成网络IO密集型,所以网络io的类型对于服务响应而言更重要。五种IO模型依据Unix的IO分类,网......
  • linux重置core文件生成目录
    查看/proc/sys/kernel/core_pattern文件或kernel.core_pattern里面的内容默认是core,也就是core文件的生成路径和工作路径一致,如果内容为其他值,那么对应的core文件就会生成......