Sha*_*ala 118 bash command-history
我使用 Linux Mint 17.1 Rebecca 大约 2 天,不小心在终端中输入了我的密码,该密码现在显示在我之前输入的命令的历史列表中。
我想完全清除终端历史记录。我曾尝试在终端中使用以下命令,我认为这会永远清除历史记录,但它们没有:
history -c
reset
tput reset
Run Code Online (Sandbox Code Playgroud)
上面的命令“将”从终端清除历史记录,但是当我退出并打开一个新的历史记录时,我以前的所有历史记录仍然存在,并且可以使用 - history 命令再次列出所有历史记录,也可以通过按键盘上的向上箭头. 在我完全清除我的历史记录之前,我不希望这种情况发生,然后我想继续使用它。
如何彻底清除我的终端历史记录 - 永远重新开始?
请注意:我不想在没有保存历史记录的情况下退出终端,只是在这种情况下永远清除它。
Gil*_*il' 172
reset
或者tput reset
只对终端做事。历史完全由外壳管理,外壳不受影响。
history -c
清除当前 shell 中的历史记录。如果您刚刚输入了密码并且没有退出该 shell 或明确保存其历史记录,这就足够了(但太过分了)。
当您退出 bash 时,历史记录将保存到历史文件中,默认情况下该文件.bash_history
位于您的主目录中。更准确地说,在当前会话期间创建的历史记录被附加到文件中;已经存在的条目不受影响。要使用当前 shell 的历史记录覆盖历史文件,请运行history -w
.
您可以.bash_history
在编辑器中打开并删除不想保留的行,而不是删除所有历史记录条目。您也可以在 bash 中执行此操作,不太方便,使用history
显示所有条目,然后history -d
删除您不想要的条目,最后history -w
保存。
请注意,如果您有多个正在运行的 bash 实例读取了密码,则每个实例都可能会再次保存密码。在从历史文件中明确清除密码之前,请确保它已从所有正在运行的 shell 实例中清除。
请注意,即使在您编辑了历史文件之后,您的密码仍有可能存在于该文件早期版本的磁盘上。无法再通过文件系统检索它,但仍然可以(但可能不容易)通过直接访问磁盘来找到它。如果您在其他地方使用此密码并且您的磁盘被盗(或有人访问了该磁盘),这可能是一个问题。
小智 47
我试过 history -c 但是一旦我们退出并重新打开,历史就会回来。这对我有帮助。
cat /dev/null > ~/.bash_history && history -c && exit
Run Code Online (Sandbox Code Playgroud)
这会清除保存在历史文件中的历史记录以及当前会话中的历史记录(以便bash
退出时不会保存到文件中)。然后它退出外壳。下一个 shell 会话将没有历史记录。
小智 8
因为这里存在安全问题,您应该考虑安全地删除历史文件。
$ shred -u ~/.bash_history && touch ~/.bash_history
Run Code Online (Sandbox Code Playgroud)
小智 5
作为面临同样问题的新手,我采用了相当残酷的权宜之计,即删除和重新创建历史文件:-
rm .bash_history
touch .bash_history
Run Code Online (Sandbox Code Playgroud)
它对我有用而不会引起我所知道的任何令人不快的副作用。
小智 5
类型:history -c; rm ~/.bash_history
history -c
清除您当前会话的历史记录,rm ~/.bash_history
清除您的长期历史记录,因此history -c; rm ~/.bash_history
清除两者。
归档时间: |
|
查看次数: |
402770 次 |
最近记录: |