Bang

There are 1 entries for the tag Bang

感叹号提高Bash下效率——历史扩展(bang命令)

MitchellChu 2014-06-03 Unix & Linux 编程语言

前一篇中介绍了在Bash下用快捷键来提高工作效率,而在Bash下要高效的工作,不仅仅可以从快捷键的方式来达到,Bash下还有很多其他方式,比如,使用别名,在之前的使用一些Shell下的特殊符号等,都能够一定程度的简化操作。而在Bash下还有另外一类——历史扩展,如果应用的当也能很大程度提高操作效率,嗯!Linux下你要放这么些代码,也显得很酷! 历史扩展(History Expansion)又被称为Bang(!)命令1,历史扩展是bash将历史命令转换到可执行命令的过程。Bash下的History库提供了一个与csh下历史扩展类似的历史扩展功能。历史扩展中操作历史命令一般有两个部分: 首先要从历史命令中找出相对应的命令,被选择到的命令我们称作为Event(条目),比如上面的Bang Bang(!!),就是选择最后一条命令; 选择选定行的部分或全部文本以包含到当前行中。要操作的条目(Event)Bash将其拆分成了Words(词),命令中的Words是靠空格来分割的,我们就可以使用修饰符(Modifiers)来调整Words以符合我们的要求。注意:Words并不是英文单词,而是一个字符序列而已。 例子: cat /tmp/cat.cat.txt ##这个是cat出cat.cat.txt的内容 !:0 !*:gs/cat./echo. ##获取命令,参数中的cat.换成echo. ##变成/tmp/echo.echo.txt内容. ## 第二个命令中: ##我们首先是选出命令!!(!:0可以写成!!:0,!*同样可以写成!!*) ##有了命令之后我们选择第二步 ##利用0,选择出词(!:0选择出来的是cat) ##第三步是对词进行操作,这里是!*后面对参数进行了字符替换。 ##最后变成完成的命令了: ## cat /tmp/echo.echo.txt 条目标志符(Event Designators)条目标志符是一个到历史列表内一个命令行实体的引用,除非是绝对引用,不然条目的引用是相对历史列表中当前位置的。 条目标志符 条目标志符说明 ! ...

关于博主

  一枚成分复杂的网络IT分子,属于互联网行业分类中的杂牌军。