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

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

我注意到,当我使用箭头键UP和向上浏览命令时DOWN,如果我编辑一个命令,它会在历史记录中编辑它,我甚至可以删除这样的命令,但是我不希望它对历史记录中的命令产生这种影响,我不希望它实际上从历史记录中删除它们,只允许我编辑我正在输入的内容,但实际上不能通过它修改历史记录。那么我怎样才能让它实际上不修改历史记录,而只修改我执行的命令呢?

答案1

我在Unix和Linux中问过类似的问题:如何撤消命令历史记录中的更改?

吉尔斯给了我很好的回答说:

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

答案2

我遇到了同样的问题,当我玩耍并努力了解发生了什么时,我刚刚弄清楚了以下情况:

如果你从history之前输入的命令行调用在同一个当前终端会话中然后编辑它(也许删除它),但然后通过离开该(历史)命令行来中断您的编辑,例如使用箭头Down返回到实际当前命令行的提示符,然后稍后当您退出终端时,编辑会被记录在文件中.bash_history

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

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

另请参阅猎鹰者 那里

相关内容