Mac的用户可能不会知道有 bash_completion 这个好东西。
Linux 上的 Geek 们很喜欢 CLI,于是发明了 Readline 和 auto completion,但是他们远远不知足,希望命令的参数也能自动完成,比如打上 ssh 然后按下 tab 就能自动提示曾经登陆过的机器,打上 tar xzvf 就能 自动提示 *.tar.gz 文件,忽略 *.tar.bz2 文件,云云
于是他们发明了 bash_completion.
这个东西在 gentoo 上是很牛X的,是 debian 开发的。当然,Mac 上默认是没有的,而且 Mac 的 bash 版本也老的可怜。
安装它只需要 port install bash-completion,然后修改下 /etc/bashrc,就可以了~
她是可以扩展的,默认安装上会带上一些很基本的命令,但是诸如 git 这些就没有了,我是从 gentoo 的源里面拖出来的,Ubuntu 里面也是有的。
重点是如何自己扩展她,加上自己的一些命令。我用一个小例子来说明。
这是一个启动 web server fastcgi 的服务脚步,第一个参数自动匹配 yaml 配置文件,简单区分开发环境和生产环境,第二个参数是命令,用来启动服务或者启动debug py shell。
很简单,看代码就好了。
然后这里是文档,接口相当简单,而且当然是基于 shell 的,所以扩展性也是无限的。
http://www.debian-administration.org/articles/317