有没有办法在命令历史记录中的 bash 命令内部进行搜索和替换?

有没有办法在命令历史记录中的 bash 命令内部进行搜索和替换?

举例来说,我的命令行历史记录中有以下内容:

systemctl status puppet.service

我想重新执行它并status更改为start

systemctl start puppet.service

有没有办法可以%s/tus/art/g使用键盘快捷键之类的?

答案1

您可以使用以下快捷方式重新输入最后一个命令:

!!

然后你可以用以下命令进行就地替换:

:s/from/to

把它们放在一起就变成:

!!:s/from/to/

可以引用以前的数字命令!-n,并且也会发生替换:

!-1:s/from/to/

如果您想使用字符串引用命令,则另一个有用的快捷方式:

!?cmd?:s/from/to

在你的情况下变成:

!?systemctl?:s/tus/art/g

相关内容