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.
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?
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.
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
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.
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.
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.
Tags bash auto-completion