bash 預設的自動補齊功能只會補命令跟檔名而已,假如要 apt-get install openjdk-7-jre
的話只打了 openjdk-7-
按下 tab 是不會有效果的…
透過 bash-completion 這個套件的話就可以支援非常多常用工具的命令自動補齊,bash-completion 其實就是一堆 bash shell scripts 寫出來的自動補齊功能,基於 Ubuntu 的 GNU/Linux 分支可能都有內建了,如果沒有,手動安裝的方式也很簡單:
Debian/Ubuntu 系列用
sudo apt-get install bash-completion
如果是用 yum 來管套件的Linux distro (CentOS/Fedora/RHEL)
sudo yum install bash-completion
FreeBSD(新的套件管理系統請使用 pkg install
取代 pkg_add
):
sudo pkg_add bash-completion
想知道 bash-completion 到底支援了多少命令,可以看一下他的 filelist (以 Debian sid 套件為例, 應該都大同小異):
http://packages.debian.org/sid/all/bash-completion/filelist
另外要注意的是,不是每個 distribution 裝起來的 bash-completion 都會幫你處理好自動取用 bash-completion 這件事,按照不同的系統可能要手動使用類似這樣的指令:
source /usr/local/share/bash-completion/bash_completion.sh
通常是會加在 bashrc 底下,system admin 的話加入系統預設的 bashrc 也是不錯的做法