Автозаполнение не работает при входе в систему как root

Я только что столкнулся с чем-то, что действительно беспокоит меня. Автозаполнение в Ubuntu работает как чудо, но когда я вхожу как root, например su Я получаю tab автодополнение только иногда.

Почему это так работает? Можно ли это изменить?

23
задан 13 December 2013 в 05:07

5 ответов

В 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

Вот и все.

0
ответ дан 13 December 2013 в 05:07

Вы не упомянули, какую версию Ubuntu Вы используете.

  • Проверьте, имеете ли Вы bash-completion пакет установил:

    sudo apt-get install bash-completion
    
  • Шахта работает, если я вхожу в использование: sudo -i

7
ответ дан 13 December 2013 в 05:07

Для 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

Они могут быть прокомментированы. Без комментариев их работы.

0
ответ дан 13 December 2013 в 05:07

Проверьте ваш файл /root/.bashrc на наличие этих строк

if [ -f /etc/bash_completion ]; then
  . /etc/bash_completion
fi

Если они не существуют, добавьте их в конец файла, используя ваш любимый текстовый редактор.

0
ответ дан 13 December 2013 в 05:07

Обнаружил, что это сработало (похоже на ответы выше, но с изюминкой)

Файл, который нужно отредактировать (по крайней мере, в моем случае с 12.04), был /root/.bashrc. Это имеет смысл в моем случае, учитывая, что мой обычный пользователь просто отлично выполнял автозаполнение, но мой root не был.

В любом случае в указанном файле я нашел весь необходимый код, но он был закомментирован:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    #. /etc/bash_completion
#fi

Просто оставил комментарий:

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

Сохранено, и оно работал просто отлично.

Надеюсь, это кому-нибудь поможет.

0
ответ дан 13 December 2013 в 05:07

Другие вопросы по тегам:

Похожие вопросы: