转载请注明出处:  

  在 Linux 中,>/dev/null 和 2>&1 是两个常用的重定向操作,它们用于控制命令的输出和错误信息。而且这两个参数经常 与 nohup 命令一起使用。

nohup命令

  nohup 是一个用于在后台运行命令的 Unix 命令。它的主要作用是运行指定的命令,即使用户退出登录或终端关闭,该命令也能够继续运行。通过使用 nohup 命令,可以确保程序在后台持续运行,而不会受到终端会话的影响。

  当你在终端中运行一个进程并希望在终端关闭后该进程仍然继续运行时,就可以使用 nohup 命令。例如:

nohup sh monitor.sh > nohup_monitor.log /dev/null 2>&1 &

  上面命令的语法解析

  1. nohup:表示要以 "no hang up" 的方式运行命令,即使终端关闭也不会中断该命令的执行。
  2. sh sr_monitor.sh:表示要执行名为 sr_monitor.sh 的 Shell 脚本。
  3. >:表示重定向标准输出。
  4. nohup_monitor.log:表示将标准输出重定向到一个名为 nohup_monitor.log 的文件中。
  5. /dev/null:表示将标准输入重定向到空设备,即忽略所有输入。
  6. 2>&1:表示将标准错误输出重定向到与标准输出相同的位置,即也重定向到 nohup_monitor.log 文件。
  7. &:表示在后台运行命令。

  这个命令的作用:

  • 以 nohup 方式在后台运行 sr_monitor.sh 脚本;
  • 将脚本的标准输出和标准错误输出都重定向到 nohup_monitor.log 文件;
  • 忽略任何标准输入。

/dev/null 解析

  /dev/null 是 Linux 系统中的一个特殊文件,它是一个无处不在的数据黑洞。任何写入 /dev/null 的数据都会消失,不会有任何数据被保存下来。因此,command >/dev/null 会将 command 的标准输出重定向到 /dev/null,也就是丢弃标准输出。例如:

echo "Hello, World!" >/dev/null

  在这个命令中,echo "Hello, World!" 的输出 "Hello, World!" 会被重定向到 /dev/null,因此你不会在终端看到这个输出。

2>&1 解析

  2>&1 是一个重定向操作,它将标准错误(文件描述符 2)重定向到标准输出(文件描述符 1)。因此,command 2>&1 会将 command 的标准错误和标准输出合并,也就是将标准错误输出到标准输出。例如:

ls /path/to/nonexistent 2>&1

  在这个命令中,ls /path/to/nonexistent 的错误输出会被重定向到标准输出,因此你会在终端看到这个错误输出。

  将这两个重定向操作结合使用,command >/dev/null 2>&1,可以将 command 的标准输出和标准错误都丢弃。例如:

ls /path/to/nonexistent >/dev/null 2>&1

  在这个命令中,ls /path/to/nonexistent 的输出和错误都会被重定向到 /dev/null,因此你不会在终端看到任何输出。

  需要注意的是,>/dev/null 2>&1 的顺序是不能写反的。如果你写成 2>&1 >/dev/null,那么只有标准输出会被丢弃,标准错误还会被输出到终端。

nohup 与 >/dev/null 与 2>&1 作用与区别的更多相关文章

  1. nohup及/dev/null使用

    1.nohup    ----后台执行,执行记录默认输出到当前目录下的nohup.out文件         nohup find /etc -name passwd 2./dev/null介绍 把/ ...

  2. >/dev/null 2>&1的作用

    1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"  2 表示stderr标准错误  &am ...

  3. :>/dev/null 2>&1 的作用

    shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null 代表空设备文件 > 代表重定向到哪里,例如:ec ...

  4. rpm -qa|grep nfs >/dev/null 2>&1作用

    在使用一些shell命令是,经常会用到rpm -qa|grep nfs >/dev/null 2>&1之类的命令,该命令干嘛用的呢? 其实这个命令就是将rpm -qa|grep n ...

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

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

  6. shell中>/dev/null 2>&1

    本文转自http://www.kissyu.org/ 背景 我们经常能在shell脚本中发现>/dev/null 2>&1这样的语句.以前的我并没有去深入地理解这段命令的作用,照搬 ...

  7. linux下详解shell中>/dev/null 2>&1

    前言 相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句.以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段命令不小心写成了2>& ...

  8. [转帖]shell 中的>/dev/null 2>&1 是什么鬼?

    shell 中的>/dev/null 2>&1 是什么鬼? http://blog.jobbole.com/109355/ 背景 我们经常能在shell脚本中发现>/dev/ ...

  9. (转)详解shell中>/dev/null 2>&1到底是什么

    转 原文地址:https://blog.csdn.net/zouli415/article/details/80651526 前言 相信大家经常能在shell脚本中发现>/dev/null 2& ...

  10. linux中>/dev/null 2>&1和2>&1 > /dev/null

    转载:https://www.cnblogs.com/520playboy/p/6275022.html 背景 我们经常能在shell脚本中发现>/dev/null 2>&1这样的 ...

随机推荐

  1. 3 与HTTP相关的各种协议

    目录 1 TCP/IP 2 DNS 3 URI/URL 4 HTTPS 5 代理 1 TCP/IP TCP/IP是网络世界最常用协议,HTTP通常运行在TCP/IP提供的可靠传输基础上 IP 协议是& ...

  2. 16级C程序设计竞赛C题

    问题 C: 回文 时间限制: 1 Sec  内存限制: 128 MB提交: 74  解决: 36[提交][状态][讨论版] 题目描述 给定一个字符串,你可以对字符串做任意改动,你可以在任意地方增加一个 ...

  3. Pulsar3.0 升级指北

    Pulsar3.0 介绍 Pulsar3.0 是 Pulsar 社区推出的第一个 LTS 长期支持版本. 如图所示,LTS 版本会最长支持到 36 个月,而 Feature 版本最多只有六个月:类似于 ...

  4. 华企盾DSC苹果电脑右键菜单不显示问题

    1.检查认证的用户是否给了对应的权限(如:手动加密.手动解密.申请解密) 2.系统偏好设置--键盘--快捷键中开通的权限是否有勾选 3.系统服务中允许的菜单数超出了最大值

  5. 华企盾DSC手机app注册保存成功登录时一直转圈

    可能是花生壳等映射软件不稳定,重启一下花生壳等工具

  6. 算法1:Fibonacci数列

    斐波那契数列(Fibonacci) 一.背景介绍 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为 ...

  7. DBeaver连接国产数据库OceanBase,以及Python连接,解决ModuleNotFoundError: No module named '_jpype'

    DBeaver连接OceanBase 参考:https://www.modb.pro/db/365929 用户名的格式为: 数据库用户名@租户名#集群名 Python连接OceanBase 参考:ht ...

  8. 基于源码去理解Iterator迭代器的Fail-Fast与Fail-Safe机制

    原创/朱季谦 在Java编程当中,Iterator迭代器是一种用于遍历如List.Set.Map等集合的工具.这类集合部分存在线程安全的问题,例如ArrayList,若在多线程环境下,迭代遍历过程中存 ...

  9. 编译安装python 3.11

    先处理下opensll的版本,以免编python译环境异常:安装 openssl-1.1.1 yum remove openssl cd /opt wget https://www.openssl.o ...

  10. 【eBPF-03】进阶:BCC 框架中 BPF 映射的应用 v1.0

    eBPF 中实现内核态代码与用户态代码是可以实时通信的,这主要靠 BPF 映射 来实现. BPF 映射 是内核空间的一段内存,以 键值对 的方式存储.内核态程序可以直接访问 BPF 映射,用户态需要通 ...