一、什么是 Linux 系统黑洞?
/dev/null 代表 Linux 的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。
二、Linux 的输入输出
Linux 定义了一个标准输入和两个输出:
- 标准输入0:从键盘获得输入 /proc/self/fd/0
- 标准输出1:输出到屏幕(即控制台) /proc/self/fd/1
- 错误输出2:输出到屏幕(即控制台) /proc/self/fd/2
三、"黑洞"的使用
有时候生成的日志文件没有利用价值,就可以全部丢到"黑洞"里
1.最直白、最简单、最易懂示例1:
java -classpath log-collector-1.0-SNAPSHOT.jar com.atguigu.appclient.AppMain 1>/dev/null 2>/dev/null
这样,标准输出1 和错误输出2 就都丢到"黑洞"里了。
2.进化版示例2:java -classpath log-collector-1.0-SNAPSHOT.jar com.atguigu.appclient.AppMain >/dev/null 2>&1
这里标准输出1 省略了 "1" ,把错误输出2丢到了1里,顺序就是 2 — 1 — 黑洞
3.企业抽象版示例3:java -classpath log-collector-1.0-SNAPSHOT.jar com.atguigu.appclient.AppMain >/dev/null 2>&1 &
这里最后加了个 "&" ,表示在后台执行