bunden Asked: 2018-01-14 05:58:47 +0800 CST2018-01-14 05:58:47 +0800 CST 2018-01-14 05:58:47 +0800 CST 为什么删除 bash 历史记录还不够? 772 我曾经认为删除我的 bash 历史记录足以清除我的 bash 历史记录,但是昨天我的猫在我的键盘右侧乱搞,当我回到我的电脑时,我看到了我一个月前输入的东西,然后我开始疯狂地按下所有键,寻找可能触发它的原因。事实证明,即使在删除 .bash_history 之后,UPARROW 键也会显示我的 bash 历史记录。 如何真正删除我的 bash 历史记录? linux bash 6 个回答 Voted Best Answer user232326 2018-01-14T07:07:33+08:002018-01-14T07:07:33+08:00 在某些情况下(某些 bash 版本),执行以下操作: $ history -c; history -w 或者干脆 $ history -cw 将清除内存中的历史记录(向上和向下箭头将没有要列出的命令),然后将其写入$HISTFILE文件(如果$HISTFILE正在运行的 bash 实例截断)。 有时 bash 选择不截断$HISTFILE文件,即使histappend选项未设置并$HISFILEZIZE设置为 0。 在这种情况下,nuke 选项始终有效: history -c; >$HISTFILE 这会清除内存中记录的命令的历史列表以及之前记录到文件中的所有命令。这将确保正在运行的 shell 在内存或磁盘中没有记录的历史记录,但是,bash 的其他运行实例(历史记录处于活动状态)可能具有从$HISTFILEbash 启动时(或history -r执行 a 时)读取的命令的完整副本. 如果还要求当前会话的任何其他内容(没有新命令)都不会写入历史文件,unset HISTFILE则将阻止任何此类日志记录。 Kusalananda 2018-01-14T06:10:25+08:002018-01-14T06:10:25+08:00 bash如果 shell 变量在退出HISTFILE时设置为文件名,则在内存中有一个会话历史记录,该会话历史记录将写入文件。bash 如果您删除指向的文件HISTFILE,取消设置该变量,然后退出bash,那么该 shell 会话将不会留下任何持久的历史记录。 未能取消设置HISTFILE变量但删除文件只会清空持久历史记录,但当前会话的历史记录将在 shell 退出时保存。 Usama Abdulrehman 2020-05-14T20:17:54+08:002020-05-14T20:17:54+08:00 我有一个类似的问题,执行以下两个命令删除了 bash 历史记录 $ history -c $ cat /dev/null > ~/.bash_history 接下来,确保退出所有终端并启动一个新终端,当您按下向上箭头按钮时,您不应该看到任何历史命令。 user 2018-01-14T18:07:19+08:002018-01-14T18:07:19+08:00 “我怎样才能真正删除我的 bash 历史记录?” 退出 bash,启动不同的 shell,删除 bash 历史文件。 或者 注销,登录到对历史文件具有写入权限的其他帐户,删除历史文件。 Maat 2020-05-14T15:46:52+08:002020-05-14T15:46:52+08:00 打开文件管理器并勾选显示隐藏文件。.bash_history在您的主文件夹中查找。用你的文本编辑器打开它。删除文件内容。任务完成。 user853069 2019-02-18T22:55:13+08:002019-02-18T22:55:13+08:00 离开外壳时,一次性完成所有操作,例如 echo "" > ~/.bash_history && history -c && exit
在某些情况下(某些 bash 版本),执行以下操作:
或者干脆
将清除内存中的历史记录(向上和向下箭头将没有要列出的命令),然后将其写入
$HISTFILE
文件(如果$HISTFILE
正在运行的 bash 实例截断)。有时 bash 选择不截断
$HISTFILE
文件,即使histappend
选项未设置并$HISFILEZIZE
设置为 0。在这种情况下,nuke 选项始终有效:
这会清除内存中记录的命令的历史列表以及之前记录到文件中的所有命令。这将确保正在运行的 shell 在内存或磁盘中没有记录的历史记录,但是,bash 的其他运行实例(历史记录处于活动状态)可能具有从
$HISTFILE
bash 启动时(或history -r
执行 a 时)读取的命令的完整副本.如果还要求当前会话的任何其他内容(没有新命令)都不会写入历史文件,
unset HISTFILE
则将阻止任何此类日志记录。bash
如果 shell 变量在退出HISTFILE
时设置为文件名,则在内存中有一个会话历史记录,该会话历史记录将写入文件。bash
如果您删除指向的文件
HISTFILE
,取消设置该变量,然后退出bash
,那么该 shell 会话将不会留下任何持久的历史记录。未能取消设置
HISTFILE
变量但删除文件只会清空持久历史记录,但当前会话的历史记录将在 shell 退出时保存。我有一个类似的问题,执行以下两个命令删除了 bash 历史记录
$ history -c
$ cat /dev/null > ~/.bash_history
接下来,确保退出所有终端并启动一个新终端,当您按下向上箭头按钮时,您不应该看到任何历史命令。
“我怎样才能真正删除我的 bash 历史记录?”
退出 bash,启动不同的 shell,删除 bash 历史文件。
或者
注销,登录到对历史文件具有写入权限的其他帐户,删除历史文件。
打开文件管理器并勾选显示隐藏文件。
.bash_history
在您的主文件夹中查找。用你的文本编辑器打开它。删除文件内容。任务完成。离开外壳时,一次性完成所有操作,例如