我在 Mac OSX 上工作,所以我想我在使用 bash...?
有时我会输入一些我不想被历史记住的东西。如何删除它?
我想知道是否有一种快速的方法可以在 Ubuntu 的终端中保存命令。场景是:
问题:
我希望能够以一种简单的方式保存命令以供以后使用,而不仅仅是#
在它之前放置一个并将其放入上下键历史记录中。最好将其直接保存到寄存器或剪贴板。
我忘了说我也不想回声。
当您重新使用和编辑以前的命令时,bash 的某些实例会更改命令历史记录,而其他实例显然不会。我一直在搜索和搜索,但找不到任何说明如何防止历史记录中的命令在重用和编辑时被修改的内容。
有这样的问题这一个,但似乎说如何应对历史正在编辑。我最近才遇到一个 bash 实例,它在您重用命令时会编辑历史记录 - 我以前使用过的所有 bash shell(据我所知)都被配置为在您重用时不会更改历史记录并编辑命令。(也许我在过去 15 年左右的时间里没有适当关注我的 shell 历史......)
所以这可能是最好的问题:我可以告诉 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 时,我看到了原始的、已执行的命令。我觉得这一切都非常令人困惑、违反直觉和令人恼火。
我希望历史事情像这样工作:
只有实际执行的命令才会保存到历史记录中。
历史是不可改变的。(除非明确清除。)
有没有办法做到这一点?
编辑 - 这个问题似乎相关:Is there any way to undo a bash history modified?