如何清除Gnome终端的历史记录?


Answers:


69

您可以使用tput reset

此外resettput 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”也将起作用。


1
reset和tput reset有什么区别?
Toothrot '16

tput reset快于reset在Ubuntu 16.04,至少
伊万·罗德里格斯·托雷斯

5
-1,你仍然可以看到,如果你向上滚动缓冲区
若昂·皮门特尔·费雷拉


15

我知道您在gnome终端上,但是我想为可能在Mac上(例如我)的其他人提供提示:

如果您正在使用Terminal.appiTerm.app然后Control+L将向上滚动,因此终端看起来空白,但Cmd+K实际上将终端重置/清除滚动回来。

或者,如果您可以为终端设置键盘首选项,则可以如上所述分配一些类似于Ctrl+K输入的内容echo -e \\033c


2
Cmd+K是我想要的。ty
Gaurav Gandhi

9

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

这个答案是任何使用Linux Bash的人都会喜欢的答案,如果他们期望通过按Command + K可以获得与Mac上相同的结果。 /etc/bash.bashrc(然后注销服务器,重新登录,将通过allclear命令运行): allclear(){`echo“ Clearing terminal and scrollback ...”`sleep 1.5``clear; echo -e“ \ 033c \ e [3J”` }``编辑:无法进行格式化。如果有人能够对其进行编辑以使其易于阅读,我将不胜感激。
KLaw

3

几年前,我在网上发现了这一信息,对我来说效果很好。它完全清除没有滚动历史记录的终端。

echo -e "\e[3J"

2

F12在以下每个shell中映射为清除屏幕:bashcshfish 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终端的按键绑定。

关于这条线:

  1. 该行的第一部分"\e[24~"映射键F12
  2. C-kCtrl+ X)清除杀灭环(bash的复制和过去的记忆)。
  3. 该空格可避免在下一个命令中发出蜂鸣声。
  4. C-uCtrl+ U)发送当前行到灭杀环,和擦除它。
  5. echo -ne '\\ec\\e[3J'; history -d $((HISTCMD-1))\n发送两个分组的命令给所述终端。它们由分隔;并以终止\n
    • echo -ne '\\ec\\e[3J'清除屏幕。
    • history -d $((HISTCMD-1))进入历史上避免了这两个命令。
  6. C-yCtrl+ Y)粘贴由存储的杀环C-u命令。
  7. C-?Ctrl+ ?)等效于Backspace并去除插在上面的步骤3的空间。

参考文献:

csh

键入下面的命令。
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简单得多)


2

[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或“自定义”文件时,您必须重新启动终端。


1

对我而言,在CentOS 7上使用PuTTY,clear仅将clear命令留在回滚中,但是同时运行clear命令的两个实例“ clear && clear”,则完全清除了回滚,并且没有滚动条。试试看 这是一个很奇怪的解决方案,但是这里没有一个能有效清除回滚,而确实如此。


0

添加以~/.inputrc将完整的结算绑定到F12

"\e[24~":'!echo -ne \047\\0033\\0143\047\r'

0

在Fedora 30中,通过删除$ HOME / .bash_history文件来删除历史记录。通过键盘清除终端历史记录文件的最简单方法是:

  • Alt+ F4关闭每个GNOME终端窗口,并根据需要通过Alt+ TabAlt+ Shift+ Tab在各个窗口之间循环。(必须关闭所有终端窗口,因为关闭时会创建或更新.bash_history文件。)
  • Alt+ F2
  • 键入nautilusEnter按键以打开(GNOME)文件应用程序(以前称为Nautilus)。
  • 如果需要,请按Ctrl+ H显示隐藏文件。
  • 键入.bash_history(如果在打开窗口后立即键入,它将显示在搜索栏中;否则,可以通过Ctrl+ 来访问搜索栏L)。
  • 按向下箭头键选择文件,它应该是唯一的搜索结果。
  • Shift+ Delete永久删除文件。(如果改用未修改的Delete密钥,则仍可通过“废纸folder”文件夹访问.bash_history文件。)

-2
cat /dev/null > ~/.bash_history && history -c && exit

您至少可以做的就是解释和格式化答案。
悖论

(1)尚不清楚OP是否要删除先前命令的Shell内存(历史记录)(问题与终端有关)。您看不到它,但是history -c已经在前面的两个答案中给出,并且由于不是正确的问题答案而被删除。(2)当关闭终端窗口将(可能)擦除先前命令的终端的存储器中,这是从显而易见的是,OP要做到这一点。…并且PS exit不能保证使用单个命令来关闭终端窗口。
G-Man
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.