从历史记录加载命令但尚未执行,所以我可以修改它

从历史记录加载命令但尚未执行,所以我可以修改它

在 bash 中,我知道如何

history |grep foo

这将为我提供历史记录中包含 foo 的编号命令列表。如果我想使用不同的参数运行这些命令之一,我可以使用鼠标复制粘贴。我不想重复确切的命令。我想在提示符下加载它并更改一些内容,然后执行它。有办法这样做吗?向上箭头并不总是适合我。

答案1

如果您使用的是 Bash,则可以启用命令histverify,然后调用命令,!后跟历史记录中的命令编号:

shopt -s histverify

另一个有趣的方法是使用fc

fc 200

会将历史记录中的第 200 个命令加载到编辑器中。然后,您可以随意编辑该命令,当您退出编辑器时,该命令将被执行。

其他 shell(例如 Zsh)也具有类似的功能。

Bash 手册中有关历史交互的章节了解详情。

相关内容