我刚刚遇到了一件让我很困扰的事情。ubuntu 上的自动完成功能运行良好,但当我以 root 身份登录时,例如,只有有时才能su
获得自动完成功能。tab
为什么会这样?能改变这种情况吗?
答案1
检查/root/.bashrc
文件中是否存在以下行
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
如果它们不存在,请使用您最喜欢的文本编辑器将它们添加到文件末尾。
请注意,自动完成功能将在退出并重新登录后开始工作!
答案2
您还没有提到您使用的是哪个 Ubuntu 版本。
检查您是否
bash-completion
安装了该包:sudo apt-get install bash-completion
如果我使用以下方式登录,我的工作正常:
sudo -i
答案3
对于 Ubuntu 13.10,请/etc/bash.bashrc
检查
# enable bash completion in interactive shells
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
它们可能被注释掉了。取消注释即可。
答案4
在 Linux Mint 18(基于 Xenial)中,你必须编辑你的 bashrc :
sudo nano /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
就这样。