在终端上使用 clear
命令只是让用户误以为屏幕已经清空...当你使用鼠标滚动时,仍然可以看到之前命令的输出。当你被海量文本淹没时,这会使生活变得困难。
在互联网上可以找到各种解决方案(如转义代码等),但它们只是对 clear 命令已经执行的操作做了些变化。
那么,在 Linux 终端中如何真正地清除内容呢?
在终端上使用 clear
命令只是让用户误以为屏幕已经清空...当你使用鼠标滚动时,仍然可以看到之前命令的输出。当你被海量文本淹没时,这会使生活变得困难。
在互联网上可以找到各种解决方案(如转义代码等),但它们只是对 clear 命令已经执行的操作做了些变化。
那么,在 Linux 终端中如何真正地清除内容呢?
使用以下命令进行清屏,而不仅仅是添加新的行...
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终端(称为Konsole)上不起作用,但是有希望!使用以下命令序列清除屏幕和滚动缓冲区...
clear && echo -en "\e[3J"
或者在KDE上使用以下别名...
alias cls='clear && echo -en "\e[3J"'
我从这里得到了清除滚动条的命令。
printf
是 Bash 的内置命令(虽然也是一个独立的二进制文件,但内置命令具有优先级,并且大多数现代 shell 都具有 printf
)。 - Dennis Williamson尝试使用 reset
命令,它可以清除终端屏幕但之前的命令可以通过箭头或其他按键绑定来访问。
tput reset
那就行了!
reset
更快 - l2aelba我在阅读过的所有答案都无法在PuTTY中工作,所以我在这篇文章上找到了一条评论:
在您连接的设置中,在“窗口→行为”下,您会发现一个设置“仅按ALT键时显示系统菜单”。然后使用 CTRL + L、ALT、l (小写字母L)将滚动屏幕并清除滚动缓冲区。
(对OP有关联,因为我正在连接到Ubuntu服务器,但似乎与您的服务器运行的内容无关。)
CTRL+L
然后ALT+Space
,U
,这将首先清除终端窗口,然后真正重置滚动条。 - Pierre VoisinClean the visible screen
clear
Clean screen and clear buffer
clear && clear
Clean and 1-sec delay
reset
Clean without 1-sec delay
tput reset
https://askubuntu.com/questions/17536/how-do-i-create-a-permanent-bash-alias
这些是该链接中详细的步骤:vim ~/.bashrc
或gedit ~/.bashrc
或您喜欢的任何文本编辑器alias cls='printf "\033c"'
. ~/.bashrc
(确保.
和~
之间有一个空格)我不对此信息负责,只是传递它。
\033c
与\x1bc
是相同的,而\x1bc
与\u001bc
也是相同的。这三个都可以使用! - Jake我最喜欢的人性化命令是:
reset
在xterm和VT100上进行了测试。它还可以在程序意外终止后帮助恢复。 保留命令缓冲区,因此向上箭头将循环显示以前的命令。
alias c="printf '\r\n%.0s' {1..50}"
c+Enter
。如果你使用KDE和Ubuntu 12.04 LTS以及“Konsole”终端,那么之前发布的答案都不适用。但是,按下默认键盘快捷键CTRL+Shift+X确实有效!来源:
:term
中工作。 - user202729