如何真正隐藏终端输出?

Fiv*_*ive 7 command-line

我知道要启动一个应用程序并继续在终端上工作,&放在命令的末尾(比如emacs&
但是有些命令仍然在终端上打印,像这样

那么如何真正让命令在终端上保持安静呢?

rev*_*dj1 14

你看到的是错误,被打印到 stderr (标准错误)。默认情况下,stderr 打印到用于启动程序的终端。我们可以很容易地改变这一点/dev/null,指向,这基本上是一个黑洞。这是一个什么都不做的设备,所以当你写信给它时,实际上什么也没发生。以下命令会将所有输出(stderr 和 stdout)重定向到/dev/null,然后返回您的终端。

firefox &> /dev/null &
Run Code Online (Sandbox Code Playgroud)

&>是重定向器,/dev/null是我们重定向到的地方,最后一个&意味着“后台”进程,所以我们可以让我们的终端回来。

附带说明一下,如果您想将后台程序带回终端,您可以使用fg(前台的缩写)命令将其带回。如果您键入键Ctrl+的组合,Z您将能够“暂停”该过程,然后您可以键入bg以将其发送回后台。