当您忘记命令开头的sudo时,此功能非常有用,!!
就像上一个命令的别名一样。范例:
$ mv /very/long/path/for/a/protected/sensible/file/caution.h .
(...) Permission denined
$ sudo !!
sudo mv /very/long/path/for(...) .
[sudo] password :
- 我们怎么称呼这个双重
!!
把戏?因此,通过互联网进行研究非常困难。 - 它是如何工作的 ?我怀疑与history命令的链接。
- 它在哪里定义?我可以自己定义其他人吗?
编辑:一些有趣的事件指示符
!!:*
它引用上一个命令的参数。用例:
cat /a/file/to/read/with/long/path
nano !!:*
:p
仅打印命令而不执行它,您必须将其放在事件指示符的末尾。
$ !-5:p
sudo rm /etc/fstab -f
这里更多。
这是历史扩展的一种特殊情况,在这种情况下,shell尝试
—
chepner
!
在当前shell的历史列表中将单词扩展为匹配的命令。!!
是一种特殊情况,等效于!-1
,其中n
后面的负数表示!
前n个命令。
@Costas,更有用的方法是,阅读
—
通配符
LESS='+/^HISTORY EXPANSION' man bash
。
man history