使用上一条命令的参数运行一条命令

使用上一条命令的参数运行一条命令

运行命令时,有时可能需要使用上一条命令的参数来运行下一条命令。该怎么做呢?

当然,除了使用箭头键和Del键:......DelDelDel之外Del<new_command>

答案1

例如,如果您运行此命令:

mkdir long_path_here/new_dir

您很可能想要进入最近创建的目录。您可以使用以下“快捷方式”执行此操作:

  • cd Esc.- 输入cdand 后按下,Esc然后按.(不能同时按下)。如果前一个命令没有参数,您将获得前一个命令本身。
  • cd !*- 在这种情况下,您将获得上一个命令的所有参数。如果上一个命令没有参数,您将什么也得不到。
  • cd Alt+ .- 按下cdand 后输入Altand .(同时按下)。事实上,使用这种方式并继续按下.(不释放Alt),您将从历史记录中获取每个命令的最后一个参数。如果命令没有参数,您将获取命令本身。

一般来说:<command> Esc.<command> !*<command> Alt+ .

答案2

如果您想要前一个命令的所有参数,或者仅想要最后一个参数,那么可以使用一些快捷方式。

  • 对于所有参数:<command> !*
  • 仅对于最后一个参数: <command> !$

例子:

ls foo/ bar/
ls !* # Gives the results of ls foo/ bar/

ls foo/ bar/
ls !$ # Gives the results of ls bar/

如果你想要从上一个命令的参数列表中选择一个参数,则可以使用<command> !!:<argNumber>

例子:

ls foo/ bar/ baz/
ls !!:2 # Gives the results of ls bar/
ls foo/ bar/ baz/
ls !!:1 # Gives the results of ls foo/

答案3

提到!*!$一件好事,但是当您需要进行一些编辑时,readline 快捷方式会有所帮助!

例如,您不必输入无数个... DelDelDel...Del您只需按 Ctrl-a(跳到行首) Alt+d(删除到单词末尾)

欲了解更多信息man readline,请搜索Default key bindings

答案4

n要从上一个命令中获取第th 个参数,请键入Alt+ n+ Alt_。例如,之后:

$ echo 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10

输入将在下一个提示符echoAlt2Alt_给出以下内容:

$ echo 2

点击之后的“截图”Alt2是:

(arg: 2) echo

您可以重复Alt_多次以n连续获取前面命令的第个参数。

另一个有用的想法是定义别名r="fc -s"。然后,你可以进行命令替换:

$ echo 1
1
$ r echo=history
history 1
27755  history 1

相关内容