clear
命令或按Ctrl + L清除当前的Ubuntu终端,但这只是将先前的输出向上移动,如果使用鼠标滚动或PgUP和PgDown键,则很难区分先前命令的输出和输出当前命令开始。是否有一种方法可以真正清除终端,所以我看不到先前的命令结果?
#1 楼
是的,您要查找的命令是reset
与
clear
或Ctrl + L相反,reset
实际上将完全重新初始化终端,而不仅仅是清除屏幕。但是,它不会重新实例化外壳(bash)。这意味着bash的状态与以前相同,就像您只是在清除屏幕一样。正如@Ponkadoodle在评论中提到的那样,此命令应该可以更快地完成相同的操作:
tput reset
从其他答案:
您可以将键盘快捷方式设置为
reset
终端,如towolf所述。如果您正在运行Kubuntu,并且您的终端是Konsole,则您需要转到“编辑”→“清除历史记录”,因为
reset
在那里的工作方式不同,如UncleZeiv所述。评论
对于大多数用户而言,可能无关紧要,但是重置的行为取决于终端。
–cthom06
2011-2-7 13:44
我个人不介意当我按下^ L时,滚动条上会残留一些东西。我没有看到它(这就是我想要的!),我没有感觉,如果突然之间,我将需要恢复那里的东西-没问题。相比之下,reset则难得多。当终端出现问题时,我将使用它,例如,奇怪的转义序列意外完全破坏了显示屏。
– ulidtko
2011-2-7 13:56
@ulidtko:当您连续运行具有大量输出的程序时,这很重要。如果向后滚动,很容易对哪个执行打印出内容感到困惑。我非常清楚,在这些情况下可以使用更复杂的解决方案,但是尽管如此,这种情况经常出现在快速且肮脏的调试会话中。
– UncleZeiv
2011年2月9日在12:49
还有tput reset,它显然可以做同样的事情,但是可以立即完成(而重置可能需要大约2秒钟的时间才能再次出现提示)。
– Ponkadoodle
16 Mar 4 '16 at 22:57
这将导致我的putty.exe窗口调整大小,如果没有这种情况,将很容易清除。
–void.pointer
17年8月3日在20:11
#2 楼
我已经寻找了一段时间,但发现了一些天才将其发布: clear && printf '\e[3J'
清除整个屏幕缓冲区,非常干净。可以在OS X上运行,并且相信它可以在大多数* nix终端上正常工作。
出于好奇,这部分
'\e[3J'
是终端转义命令。评论
嗯,可以在xterm,Konsole和Linux VT中使用,但不能在gnome-terminal中使用...
–俄罗斯
2014年6月24日13:02
谢谢,这非常有用! printf'\ e [3J“是什么意思?如何清洁缓冲区?
–Filip Spiridonov
15年7月24日在17:03
很棒的发现!对于那些想要在Mac上重置Bash风格的用户:nano〜/ .bashrc并添加别名reset =“ clear && printf'\ e [3J'”
– Michael Deal
16年8月12日在5:43
注意别名重设-它不只是清除终端。例如,如果您不小心打印了带有随机垃圾的二进制文件,该垃圾会损坏终端机(例如,禁用键入字符的回显),则reset通常可以解决该问题。当然,只要您知道如何\ override别名阴影命令,别名就可以了。
– RubyTuesdayDONO
16-10-3在12:51
这是唯一通过绕线机访问SSH时清除Putty回滚的答案。
– dhaupin
17年1月19日15:56
#3 楼
您还可以通过转到编辑→键盘快捷方式在gnome-terminal中分配快捷方式。我使用Shift + Ctrl + Alt + C。评论
+1。我总是隐藏菜单栏;因此,即使经过多年使用gnome,我也从未想过要寻找它。谢谢 :-)
– Stefano Palazzo
2011年2月9日在12:53
“重设”对我无济于事,“重设并清除”清除所有内容,但不重新显示提示。这些菜单项都不像终端上的“ reset”命令那样。
– Hibou57
2014年7月9日在8:50
正如@ Hibou57所说,我的“重置”键盘快捷键似乎没有任何作用。该功能在14.04中被破坏了吗?
–迈克尔·马丁·史密克(Michael Martin-Smucker)
2014年8月23日在20:37
“此功能在14.04中被破坏吗?”:与12.04相同。
– Hibou57
2014年8月24日在2:53
@ Hibou57“重置并清除”不希望重新显示提示,但是如果您随后按Enter,它将重新显示提示。那对你有用吗?
–唐·哈奇
16年11月9日,下午2:32
#4 楼
从stackoverflow交叉发布我的答案。使用以下命令可以清晰显示屏幕,而不仅仅是添加新行...
printf "3c"
是的,这是bash提示符上的'printf'。
您可能希望通过以下方式定义别名...
alias cls='printf "3c"'
解释
3 == \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"'
我从这里得到了回滚清除命令。
评论
这非常感谢
– alicanerdogan
1月17日15:20
#5 楼
运行以下命令:reset
这与启动新终端的效果相同。
评论
使用腻子时,执行重置后,我仍然可以向上滚动并查看以前的内容。这是PuTTY的问题而不是重置的问题吗?
–Svish
2011-2-7 14:43
@svish-这只是油灰实施的问题或决定。
– Belacqua
2011-2-8 22:52
@jgbelacqua,交易:)
–Svish
2011年2月9日在9:27
与MAC OS终端一起使用
–比拉
19年1月11日,2:15
@Bira不,重置不会清除macOS 10.14 Mojave上的回滚。您可以尝试seq 100;重置以查看仍存在回滚。在macOS终端上,Cmd + K可以清除屏幕和向后滚动。
–约翰尼·王(Johnny Wong)
19年1月24日在4:23
#6 楼
我最喜欢的是printf "\ec"
。也可以是printf "3c"
或printf "\x1bc"
。这是一个ansi转义序列,可以奇迹般地清除终端输出的屏幕和缓冲区(对于我在其中工作过的大多数标准终端而言,我似乎都知道-我知道它可以在类似Ubuntu的gnome-terminal,terminator,xterm等中运行) Linuxes)我知道这可以在Linux Mint和Ubuntu 14.04中使用,所以我不知道为什么人们会添加和添加
clear && echo -ne "3c
之类的内容。 printf "\ec"
一直为我工作。另外,在我的
.bashrc
中,我有一个这样的绑定:bind -x '"\C-t": printf "\ec"';
现在我按下ctrlt时间。
评论
您知道如何使用Windows键创建映射吗?这个代码片段非常棒,与Mac上的Command-K完全一样。谢谢。
–零蛋
17年1月12日在15:47
@Niloct,您可以看到终端是否支持xev(只需在x会话内的终端中键入xev)。据我所知,urxvt不支持它。虽然我没有尝试过tty,但我相信它不会得到支持。我也怀疑xterm或gnome-terminal是否会支持这一点。使用ansi换码很棘手。欢呼声和对不起您的回复。
– dylnmc
17年2月3日,17:34
好吧@dylnmc,我非常感谢。感谢您的评论。
–零蛋
17年2月3日在18:19
#7 楼
好吧,这确实取决于您是否使用Konsole
,即使reset
也不妨碍您滚动到第一行。在这种情况下,您必须使用正在使用的特定终端的某些功能。对于Konsole
,它是Edit > Clear History
。#8 楼
我发现使用Kubuntu可以取得以下成功:alias clc="echo -en '3c3[3J'"
您可以使用
cls
来保持Windows传统,使用Matlab版本clc
或您的其中一个拥有。祝你好运!#9 楼
除了reset
之外,您还可以执行echo -e "3c"
,或者在.bashrc
中添加类似alias cls="echo -ne '3c'"
之类的东西。UNIX / Linux StackExchange上有一个线程:如何完全清除终端? (unix.stackexchange.com)以及SuperUser:使用键盘快捷键(superuser.com)清除终端。#10 楼
@ Hibou57答案的另一种替代方法:# The Octal Way
alias clear="echo -e '3c\c'"
OR
# The Hex Way
alias clear="echo -e '\x1b\c'"
基本上这将完全相同效果,它将打印
^[
字符(这将清除您的终端),并且不会输出结尾的换行符。评论
轻微校正:先打印^ [字符(ESC),然后打印c字符,而不仅仅是^ [字符。这些总和等于“ RIS”终端代码,将导致复位。更多信息:xfree86.org/4.8.0/ctlseqs.html
– jwd
17-10-11在15:29
#11 楼
如果您使用的是yakuake或Konsole,请尝试Ctrl + Shift + K。
来源:https://bugs.kde.org/show_bug.cgi?id=309008
#12 楼
您可以通过以下所有方法清除Unix中的终端屏幕:clear # only clear visible screen
clear && clear # clear buffer as well
tput clear # same as clear but by sending escape seq
reset # clear + reset internal terminal state + 1sec delay
tput reset # same as reset but without 1sec delay
stty sane # don't clear screen but reset some terminal options
echo -e "3c" # same as tput reset but hardcoded escape seq
printf "3c" # same as tput reset but hardcoded escape seq
setterm -reset # same as tput reset, setterm has friendlier commands
评论
按Ctrl + L两次,您会变成空白!