我曾经认为删除我的 bash 历史记录就足以清除我的 bash 历史记录,但昨天我的猫在键盘的右侧乱搞,当我回到电脑时,我看到了一个月前输入的内容,然后我开始疯狂地按下所有按键,寻找可能触发它的原因。事实证明,即使删除 .bash_history 后,UPARROW 键也会显示我的 bash 历史记录。
如何才能真正删除我的 bash 历史记录?
答案1
在某些情况下(某些 bash 版本),执行以下操作:
$ history -c; history -w
或者简单地
$ history -cw
将清除内存中的历史记录(向上和向下箭头将没有要列出的命令),然后写入那到$HISTFILE
文件(如果$HISTFILE
被运行的 bash 实例截断)。
有时 bash 选择不是$HISTFILE
即使histappend
选项未设置并$HISFILEZIZE
设置为 0,也会截断文件。
在这种情况下,nuke 选项始终有效:
history -c; >$HISTFILE
清除内存中记录的命令历史列表以及以前记录到文件中的所有命令。这将确保正在运行的 shell 在内存或磁盘中没有记录历史记录,但是,其他正在运行的 bash 实例(历史记录处于活动状态)可能具有从$HISTFILE
bash 启动时(或history -r
执行 a 时)读取的命令的完整副本。
如果是还要求当前会话的任何其他内容(没有新命令)都不会写入历史文件,然后,unset HISTFILE
将阻止任何此类日志记录。
答案2
bash
如果 shell 变量在退出HISTFILE
时设置为文件名,则内存中有一个会话历史记录,该历史记录将写入文件。bash
如果删除 指向的文件HISTFILE
,取消设置该变量,然后退出bash
,则该 shell 会话将不会留下任何持久历史记录。
未能取消HISTFILE
设置变量但删除文件只会清空持久历史记录,但当前会话的历史记录将在 shell 退出时保存。
答案3
我遇到了类似的问题,执行以下两个命令删除了 bash 历史记录
$ history -c
$ cat /dev/null > ~/.bash_history
接下来,确保退出所有终端并启动一个新终端,并且当您按向上箭头按钮时,您不应该看到任何历史命令。
答案4
打开文件管理器并勾选显示隐藏文件。在您的主文件夹中查找.bash_history
。使用文本编辑器打开它。删除文件内容。任务完成。