我注意到,当我使用箭头键UP和向上浏览命令时DOWN,如果我编辑一个命令,它会在历史记录中编辑它,我甚至可以删除这样的命令,但是我不希望它对历史记录中的命令产生这种影响,我不希望它实际上从历史记录中删除它们,只允许我编辑我正在输入的内容,但实际上不能通过它修改历史记录。那么我怎样才能让它实际上不修改历史记录,而只修改我执行的命令呢?
答案1
我在Unix和Linux中问过类似的问题:如何撤消命令历史记录中的更改?。
这吉尔斯给了我很好的回答说:
只要您编辑了历史记录条目但尚未按下 Enter,要返回原始条目,请反复按Ctrl+ _—
undo
命令 — 直到不再进行任何更改。您将返回原始条目。
答案2
我遇到了同样的问题,当我玩耍并努力了解发生了什么时,我刚刚弄清楚了以下情况:
如果你从history
之前输入的命令行调用在同一个当前终端会话中然后编辑它(也许删除它),但然后通过离开该(历史)命令行来中断您的编辑,例如使用箭头Down
返回到实际当前命令行的提示符,然后稍后当您退出终端时,编辑会被记录在文件中.bash_history
。
如果您在已经记录在命令行上进行编辑并中断编辑,则不会发生此行为.bash_history
如果您在启动终端会话之前
换句话说,当终端会话打开时,新输入的命令行仅保存在内存中,而不是在 中.bash_history
。您可以使用up
箭头或调用history
命令来调用它们,并且可以在会话打开时编辑它们(调用命令时history
,修改过的命令行将以星号 表示*
)。只有当您退出会话时,会话的命令才会“按原样”记录在文件中.bash_history
,从而保留您在退出会话之前对它们所做的最后编辑。
另请参阅猎鹰者 那里。