bash-completion,自动补全并不是ubuntu的专利
老夫以前发现在ubuntu下用apt-get安装软件的时候输入完apt-get install 和部分软件名后按tab键,可以把软件名补全,后来在centos下用yum却没这个功能,以为这是debian系特有的,结果最近在安装过debian后才发现,debian也没有这个补全功能,今天在CU逛得时候看有人提到这么个功能,这才发现,原来是bash-completion这东东在作怪。
呃,freebsd默认使用的shell连自动补全功能都没,还是bash比较爽,还能自动补全,但也仅限于命令和路径,bash-completion呢,是对bash补全功能的一个增强,增加了对参数和包名的补全,很爽哦,下面就来看一下。
默认debian是没有安装bash-completion,例如在/root目录下,输入apt-g,按tab,apt-get补全了吧,再按tab呢,会显示/root目录下的所有文件名,接下来aptitude install bash-completion安装bash-completion,安装完/etc目录会出现一个bash_completion文件,再vi /etc/bash.bashrc,大概32行内容如下
#if [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
#fi
把这三行的#删除,登出再登录试试看,输入apt-get 后按tab,现在按tab显示的是参数而不是文件名了,apt-get install axe再按tab,下面就把axe开头的包都显示出来了,爽。
呃,也可以改用户目录的.bashrc,添加一行source /etc/bash_completion就OK了。