在 bash 中,我知道如何
history |grep foo
这将为我提供历史记录中包含 foo 的编号命令列表。如果我想使用不同的参数运行这些命令之一,我可以使用鼠标复制粘贴。我不想重复确切的命令。我想在提示符下加载它并更改一些内容,然后执行它。有办法这样做吗?向上箭头并不总是适合我。
答案1
如果您使用的是 Bash,则可以启用命令histverify
,然后调用命令,!
后跟历史记录中的命令编号:
shopt -s histverify
另一个有趣的方法是使用fc
:
fc 200
会将历史记录中的第 200 个命令加载到编辑器中。然后,您可以随意编辑该命令,当您退出编辑器时,该命令将被执行。
其他 shell(例如 Zsh)也具有类似的功能。
看Bash 手册中有关历史交互的章节了解详情。