真正清除终端屏幕

新手上路,请多包涵

在终端上使用 clear 命令只会使用户误以为屏幕已被清除……当您使用鼠标滚动时,您仍然可以看到先前命令的输出。当您淹没在文本海啸中时,这会使生活变得困难。

可以在 Internet 上找到的各种解决方案(转义码等)只是 clear 命令已经完成的功能的变体。

那么如何真正清除 Linux 中终端的内容呢?

原文由 Sandeep Datta 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

使用以下命令进行清屏,而不是仅仅添加新行…

 printf "\033c"

是的,这是 bash 提示符上的“printf”。

您可能会想要定义一个别名……

 alias cls='printf "\033c"'

解释

\033 == \x1B == 27 == ESC

所以这变成了 <ESC>c 这是用于重置终端的 VT100 转义码。 是有关终端转义码的更多信息。

编辑

这里有一些其他的方法……

 printf "\ec" #\e is ESC in bash
echo -en "\ec" #thanks @Jonathon Reinhart.
# -e    Enable interpretation of of backslash escapes
# -n    Do not output a new line

KDE

以上不适用于 KDE 控制台(称为 Konsole),但有希望!使用以下命令序列清除屏幕和回滚缓冲区…

 clear && echo -en "\e[3J"

或者也许在 KDE 上使用以下别名…

 alias cls='clear && echo -en "\e[3J"'

我从 这里 得到了回滚清除命令。

原文由 Sandeep Datta 发布,翻译遵循 CC BY-SA 4.0 许可协议

试试 reset 。它清除了终端屏幕,但可以通过箭头或您拥有的任何键绑定访问以前的命令。

原文由 vpit3833 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题