我可以使用什么命令来重置和清除我的终端?

我可以使用什么命令来重置和清除我的终端?

我一直在使用以下命令:

reset

清除我的终端。虽然我很确定这不是我应该做的。重置,顾名思义,就是重置整个终端(更改很多内容)。以下是我想要的:

我基本上想使用命令clear。但是,如果你清除然后向上滚动,你仍然会得到大量之前的内容。一般来说这不是问题,但我正在查看很长的总日志,我想确保我只查看最新的日志。我知道我可以使用more或类似的东西,但我更喜欢这种方法。

答案1

回滚缓冲区不是 bash 的功能,而是终端程序的功能。你没有说你使用的是什么终端。

如果您使用 xterm,您可能能够通过在终端中回显 ESC-c 来清除已保存的行。

无论您使用什么终端程序,这都可能有效,也可能无效。

在 Linux 上这可能会起作用:

echo -e '\0033\0143'

在 FreeBSD 上 echo 不接受 -e,因此您可以尝试:

printf '\033\143'

答案2

对每项工作使用正确的工具:

  • 用于clear清除终端窗口。

  • reset当终端因控制序列而混乱时,使用它来重置终端。

  • cat仅当你想将大量数据从一个地方传输到另一个地方时使用不间断

  • 用于head仅传输前几行(选择多少行,用-n)文本输出。

  • 使用寻呼机程序(例如less或)most来查看输出页面。

  • 用于tail -f /var/log/foo.log /var/log/bar.log查看几个不同的日志文件。

    • 使用 GNU tail-F选项会更好,因为即使在新文件出现在其位置时它也可以继续跟踪该文件,就像日志文件常见的那样。

答案3

仅提供技术答案:reset重新初始化终端,就像从头开始重新打开一样。stty sane将执行许多相同的功能(无需重置)。这与^L(Ctrl+L) (irrc) 和相同tput clear。尽管之前的发帖人 (@grawity) 说过,clear不会输出一堆换行符。它发送's 重置,如或TERM中定义的那样,对我来说,使用(xterm) 它与命令 相同。terminfotermcapgnome-terminalperl -e'print "\33[H\33[2J"'

如果您只想清除缓冲区 - 与重置整个终端相比,请尝试以下操作tput reset。 它应该速度非常快,可以做你想做的事。(虽然你确实应该用 读取文件less

tput reset,发送 terminfo 值进行重置——在我的终端(xterm)上,它与perl -e'print "\33c"'

答案4

清除所有内容的最佳方法可能是使用终端的功能:

  • Konsole:Ctrl++Shift视图K→清除回滚并重置
  • GNOME 终端:编辑 → 重置和清除
  • PuTTY: Ctrl+ right-click→ 清除回滚

这样,两个缓冲区都会被清除,并且终端状态会重置为启动时的状态(这可能与使用相同或不同reset)。

相关内容