问题

Debian 默认的 bash 自动补全功能不完整——按 Tab 只能补全文件名和命令名,无法补全 apt-get 的子命令、systemctl 的服务名等。

原因

bash_completion 包其实已经预装了,只是默认被注释掉了。

解决方法

方法一:全局生效(需要 root)

编辑 /etc/bash.bashrc,找到被注释掉的这段代码:

# if ! shopt -oq posix; then
#   if [ -f /usr/share/bash-completion/bash_completion ]; then
#      . /usr/share/bash-completion/bash_completion
#   elif [ -f /etc/bash_completion ]; then
#      . /etc/bash_completion
#   fi
# fi

去掉每行前面的 #,保存,重新登录即可。

方法二:仅当前用户

把上面取消注释后的代码段追加到 ~/.bashrc 末尾,然后执行:

source ~/.bashrc

验证

输入 apt-get in 然后按 Tab,应该能自动补全为 apt-get install