是否有一个快捷方式可以使用上一个命令的参数重新运行命令(不是 cd、ls 或 echo)

是否有一个快捷方式可以使用上一个命令的参数重新运行命令(不是 cd、ls 或 echo)

使用如下内容搜索传递的日志文件:

/路径/到/日志文件 | grep -iEw '此处某些 ip 地址|此处对应的 mac 地址'

这给了我到目前为止所有通过的日志行,这样我就可以看到已经发生了什么。现在我也想看看发生了什么所以我需要交换cattail -f我这个:

尾部-f/路径/到/日志文件 | grep -iEw '此处某些 ip 地址|此处对应的 mac 地址'

答案1

您可以使用!!:*来引用除最后一个命令行的第 0 个单词之外的所有单词。

!!指前一个命令,:将事件规范与字指示符分开,*指除第零个字之外的所有字。

这是来自HISTORY EXPANSIONbash(1) 的部分。

wieland@host in ~» cat foo | grep bar
bar
wieland@host in ~» tail -f !!:*
tail -f foo | grep bar
bar

您还可以使用快速替换来^string1^string2^重复最后一个命令,替换string1string2

wieland@host in ~» cat foo | grep bar
bar
wieland@host in ~» ^cat^tail -f
tail -f foo | grep bar
bar

答案2

  1. UpCtrl+P调出上一行。如果您想要之前的行等,请重复。
  2. HomeCtrl+A转到行首。
  3. Alt+D删除光标下的单词,即要替换的命令。
  4. 键入您现在要运行的命令。
  5. Enter运行命令。

相关内容