Answers:
您可以使用tput reset
。
此外reset
,tput reset
您可以使用以下shell脚本。
#!/bin/sh
echo -e \\033c
这会将控制字符发送Esc-C
到控制台,以重置终端。
Google关键字:Linux控制台控制序列
man console_codes
说:
序列ESC c导致终端复位,如果屏幕全是乱码,这是您想要的。经常建议的“ echo ^ V ^ O”只会使G0成为当前状态,但不能保证G0指向表a)。在某些发行版中,有一个程序reset(1)仅执行“ echo ^ [c”。如果控制台的terminfo条目正确(并且具有rs1 = \ Ec条目),则“ tput reset”也将起作用。
tput reset
快于reset
在Ubuntu 16.04,至少
我知道您在gnome终端上,但是我想为可能在Mac上(例如我)的其他人提供提示:
如果您正在使用Terminal.app
或iTerm.app
然后Control+L
将向上滚动,因此终端看起来空白,但Cmd+K
实际上将终端重置/清除滚动回来。
或者,如果您可以为终端设置键盘首选项,则可以如上所述分配一些类似于Ctrl+K
输入的内容echo -e \\033c
。
Cmd+K
是我想要的。ty
Anthon的答案适用于KDE Konsole,但不适用于urxvt。在urxvt中,我已经使用reset几年来清除了回滚(以及它所做的所有其他事情),并且不满意它在Konsole中不起作用。所以现在对于Linux,我有了一个新的别名:
alias allclear='clear; echo -e "\033c\e[3J"'
但它在OS X上不起作用。
tput reset
在任何情况下都不适用于AFAICT。
在KDE的Konsole,ctrl- shift- k清除回溯(包括当前shell提示符,所以它完全是空的)。在的iTerm或苹果的OS X终端,cmd- shift- k也清除回滚。要将此功能添加到urxvt,请将其添加到〜/ .Xresources:
urxvt*keysym.C-S-K: command:\033c
allclear(){
`echo“ Clearing terminal and scrollback ...”`sleep 1.5``clear; echo -e“ \ 033c \ e [3J”` }
``编辑:无法进行格式化。如果有人能够对其进行编辑以使其易于阅读,我将不胜感激。
我F12在以下每个shell中映射为清除屏幕:bash,csh和fish shell。我的命令与以前的命令不同,因为它保留了您在当前行中键入的所有内容。
(注意:以下所有配置均取决于终端,但我希望它们几乎可以在任何地方使用)
打开文件~/.inputrc
并插入以下行:
"\e[24~": "\C-k \C-uecho -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n\C-y\C-?"
要使新的键绑定可用,请打开一个新终端,或键入Ctrl+ X然后Ctrl+ R以在当前终端中重新加载.inputrc文件。
说明
〜/ .inputrc文件控制bash终端的按键绑定。
关于这条线:
"\e[24~"
映射键F12。C-k
(Ctrl+ X)清除杀灭环(bash的复制和过去的记忆)。C-u
(Ctrl+ U)发送当前行到灭杀环,和擦除它。echo -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n
发送两个分组的命令给所述终端。它们由分隔;
并以终止\n
。
echo -ne '\\ec\\e[3J'
清除屏幕。history -d $((HISTCMD-1))
进入历史上避免了这两个命令。C-y
(Ctrl+ Y)粘贴由存储的杀环C-u
命令。C-?
(Ctrl+ ?)等效于Backspace并去除插在上面的步骤3的空间。参考文献:
键入下面的命令。
bindkey -c "^[[24~" "echo -ne '\ec\e[3J'"
也可以将其插入.cshrc
文件中,以将密钥绑定加载到每个新终端。
(是的,它比bash简单得多)
键入下面的命令。
bind -k f12 "echo -ne '\ec\e[3J'; commandline -f repaint"
您可以编辑并保存该功能,fish_user_key_bindings
以将按键绑定加载到每个新终端。
(是的,它比bash简单得多)
[Ubuntu 16.04]
该.bash_history的 文件在用户的主目录中创建一旦终端关闭
它很有用,但是您可以根据需要将其删除。尽管如此,它会在每次使用完终端后创建。
您可以从以下位置手动将其删除:
您的文件浏览器。
终端:请记住,关闭终端时将创建一个新的.bash_history文件(基于其默认配置)。
或者,如果您将所需的功能保存到从bashrc链接的文件中,则可以调用自定义函数。如果您喜欢将代码放在其中,则可以编辑bashrc本身,但是下一个示例在单独的文件中
老实说,这对我没有用,但是如果您希望在退出前删除命令历史记录,可以执行以下操作:
.bash_custom#这是我的自定义文件
blotout() {
HISTSIZE=0
rm $HOME/.bash_history
exit
}
然后在底部添加我的文件的名称和路径
.bashrc#这是bash的配置文件(我认为)
# existent code
#...
#..
# import user customizations
source $HOME/.bash_custom
就这样。
但是,要完全执行您想要的操作,您只需在自定义文件中将此函数链接起来:
refresh() {
tput reset
H=HISTSIZE
HISTSIZE=0
HISTSIZE=H
}
或者,如果需要的话,也可以将函数放在.bashrc中,但是那样的话,我不确定函数之后可能需要export语句,并且如果文件已更新,可能会丢失函数。.我也不确定: D.
请记住,在编辑.bashrc或“自定义”文件时,您必须重新启动终端。
对我而言,在CentOS 7上使用PuTTY,clear仅将clear命令留在回滚中,但是同时运行clear命令的两个实例“ clear && clear”,则完全清除了回滚,并且没有滚动条。试试看 这是一个很奇怪的解决方案,但是这里没有一个能有效清除回滚,而确实如此。
在Fedora 30中,通过删除$ HOME / .bash_history文件来删除历史记录。通过键盘清除终端历史记录文件的最简单方法是:
nautilus
并Enter按键以打开(GNOME)文件应用程序(以前称为Nautilus)。.bash_history
(如果在打开窗口后立即键入,它将显示在搜索栏中;否则,可以通过Ctrl+ 来访问搜索栏L)。