运行命令时,有时可能需要使用上一条命令的参数来运行下一条命令。该怎么做呢?
当然,除了使用箭头键和Del键:↑←←←......←→→DelDelDel之外Del<new_command>
。
答案1
例如,如果您运行此命令:
mkdir long_path_here/new_dir
您很可能想要进入最近创建的目录。您可以使用以下“快捷方式”执行此操作:
cd
Esc.- 输入cd
and 后按下,Esc然后按.(不能同时按下)。如果前一个命令没有参数,您将获得前一个命令本身。cd !*
- 在这种情况下,您将获得上一个命令的所有参数。如果上一个命令没有参数,您将什么也得不到。cd
Alt+ .- 按下cd
and 后输入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
输入将在下一个提示符echo
下Alt2Alt_给出以下内容:
$ echo 2
点击之后的“截图”Alt2是:
(arg: 2) echo
您可以重复Alt_多次以n
连续获取前面命令的第个参数。
另一个有用的想法是定义别名r="fc -s"
。然后,你可以进行命令替换:
$ echo 1
1
$ r echo=history
history 1
27755 history 1