问题描述
在终端上使用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服务器,但无论你的服务器运行什么,它显然都很相关。)
第五种办法
以下链接将解释如何使该别名成为永久别名,以便您不必继续输入该别名。
这些是该链接详述的步骤。
-
vim~ /.bashrc或gedit~ /.bashrc或者你喜欢的文本编辑器
-
将别名cls = ‘printf “\033c”‘放在文件的底部
-
保存并退出
-
。 〜/.bashrc(是的,应该有。和〜之间的空格)
-
现在检查一下是否一切正常!
我不相信这些信息只是传递它。
第六种办法
我最喜欢的人性友好命令是:
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
即可。
参考资料