如何防止命令从历史记录中删除?

我注意到当我使用箭头键UPDOWN上升命令时,如果我编辑命令,它会在历史记录中编辑它,我甚至可以删除这样的命令,但是我不想要它要对历史记录中的命令产生这种影响,我不希望它在历史记录中实际删除它们,只允许我编辑我正在键入的内容,但实际上并不是通过它来修改历史记录。 那么我怎样才能使它实际上不会修改历史记录,而只是修改我执行的命令?

我在Unix和Linux中问了一些非常相似的东西: 如何撤消命令历史记录中的变化? 。

我从吉尔斯那里得到的答案很好 :

只要您编辑了历史记录条目但尚未按Enter键 ,要返回原始条目,请反复按Ctrl + _undo命令 – 直到它不再进行任何更改。 你回到原来的条目。

我遇到了同样的问题,当我在玩游戏并努力理解发生了什么时,我只是想出了以下内容:

如果从history调用先前在同一当前终端会话中实际键入的命令行,然后对其进行编辑(可能将其删除),然后通过使用例如Down箭头保留(history-)命令行来中断编辑返回到实际当前命令行的提示符,然后在退出终端时,编辑内容将记录在.bash_history文件中。

如果在启动终端会话之前编辑并中断已在.bash_history文件中记录的命令行上的编辑,则不会发生此行为。

换句话说,当终端会话打开时,新键入的命令行仅保存在内存中,而不是保存在.bash_history 。 您可以使用up箭头或调用history命令来调用它们,并且可以在会话打开时编辑它们(调用history命令时,修改后的命令行将用星号*表示)。 只有当您退出会话时,才会在.bash_history文件中“按原样”记录会话命令,从而保留您在退出会话之前对其进行的最后编辑。

另见falconer的答案。