当前位置: 首页>>技术问答>>正文


使用上一个命令中的参数运行命令

, ,

问题描述

运行命令时,有时可能需要使用上一个命令中的参数运行命令。你怎么能这样做?

当然,除了使用箭头键和Del键: Del Del DelDel <new_command>

最佳解决办法

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

mkdir long_path_here/new_dir

很可能你想进入最近创建的目录。您可以使用下一个”shortcuts”执行此操作:

  • cd Esc .-型cd和压制后的Esc,然后是.(不是同时)。如果上一个命令没有参数,您将获得上一个命令本身。

  • cd !* – 在这种情况下,您将从previuos命令获取所有参数。如果上一个命令没有参数,你什么也得不到。

  • cd Alt + .-型cd和压制后的Alt.(同时)。实际上,使用这种方式并继续按下.(不释放Alt),您将从历史记录中获取每个命令的最后一个参数。如果命令没有参数,您将获得命令本身。

通常:<command> Esc .<command> !*<command> Alt + .

次佳解决办法

如果您需要上一个命令中的所有参数,或者只是最后一个参数,则有一些快捷方式。

  • 对于所有参数:<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/

第三种解决办法

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

例如,而不是无数 Del Del DelDel则只需按 Ctrl-a(跳转到该行的开始)Alt+d(删除到单词的末尾)

有关更多信息,请访问man readline并搜索Default key bindings

第四种办法

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

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

键入echo,然后输入Alt 2 Alt _将在下一个提示中给出:

$ echo 2

点击Alt 2后的”screenshot”是:

(arg: 2) echo

您可以多次重复Alt _以连续获取先前命令的n参数。

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

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2970.html,未经允许,请勿转载。