页面

2007年5月28日星期一

关于shell的历史命令使用

看了 懒惰的程序员: bash history 谈论的bash历史命令使用和一些环境设置,我也说一些我的心得。我主要是使用AIX 上面的ksh多一点,然后在学习AIX 的时候,很多文章推荐环境变量里 set -o vi,就是打开使用vi作为命令行的编辑器。这个大部分shell应该都支持的。

打开这个功能后,history里面的命令都会置于一个随时可以打开的文件一样。在命令提示符下按下Esc健后就进入VI 模式了。打 / 就可以进行搜索,hjkl控制上下左右,寻找到你使用的命令后,使用vi的常用编辑命令进行编辑,非常方便快捷,一切如同在VI里面一样。

我个人觉得很实用,不知道大家有没有用过,或者有其他更便捷的方法。另外我发现这个设置的一个不便之处就是,在bash里会在使用箭头健的时候会有点小问题,我记不起来是怎么了,反正觉得和箭头键有点小冲突的样子。不过如果使用了vi的话,hjkl就可以代替箭头了。

还有在AIX的使用学习中,学会另外一个快速重复命令的设置,一个别名 alias r='fc -e -' ,在AIX 的 ksh 是默认有这个 r 命令的。它的作用就是,重复最后一次输入的命令。后面加参数的话,就重复以参数开头的最近一条命令。从这里看出这个命令还是一定风险的。下面是举例,从例子里就可以看出这个命令的好处。
比如,你在shell里分别输入了
#ls
#ls -al
#df
三个命令(一次一个,这里省略了结果输出)。
此时在#下面打r,将重复 df这个命令。打r ls(r后面一个空格),重复的就是ls -al这个命令。没有任何确认和提示,直接执行。所以很方便,也很有风险。特别是重复rm这样的命令的时候,万一的在/ 目录下重复了rm -rf *,那只有哭了....

没有评论:

发表评论