Autocompletar não funciona enquanto logado como root

18

Acabei de encontrar algo que está realmente me incomodando. O preenchimento automático no Ubuntu funciona como um encanto, mas quando eu faço login como root, por exemplo, su recebo tab autocompletion apenas por vezes.

Por que funciona assim? Alguém pode mudar isso?

    
por Patryk 12.02.2012 / 19:34

5 respostas

36

Verifique seu arquivo /root/.bashrc para essas linhas

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

Se eles não existirem, adicione-os ao final do arquivo usando o seu editor de texto favorito.

    
por Bruno Pereira 27.06.2012 / 13:00
7

Você não mencionou qual versão do Ubuntu você usa.

  • Verifique se você tem o pacote bash-completion instalado:

    sudo apt-get install bash-completion
    
  • A minha funciona se eu fizer login usando: sudo -i

por Savvas Radevic 12.02.2012 / 21:24
3

Para o Ubuntu 13.10, verifique /etc/bash.bashrc para

# 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

Eles podem ser comentados. Descomentá-los funciona.

    
por dbtek 18.11.2013 / 09:42
0

Descobriu que isso funcionou (semelhante às respostas acima, mas com uma reviravolta)

O arquivo que precisa ser editado (pelo menos no meu caso com 12.04) foi /root/.bashrc. Isso faz sentido no meu caso, dado que o meu usuário regular foi auto completando muito bem, mas a minha raiz não era.

De qualquer forma, no referido arquivo, encontrei todo o código necessário, mas foi comentado:

# 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

Apenas não comentou:

# 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

Salvo, e funcionou bem.

Espero que isso ajude alguém.

    
por neanderslob 13.12.2013 / 01:59
0

No Linux Mint 18 (baseado no Xenial), você precisa editar seu bashrc:

sudo nano /etc/bash.bashrc

e comente (remova o # na frente de cada linha) nesta seção:

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

Isso é tudo.

    
por le hollandais volant 15.08.2016 / 19:10