我通常使用csh
(实际上我的/bin/csh链接到tcsh,这是csh的改进版),并经常使用!$
来引用最后一个命令的最后一个参数。
但是有时候我想使用前一个命令的最后两个参数。我该怎么办?我猜我可以访问任何之前命令的参数。
我已经阅读了如何调用上一个bash命令的参数?,但没有找到答案。 我们如何引用前一个命令的倒数第二个参数?
例如,如果我输入echo tiger rabbit,如何在下一个命令中引用tiger? csh的答案最好,但我也很好奇bash的情况。
我通常使用csh
(实际上我的/bin/csh链接到tcsh,这是csh的改进版),并经常使用!$
来引用最后一个命令的最后一个参数。
但是有时候我想使用前一个命令的最后两个参数。我该怎么办?我猜我可以访问任何之前命令的参数。
我已经阅读了如何调用上一个bash命令的参数?,但没有找到答案。 我们如何引用前一个命令的倒数第二个参数?
例如,如果我输入echo tiger rabbit,如何在下一个命令中引用tiger? csh的答案最好,但我也很好奇bash的情况。
使用历史命令扩展,您可以从历史记录中选择特定的命令,按原样执行它或根据需要修改并执行它。 ! 开始历史命令扩展。
- !! 重复上一个命令
- !10 重复历史记录中的第10个命令
- !-2 重复历史记录中倒数第2个命令
- !string 重复以“string”开头的命令
- !?string 重复包含单词“string”的命令
- ^str1^str2^ 用 str2 替换前一个命令中的 str1 并执行它
- !!:$ 获取前一个命令的最后一个参数。
!string:n 获取以“string”开头的命令中的第n个参数。
!^ 前一个命令的第一个参数
- !$ 前一个命令的最后一个参数
- !* 前一个命令的所有参数
- !:2 前一个命令的第二个参数
- !:2-3 前一个命令的第二到第三个参数
- !:2-$ 前一个命令的第二个到最后一个参数
- !:2* 前一个命令的第二个到最后一个参数
- !:2- 前一个命令的第二个到倒数第二个参数
- !:0 命令本身
最后但并非最不重要的,我也建议您按下 Alt + .
以访问您输入的任何先前命令的最后一个参数。
ls DA DA
,我如何通过在先前的命令中将 DA 替换为 DE 来运行 ls DE DE
?^DA^DE^
仅替换第一个,使其变为 ls DE DA
。 - Chan Kim