如何清除终端历史记录?


93

我正在使用Linux Mint 17.1 Rebecca大约2天,并且不小心将密码输入了终端,该终端现在显示在我先前键入的命令的历史记录列表中。

我想彻底清除终端历史记录。我尝试在终端中使用以下命令,我认为这将永远清除历史记录,但它们并不能清除:

history -c
reset
tput reset

上面的命令“将”从终端清除历史记录,但是当我退出并显示一个新的历史记录时,我以前的所有历史记录仍然存在,并且可以使用-history命令并按键盘上的UP箭头再次列出所有历史记录。在完全清除历史记录之前,我不希望发生这种情况,然后再继续使用它。

如何彻底清除终端历史记录-永远重新开始?

请注意:我不想在不保存历史记录的情况下退出终端,只是在这种情况下永远将其清除。


1
sed -i "s/$your_pass//g" ~/.bash_history...
jasonwryan

3
@jasonwryan仅凭此一项无法解决问题,因为sed命令将最终出现在shell历史记录中。
吉尔斯

1
我尝试使用来自@jasonwryan的代码,但得到了:sed:-e表达式#1,字符0:没有以前的正则表达式,我认为我知道为什么,这导致我从搜索和一些混乱中得出这个结论: cat / dev / null>〜/ .bash_history && history -c && exit
Shambhala

1
@吉尔斯:你是对的:命令前应该有一个空格……
jasonwryan 2015年

Answers:


145

resettput reset仅对终端起作用。历史完全由外壳管理,而外壳不受影响。

history -c清除当前shell中的历史记录。如果您只是键入密码而没有退出该shell或显式保存其历史记录,那就足够了(但是太过分了)。

退出bash时,历史记录将保存到历史记录文件中,默认情况下该文件.bash_history位于您的主目录中。更准确地说,将在当前会话期间创建的历史记录添加到文件中;已经存在的条目不受影响。要用当前Shell的历史记录覆盖历史记录文件,请运行history -w

您可以.bash_history在编辑器中打开并删除不需要保留的行,而不是删除所有历史记录条目。您还可以通过使用bash在bash中执行此操作,history以显示所有条目,然后history -d删除不需要的条目,最后history -w进行保存,从而更加不方便。

请注意,即使在编辑历史记录文件之后,您的密码仍可能存在于文件早期版本中的磁盘上某个位置。无法再通过文件系统检索它,但是仍然有可能(但可能不容易)通过直接访问磁盘来找到它。如果您在其他地方使用此密码而磁盘被盗(或有人可以访问该磁盘),则可能是一个问题。


1
我喜欢您的回答,并且会接受您告诉我的很多我不知道的事情,这些事情非常有用。我还将更改我的密码!
香巴拉

首先键入history要检查历史记录日志的内容和要删除的行号(假设您要删除历史记录日志中的行号1000),然后输入history -d 1000
Claude COULOMBE

如果我直接修改.bash_history的文件,历史命令仍然显示的命令,因为他们修改前,直到我登出/登录。
Benitok

35

我曾经尝试过使用history -c,但是一旦退出并重新打开,历史就会重新出现。

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

这将清除保存在历史记录文件中的历史记录以及当前会话中的历史记录(因此bash退出时不会将其保存到文件中)。然后退出外壳。下一个Shell会话将没有历史记录。


18

而不是删除所有历史记录条目,请在终端中键入以下命令:

  1. history -c (用于删除历史记录)
  2. history -w (保存历史)

如果设置了inc_append_historyshare_history选项,则对于zsh而言这还不够。
saga

5

由于此处存在安全问题,因此您应考虑安全删除历史记录文件。

$ shred -u ~/.bash_history && touch ~/.bash_history

3

作为面对同样问题的新手,我诉诸于删除和重新创建历史记录文件的相当残酷的权宜之计:

rm .bash_history
touch .bash_history

它对我有效,并且不会引起我所知的任何不良副作用。


3

类型: history -c; rm ~/.bash_history

history -c清除您当前会话的历史记录,rm ~/.bash_history清除您的长期历史记录,因此history -c; rm ~/.bash_history清除两者。


说明可以帮助OP更好地理解。
Mongrel
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.