Linux重定向以及nohup不输出的方法

在Linux中,0、1和2分别代表标准输入(stdin)、标准输出(stdout)和标准错误输出(stderr)

Linux中,关于标准输入输出有一些特殊的指代:

0:表示标准输入(stdin),默认情况下,它与终端设备(键盘)连接,可以通过键盘输入数据。程序可以使用标准输入来读取用户的命令、数据或其他输入内容。

1:表示标准输出(stdout),默认情况下,它与终端设备(显示器)连接,程序可以通过标准输出将结果、消息或其他内容输出到终端上显示给用户。

2:标准错误信息输出(stderr),默认情况下,它也与终端设备连接,用于输出错误、警告和其他与程序执行相关的问题。

通常情况下,标准输出和标准错误输出会直接输出到屏幕,我们可以使用重定向符号重定向到其他文件和设备:

比如,重定向标准错误输出到log文件:

program 2>log

此时,程序的报错信息被log文件接收,而标准输出还是输出在屏幕上。

同样,我们可以把标准错误输出直接重定向到标准输出:

program 2>&1

如果我们不需要接收程序运行的所有信息时,我们可以选择把输出定向到Linux系统中的一个特殊文件中——“/dev/null”是一个特殊的文件,被称为“空设备”或“空设备文件”。这个文件会丢弃所有写入到它的数据,就好像一个黑洞一样。当你读取/dev/null时,它立即返回一个文件结束(EOF)标记。

当我们不想要任何输出信息的时候,我们可以把标准错误输出重定向到标准输出,再输出到/dev/null文件中:

program >/dev/null 2>&1

同样,在我们提交程序至后台运行的时候,我们会得到一个包含全部输出信息的nohup.out文件,这个文件会随着程序的运行而不断增大,为了不让他占用我们的内存空间,我们可以把输出定位到/dev/null文件中:

nohup program >/dev/null 2>&1 &

参考:

https://www.cnblogs.com/surplus/p/13391418.html
  • 发表于 2024-03-13 11:49
  • 阅读 ( 908 )
  • 分类:linux

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
每天学习一点点
每天学习一点点

53 篇文章

作家榜 »

  1. omicsgene 702 文章
  2. 安生水 351 文章
  3. Daitoue 167 文章
  4. 生物女学霸 120 文章
  5. xun 82 文章
  6. rzx 78 文章
  7. 红橙子 78 文章
  8. CORNERSTONE 72 文章