如何真正清除终端?

我可以发出clear命令或按Ctrl + L清除当前的Ubuntu终端,但这只是向上移动以前的输出,如果你使用鼠标滚动或PgUPPgDown键,很难区分上一个命令的输出结束和输出的位置当前命令开始。

有没有办法真正清除终端,所以我不会看到以前的命令结果?

是的,你正在寻找的命令是

 reset 

clearCtrl + L相比reset实际上会完全重新初始化终端 ,而不仅仅是清除屏幕。 但是,它不会重新实例化shell(bash)。 这意味着bash的状态与之前相同,就像你只是清理屏幕一样。

正如@Wallacoloo在评论中提到的,这个命令应该更快地做同样的事情:

 tput reset 

从其他答案:

  • 您可以设置键盘快捷键reset终端,如towolf所述

  • 如果您正在运行Kubuntu ,并且您的终端是Konsole,则需要转到编辑→清除历史记录 ,因为reset不会像UncleZeiv所说的那样在那里工作。

我一直在寻找这个,我找到了一些天才,发布了这个:

 clear && printf '\e[3J' 

清除整个屏幕缓冲区,非常干净。 适用于OS X并且相信它在大多数* nix终端上都能正常工作。

好奇的是,这部分'\e[3J'是一个终端逃脱命令。

您还可以通过转到编辑→键盘快捷键在gnome-terminal中指定快捷方式 。 我使用Shift + Ctrl + Alt + C.

重置并清除快捷方式

运行此命令:

 reset 

这与启动新终端具有相同的效果。

从stackoverflow交叉发布我的答案。

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

 printf "\033c" 

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

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

 alias cls='printf "\033c"' 

说明

 \033 == \x1B == 27 == 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"' 

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

我最喜欢的是printf "\ec" 。 这也可以是printf "\033c"printf "\x1bc" 。 这是一个ansi转义序列,奇迹般地清除了终端输出的屏幕和缓冲区(对于我工作过的大多数标准终端来说似乎 – 我知道它在Ubuntu之类的gnome-terminal,terminator,xterm等工作Linux版本)

我知道这可以在Linux Mint和Ubuntu 14.04中使用,所以我不知道为什么人们会附加和预设像clear && echo -ne "\033c printf "\ec"这样的东西一直对我clear && echo -ne "\033c

另外,在我的.bashrc我有这样的绑定:

 bind -x '"\Ct": printf "\ec"'; 

现在我一直按ctrl t

嗯,这真的取决于,例如,如果您使用Konsole ,即使reset也不会阻止您滚过第一行。 在这种情况下,您必须使用您正在使用的特定终端的某些function。 对于Konsole ,它是Edit > Clear History

我发现以下内容在Kubuntu上非常成功:

 alias clc="echo -en '\033c\033[3J'" 

您可以使用cls来保持Windows传统,使用Matlab版本clc或您自己的版本。 祝好运!

或者reset ,你可以做echo -e "\033c" ,或者你的.bashrcalias cls="echo -ne '\033c'"

UNIX / Linux StackExchange上有一个post: 如何完全清除终端? (unix.stackexchange.com) ,以及SuperUser: 使用键盘快捷键清除终端(superuser.com) 。

@ Hibou57答案的另一种选择:

 # The Octal Way alias clear="echo -e '\033c\c'" 

要么

 # The Hex Way alias clear="echo -e '\x1b\c'" 

基本上这将具有完全相同的效果,它将打印^[字符(清除您的终端)并且不输出尾随的新行。

如果您使用的是yakuake或Konsole,请尝试Ctrl + Shift + K.

资料来源: https : //bugs.kde.org/show_bug.cgi?id = 309008