以 root 身份登录时自动完成功能不起作用

以 root 身份登录时自动完成功能不起作用

我刚刚遇到了一件让我很困扰的事情。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

就这样。

相关内容