Shell命令技巧 - 双感叹号(事件引用符)

HP-UX、Linux、Tru64 UNIX、NonStop、OpenVMS、Windows Server等,数据中心、虚拟化方案等

版主: xyevolve

版面规则
1. 本版是定位于惠普软件系统及解决方案的技术讨论区。
2. 本版鼓励发帖共同讨论技术问题,不鼓励站内信件私下交流,独知知不如众知知。
3. 本版允许转贴或引用他人的作品,但必须声明原作者信息。
4. 本版禁止发表出售、求购、或其他非技术讨论等帖子。
5. 本版禁止灌水,包括但不限于任何与所讨论主题无关的回复,无意义字符,直接复制其他回复等。
6. 本站附件禁止用于商业目的,请在下载后24小时内删除,本站不对其造成的结果负任何责任。
回复
admin
网站编辑
帖子: 767
注册时间: 2010年 12月 22日 04:06 星期三

Shell命令技巧 - 双感叹号(事件引用符)

帖子 admin » 2012年 4月 13日 12:53 星期五

以sudo运行前一条命令

代码: 全选

$ sudo !!
大家应该都知sudo,不解释。
但通常出现的情况是,敲完命令执行后报错才发现忘了sudo。
这时候,新手用户就会:按上箭头,按左箭头,盯着光标回到开始处,输入sudo,回车;
高手用户就蛋定多了,按Ctrl-p,按Ctrl-a,输入sudo,回车。

这里介绍这个是天外飞仙级别的,对,就直接sudo !!。
当然这几种解决方式效果是完全一样的。

两个感叹号其实是bash的一个特性,称为事件引用符(event designators)。

!!其实相当于!-1,引用前一条命令,当然也可以!-2,!-50。

默认情况下bash会在~/.bash_history文件内记录用户执行的最近500条命令,history命令可以显示这些命令。

关于事件引用符的更多用法可以深入阅读The Definitive Guide to Bash Command Line History

回复