使用上一个命令中的参数运行命令
运行命令时,有时可能需要使用上一个命令中的参数运行命令。 你怎么能这样做?
当然,除了使用箭头键和Del键: ↑ ←←← … ← → Del Del Del … Del 。
例如,如果您运行此命令:
mkdir long_path_here/new_dir
很可能你想进入最近创建的目录。 您可以使用下一个“快捷方式”执行此操作:
-
cd
Esc 。 – 键入cd
并按Esc后跟。 (不是在同一时间)。 如果上一个命令没有参数,您将获得上一个命令本身。 -
cd !*
– 在这种情况下,您将从previuos命令获取所有参数。 如果上一个命令没有参数,你将什么也得不到。 -
cd
Alt + 。 – 键入cd
并按Alt和。 (在同一时间)。 事实上,使用这种方式并继续按下。 (不释放Alt ),您将从历史记录中获取每个命令的最后一个参数。 如果命令没有参数,您将获得命令本身。
一般来说:
Esc 。 或
或
Alt + 。 。
如果您想要上一个命令中的所有参数,或者只是最后一个参数,则有一些快捷方式。
- 对于所有参数:
!* - 对于最后一个参数:
!$
例子:
ls foo/ bar/ ls !* # Gives the results of ls foo/ bar/ ls foo/ bar/ ls !$ # Gives the results of ls bar/
如果你想从上一个命令的参数列表中得到一个参数,你可以使用
例:
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 Del … Del你可以按↑ 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后的“屏幕截图”是:
(arg: 2) echo
您可以多次重复Alt _以连续获得先前命令的第n
个参数。
另一个有用的想法是定义别名r="fc -s"
。 然后,你可以做命令替换:
$ echo 1 1 $ r echo=history history 1 27755 history 1