文章目录
起因
博主对于Linux系统基本不是太熟悉,在启动ES执行./elasticsearch &
发现的这个问题,es启动完毕之后,打算启动kibana发现es的日志一直在打印,虽然后台启动了,但是影响我输入其他命令。于是就请教大佬、网上巴拉资料。然后才发现是命令少写,应该写成./elasticsearch & >/etc/null 2>&1
。其实也不能算少写,./elasticsearch &
这个命令就是后台启动,但是相应日志会输入到当前控制台,因为它指向标准输入stdout。最终输入这个./elasticsearch & >/etc/null 2>&1
命令之后,日志果然不会打印在控制台了。
资料搜索
名词解释
根据上面的关键词,查到的资料进行总结。
/etc/null
:这是只能写但是读不到任何信息一个比较奇怪的文件,可以把它当成一个垃圾焚烧炉,任何信息到了它着都会被销毁。
>
:这个指代的是重定向或指向的意思,前者指向后者。
&
:因为>
指向的一般会默认为一个文件,在这里&
符号为了修饰“1”指代的是标准输出的操作描述符,而不是名称为“1”的文件。(后面代码会有演示)
还有就是bash有三种文件描述符:
英文 | 解释 | 代表值 |
---|---|---|
stdin | 标准输出 | 0 |
stdout | 标准输出 | 1 |
stderr | 标准错误 | 2 |
这三者都是终端输入和输出(stderr也属于输出)。
好了那我们来解释一下这句代码./elasticsearch & >/etc/null 2>&