如何访问历史记录中最后一个命令的第二个参数?

如何访问历史记录中最后一个命令的第二个参数?

我开始学习一些正则表达式,因此我反复使用这个命令:

grep pattern /usr/share/dict/american-english 

只有图案部分发生变化,所以我必须写很长的表达式”/usr/share/dict/美国英语“ 一次又一次。

有人评论说,可以通过键入神秘的字符组合而不是完整的表达式来从命令历史记录中扩展命令的参数。你能告诉我那些神秘的字符组合吗?

答案1

您可以使用<M-.>(或者<Esc>.如果您的 Meta 键用于其他用途),即 Meta-dot(或 <esc> 点)(其中 Meta 通常是 Alt 键)来调用上一个命令的最后一个参数。所以,首先你要输入

$ grep foo /usr/share/dict/american-english

然后如果你想 grep 查找其他内容,你可以输入

$ grep bar

输入空格后Esc.(即先按退出键,然后按句点键):

$ grep bar /usr/share/dict/american-english

您还可以使用以下任一方法:

$ grep bar !:2
$ grep bar !$

其中!:2!$分别表示“第二个参数”和“最后一个参数”。

答案2

一般来说(使用 Bash) <Esc> N <Esc> .会将前一个命令中的第 N 个参数调用到当前命令行中(其中 N 是从 0 开始的)。

对于最后一个命令的第二个参数,这将是:

<Esc> 1 <Esc> .

如果你想要第三个参数,那么

<Esc> 2 <Esc> .

... 等等。

正如其他人提到的,如果您想要最后的来自上一个命令的参数,有一个特定的快捷方式:

<Esc> .

相关内容