我知道Esc +。给出最后一个命令的最后一个参数。
但我对最后一个命令的第一个参数感兴趣。 是否有一个键绑定来这样做?
在同一行中,是否有从最后一个命令中获取第n个参数的通用方法? 我知道在bash脚本中,您可以使用$0,$1等,但这些在命令行上不起作用。
同样,如果遍历前面命令的第0个参数,就像我们连续按Esc +对最后一个参数所做的那样,会怎么样呢?
我知道Esc +。给出最后一个命令的最后一个参数。
但我对最后一个命令的第一个参数感兴趣。 是否有一个键绑定来这样做?
在同一行中,是否有从最后一个命令中获取第n个参数的通用方法? 我知道在bash脚本中,您可以使用$0,$1等,但这些在命令行上不起作用。
同样,如果遍历前面命令的第0个参数,就像我们连续按Esc +对最后一个参数所做的那样,会怎么样呢?
当前回答
^将得到第一个参数,!$将得到最后一个参数,!:n将得到第n个元素。
其他回答
要使用第一个参数,可以使用!^或!:1
例子:
$ echo a b c d e
a b c d e
$ echo !^
echo a
a
$ echo a b c d e
a b c d e
$ echo !:1
echo a
a
既然你的问题是关于使用其他论点的,这里有一些有用的论点:
!^ first argument
!$ last argument
!* all arguments
!:2 second argument
!:2-3 second to third arguments
!:2-$ second to last arguments
!:2* second to last arguments
!:2- second to next to last arguments
!:0 the command
!! repeat the previous line
前四种形式更常用。形式!:2-有点违反直觉,因为它不包括最后一个参数。
您还可以从历史记录中的任何命令获取参数! $ echo a b c d f g A b c d e f g $ echo build/libs/jenkins-utils-all-0.1.jar 建立/ libs / jenkins-utils-all-0.1.jar $ history | tail -5 601 echo build/libs/jenkins-utils-all-0.1.jar 602历史|尾巴-10 603回声a b c d e f g 604 echo build/libs/jenkins-utils-all-0.1.jar 605历史|尾巴-5 $ echo !-3:4 回声d d $ echo !604:1 构建/ libs / jenkins-utils-all-0.1.jar回响 建立/ libs / jenkins-utils-all-0.1.jar
^可能是第一个参数的命令。我不确定是否有办法得到第n个。
要粘贴第一个参数,请按住Alt键,当它向下时,按下'1'键和'。的关键。
要粘贴第n个参数,将上面的'1'键替换为相应的数字键。
如果这不起作用,您的终端模拟器可能在它到达shell之前捕获Alt键。一些终端(xfce4-terminal)允许关闭配置文件中的“Alt-”快捷键。
这要归功于Jonas Eberle,我从他的评论中找到了另一个答案。
^将得到第一个参数,!$将得到最后一个参数,!:n将得到第n个元素。