当前位置: 首页>>技术教程>>正文


清除终端屏幕真实

, , , ,

问题描述

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

可以在因特网上找到的各种解决方案(转义码等)只是clear命令已经做的变化。

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

最佳解决办法

使用以下命令执行清除屏幕而不是仅添加新行…

printf "\033c"

是的,这是bash提示符下的’printf’。

你可能想要定义一个别名……

alias cls='printf "\033c"'

Explanation

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

因此,这成为<ESC>c,它是用于重置终端的VT100转义码。 Here是有关终端转义码的更多信息。

Edit

以下是其他一些方法……

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),但有希望!使用以下命令序列清除屏幕和scroll-back缓冲区…

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

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

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

我从here获得了scroll-back清除命令。

次佳解决办法

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

第三种解决办法

tput reset

那就行了!

第四种办法

我读过的所有答案都没有在PuTTY中工作,所以我在this article上发现了一条评论:

在连接设置中,在”Window->Behavior”下,您将找到“系统菜单仅在ALT上出现”的设置。然后CTRL + L,ALT,l(这是一个小写的L)将滚动屏幕,然后清除回滚缓冲区。

(与OP相关,因为我连接到Ubuntu服务器,但无论你的服务器运行什么,它显然都很相关。)

第五种办法

以下链接将解释如何使该别名成为永久别名,以便您不必继续输入该别名。

我如何创建一个永久的Bash别名?

这些是该链接详述的步骤。

  1. vim~ /.bashrc或gedit~ /.bashrc或者你喜欢的文本编辑器

  2. 将别名cls = ‘printf “\033c”‘放在文件的底部

  3. 保存并退出

  4. 。 〜/.bashrc(是的,应该有。和〜之间的空格)

  5. 现在检查一下是否一切正常!

我不相信这些信息只是传递它。

第六种办法

我最喜欢的人性友好命令是:

reset

在xterm和VT100上测试过。在异常程序终止后它也有帮助。保留命令缓冲区,因此up-arrow将循环显示以前的命令。

欢呼声:D

第七种办法

使用KDE和Ubuntu 12.04 LTS以及”Konsole”终端,所有发布的答案都不起作用。但是,按下默认键盘快捷键CTRL + Shift + X确实有效!资源:

https://bugs.kde.org/show_bug.cgi?id=288913

第八种办法

我知道采用新线印刷的解决方案不太受支持,但如果一切都失败了,为什么不呢?特别是在其他人可能能够看到屏幕的环境中操作,但却无法使用键盘记录。一个可能的解决方案是以下别名:

alias c="printf '\r\n%.0s' {1..50}"

然后,到”clear”离开屏幕的当前内容(或者更确切地说,隐藏它们),只需在终端输入c+Enter即可。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6921.html,未经允许,请勿转载。