小编tuo*_*alo的帖子

为什么我可以更改 bash 历史记录?

为什么bash即使我没有执行我正在修改的命令也会更改历史记录?例如,如果我输入:

$ echo foo1
foo1
$ echo foo2
foo2
$ echo foo3
foo3
Run Code Online (Sandbox Code Playgroud)

在此之后,我按up两次,然后我得到echo foo2提示。我按下2并得到echo foo22。现在回到结尾(空行) downdown。如果我现在搜索历史记录,echo foo22即使我从未执行过该命令,我也会看到!

但是,当我退出 shell 并打开另一个 shell 时,我看到了原始的、已执行的命令。我觉得这一切都非常令人困惑、违反直觉和令人恼火。

我希望历史事情像这样工作:

  1. 只有实际执行的命令才会保存到历史记录中。

  2. 历史是不可改变的。(除非明确清除。)

有没有办法做到这一点?

编辑 - 这个问题似乎相关:Is there any way to undo a bash history modified?

bash command-history

7
推荐指数
1
解决办法
497
查看次数

标签 统计

bash ×1

command-history ×1