Bash有没有办法回忆起上一个命令的参数?
我通常vi file.c
后跟gcc file.c
。
Bash有没有办法回忆起上一个命令的参数?
答案 0 :(得分:470)
您可以使用$_
或!$
来调用上一个命令的最后一个参数。
此外,Alt + .
可用于调用任何先前命令的最后一个参数。
答案 1 :(得分:142)
如果上一个命令有两个参数,比如
ls a.txt b.txt
你想要第一个,你可以输入
!:1
给
a.txt
或者如果你想要两者,你可以输入
!:1-2
给
a.txt b.txt
您可以将此扩展为任意数量的参数,例如:
!:10-12
答案 2 :(得分:64)
!!:n
其中n
是您想要的参数的从0开始的位置。
例如:
echo 'one' 'two'
# "one two"
echo !!:2
# "two"
!
前缀用于访问以前的命令。
其他有用的命令:
!$
- 上一个命令的最后一个参数!^
- 来自上一个命令的第一个参数(在程序/内置/脚本之后)!!
- 上一个命令(通常发音为“bang bang”)!n
- 来自n
history
!pattern
- 最新命令匹配pattern
!!:s/find/replace
- 上一个命令,将find
替换为replace
答案 3 :(得分:59)
在命令行中,您可以按 esc - 。或 alt + 。
它会循环显示您之前使用的参数。
答案 4 :(得分:28)
如果您知道特定命令的历史记录中给出的数字,您可以使用以下术语在该命令中使用任何参数。
使用以下命令从历史记录中的第三个命令中获取第二个参数,
!3:2
使用以下命令从历史记录中的第五个最后一个命令中获取第三个参数
!-5:3
使用减号,您要求它从历史记录的最后一个命令遍历。
答案 5 :(得分:15)
是的,您可以使用!$
来调用上一个命令的最后一个参数。
答案 6 :(得分:15)
!*运行一个包含所有先前参数的新命令。
ls /tmp
cd !*
#you are now in /tmp