hpn*_*hpn 59 command-history terminal gnome-terminal escape-characters
当我们在终端中使用clearcommand 或Ctrl+L时,它会清除终端,但我们仍然可以回滚以查看上次使用的命令。有没有办法彻底清除终端?
Sac*_*kar 69
您可以使用tput reset.
此外reset,tput reset您可以使用以下 shell 脚本。
#!/bin/sh
echo -e \\033c
Run Code Online (Sandbox Code Playgroud)
这会将控制字符发送Esc-C到重置终端的控制台。
谷歌关键词:Linux 控制台控制序列
man console_codes 说:
ESC c 序列会导致终端重置,如果屏幕全是乱码,这就是您想要的。经常建议的“echo ^V^O”只会使 G0 成为当前,但不能保证 G0 指向表 a)。在某些发行版中,有一个程序 reset(1) 只执行“echo ^[c”。如果您的控制台 terminfo 条目是正确的(并且有一个条目 rs1=\Ec),那么“tput reset”也将起作用。
cwd*_*cwd 14
我知道您使用的是 gnome 终端,但我想我会为其他可能(像我一样)使用 Mac 的人提供提示:
如果您正在使用Terminal.apporiTerm.app然后Control+L将向上滚动,因此终端看起来是空白的,但Cmd+K实际上会重置终端/清除回滚。
或者,如果您能够为您的终端设置键盘首选项,您可能能够分配类似于上面提到的Ctrl+K输入的内容echo -e \\033c。
Anthon 的答案适用于 KDE Konsole,但不适用于 urxvt。在 urxvt 中,几年来我一直在使用 reset 来清除回滚(以及它所做的所有其他事情),并且不满意它在 Konsole 中不起作用。所以现在对于 Linux 我有一个新的别名:
alias allclear='clear; echo -e "\033c\e[3J"'
Run Code Online (Sandbox Code Playgroud)
但它不适用于 OS X。
tput reset 在任何情况下都不起作用 AFAICT。
在KDE的Konsole,ctrl- shift-k清除回溯(包括当前shell提示符,所以它完全是空的)。在 OS X 上的 iTerm 或 Apple 终端中,cmd- shift-k也会清除回滚。要将此功能添加到 urxvt,请将其添加到 ~/.Xresources:
urxvt*keysym.C-S-K: command:\033c
Run Code Online (Sandbox Code Playgroud)