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
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!