Je viens de découvrir quelque chose qui me dérange vraiment. La complétion automatique sur ubuntu fonctionne comme un charme, mais lorsque je me connecte en tant que root, par exemple. su
J'obtiens tab
l'auto-complétion seulement parfois.
Pourquoi ça marche comme ça? Peut-on changer cela?
Vérifiez votre fichier /root/.bashrc
pour ces lignes
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
S'ils n'existent pas, ajoutez-les à la fin du fichier en utilisant votre éditeur de texte préféré.
Vous n'avez pas mentionné la version d'Ubuntu que vous utilisez.
Vérifiez si le package bash-completion
est installé:
Sudo apt-get install bash-completion
Le mien fonctionne si je me connecte avec: Sudo -i
Pour Ubuntu 13.10, vérifiez /etc/bash.bashrc
pour
# 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
Ils pourraient être commentés. Les commenter fonctionne.
Dans Linux Mint 18 (basé sur Xenial), vous devez modifier votre base de données:
Sudo nano /etc/bash.bashrc
et commentez (supprimez le #
devant chaque ligne) cette section:
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
C'est tout.
Constaté que cela fonctionnait (semblable aux réponses ci-dessus mais avec une torsion)
Le fichier à éditer (du moins dans mon cas avec 12.04) était /root/.bashrc. Cela a du sens dans mon cas, étant donné que mon utilisateur habituel complétait automatiquement bien, mais que ma racine ne l’était pas.
Quoi qu'il en soit, dans ledit fichier, j'ai trouvé tout le code nécessaire mais il a été commenté:
# 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
Juste un commenté:
# 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
Sauvé, et ça a bien fonctionné.
J'espère que ça aide quelqu'un.