Автозаполнение не работает при регистрации в качестве пользователя root

16

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

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

задан Patryk 12.02.2012 в 19:34
источник

5 ответов

33

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

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

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

    
ответ дан Bruno Pereira 27.06.2012 в 13:00
источник
6

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

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

    sudo apt-get install bash-completion
    
  • Моя работа работает, если я использую: sudo -i

ответ дан Savvas Radevic 12.02.2012 в 21:24
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

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

    
ответ дан dbtek 18.11.2013 в 09:42
0

Нашел, что это сработало (похоже на ответы выше, но с завихрением)

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

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

# 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

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

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

    
ответ дан neanderslob 13.12.2013 в 01:59
0

В 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

Вот и все.

    
ответ дан le hollandais volant 15.08.2016 в 19:10