bun*_*den 19 linux bash bashrc
我曾经认为删除我的 bash 历史记录足以清除我的 bash 历史记录,但昨天我的猫在我键盘的右侧乱搞,当我回到我的电脑时,我看到了我一个月前输入的东西,然后我开始疯狂地按下所有按键,寻找可能触发它的原因。原来 UPARROW 键即使在删除 .bash_history 之后也会显示我的 bash 历史记录。
如何真正删除我的 bash 历史记录?
ImH*_*ere 28
在某些情况下(某些 bash 版本),执行以下操作:
$ history -c; history -w
Run Code Online (Sandbox Code Playgroud)
或者干脆
$ history -cw
Run Code Online (Sandbox Code Playgroud)
将清除内存中的历史(向上和向下箭头将不得不列表中没有命令),然后写的是到$HISTFILE
文件(如果$HISTFILE
得到由运行bash实例截断)。
有时 bash 选择不截断$HISTFILE
文件,即使histappend
选项未设置并$HISFILEZIZE
设置为 0。
在这种情况下,nuke 选项始终有效:
history -c; >$HISTFILE
Run Code Online (Sandbox Code Playgroud)
清除内存中记录的命令的历史列表和以前记录到文件的所有命令。这将确保正在运行的 shell 在内存或磁盘中没有记录的历史记录,但是,bash 的其他运行实例(其中历史记录处于活动状态)可能具有从$HISTFILE
bash 启动时(或history -r
执行a 时)读取的命令的完整副本.
如果还要求当前会话的任何其他内容(没有新命令)不会写入历史文件,unset HISTFILE
则将阻止任何此类日志记录。
bash
如果 shell 变量HISTFILE
在bash
退出时设置为文件名,则在内存中具有会话历史记录,该会话历史记录将写入文件。
如果您删除 指向的文件HISTFILE
,取消设置该变量并退出bash
,那么该 shell 会话将不会留下任何持久的历史记录。
未能取消设置HISTFILE
变量但删除文件只会清空持久历史,但当前会话的历史将在 shell 退出时保存。