公司同事用的Ubuntu系统,自动补全功能不错,但是本人的CentOS 6.6系统使用sudo的时候就不能自动补全了,git命令也不能自动补全。
网上搜索一番解决方法如下。
一 git不能补全问题
下载git源码
$ git clone https://www.kernel.org/pub/scm/git/
找到git-completion.bash文件拷贝到 ~/目录下
$ sudo cp contrib/completion/git-completion.bash ~/.git-completion.bash编辑 /etc/bashrc 文件 在最后加入:source /home/yourname/.git-completion.bash
或者
$ sudo cp contrib/completion/git-completion.bash /etc/bash_completion.d/source /etc/bash_completion.d/git-completion.bash
得到git-completion.bash的另一种方法:
sudo find / -name 'git-completion*'
/usr/share/doc/git-1.7.1/contrib/completion/git-completion.bash
所以Linux系统里面是有一份文件的,直接拷贝就可以了。
二 自动补全。这里说的补全,不只是系统默认的补全路径跟文件名的补全功能,而是命令的参数的补全,有了这个补全之后,在Bash里面几乎能补全任何可以补全的补全。
RedHat系的默认没有安装,需要安装一个bash-completion,就可以实现了。当你sudo yum install xxx的时候,这些单词中的任何一个你都补全,输入到yum ins然后按Tab键的时候再按Tab就可以补全install。
安装之前,在/etc/bash_completion.d/目录下执行ls:
git rpmlint
createrepo.bash gvfs-bash-completion.sh scl.bash
dbus-bash-completion.sh perf subversion
dkms pk-completion.bash yum.bash
gdbus-bash-completion.sh rpmdevtools.bash-completion yum-utils.bash
安装:
sudo yum install bash-completion
在查看/etc/bash_completion.d/下面的文件:
ant gvfs-bash-completion.sh rcs
autoconf gzip redefine_filedir
automake iconv rfkill
bash-builtins ifupdown rpcdebug
bind-utils info rpm
brctl iproute2 rpmdevtools.bash-completion
bumblebee iptables rpmlint
bzip2 java rsync
chkconfig lsof samba
configure lvm scl.bash
coreutils lzma service
cpan2dist make sh
cpio man shadow
createrepo.bash mdadm smartctl
crontab minicom sqlite3
cryptsetup module-init-tools ssh
cups mysqladmin strace
cvs net-tools subversion
dbus-bash-completion.sh nmap tar
dd ntpdate tcpdump
dhclient open-iscsi util-linux
dkms openssl wireless-tools
dvd+rw-tools perf wodim
e2fsprogs perl wvdial
findutils pk-completion.bash xmllint
fuse pkg-config xmlwf
gcc pm-utils xorg-x11-server-utils
gdb postfix xsltproc
gdbus-bash-completion.sh postgresql xz
genisoimage procps yp-tools
getent python yum.bash
git qdbus yum-utils.bash
gpg2 quota-tools
这时候就可以实现自动补全功能了。