L'auto-completion 2) est un outil pour gagner en rapidité lorsque vous tapez des commandes dans un terminal ou une console. Il sera également un outil de sécurité indispensable pour rédiger des lignes de commande sans se tromper !
Par exemple, dans un terminal, comment accéder à son répertoire personnel. Le répertoire personnel d'un utilisateur est habituellement dans le répertoire /home
monté dans le système.
Ouvrir le terminal,
puis taper une commande, mettons ls -l
voir Commande Linux : ls et débuter la complétion avec /ho ainsi :
ls -l /ho
taper sur la touche Tab ⇆ du clavier et le complètement vers le répertoire /home/
se réalise. Nous obtenons la ligne :
ls -l /home/
Maintenant, imaginons que nous ne nous souvenons plus vraiment de notre pseudo user
sur ce pc…
Il suffit maintenant de taper DEUX FOIS sur la touche Tab ⇆ du clavier, et une liste des possibilités pour continuer nous est offerte avec tous les choix possibles, il suffit alors d'ajouter une ou quelques lettres pour indiquer ce que l'on cherche, taper sur la tabulation et le complètement se fera.
Si la tabulation n'indique plus rien sans nous faire parvenir à ce que l'on souhaite, c'est qu'on a ajouté ou omis un caractère, l'autocompletion comme tout ce qui est informatique n'est qu'un calculateur, pas un divinateur, qu'on se le dise !
L'essayer, c'est l'adopter !
Sous Debian Jessie, il y a une prise en charge d'origine grâce au paquet util-linux qui est installé d'office. Cette prise en charge première peut être améliorée en installant un autre paquet : bash-completion.
Installation du paquet bash-completion:
apt-get update && apt-get install bash-completion
Il se peut qu'il vous faille configurer le fichier /etc/bash.bashrc . Dans ce cas, ouvrir un éditeur de texte, par exemple nano:
nano /etc/bash.bashrc
Rechercher la ligne # enable bash completion in interactive shell et supprimer les dièses (#) sur la portion de code après cette ligne jusqu'au dernier fi
. Ce qui doit donner au final :
# 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
Ctrl+O puis ↵ Entrée puis Ctrl+X
# 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 ! 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
Lorsque vous écrivez une commande dans un terminal, une astuce bien pratique consiste à utiliser la touche Tab ⇆ (tabulation de votre clavier) pour auto-compléter le chemin du fichier.
Au lieu de taper le nom du fichier au complet, on tape seulement les premières lettres puis la touche de tabulation 3).
Je veux, par exemple, taper la ligne :
ls -l martin/documents/
Pour ce faire, après ls -l je peux écrire mar
:
ls -l mar
et en tapant sur la touche Tab ⇆, cela complétera automatiquement la ligne avec martin. Ce qui nous donne :
ls -l martin/
puis ajouter doc
:
ls -l martin/do
+Tab ⇆ pour compléter par documents/ :
ls -l martin/documents/
Et ainsi de suite…
Cette façon de faire, tout en étant plus rapide, permet d'éviter des erreurs de frappe, car en cas de refus de complétion :
ATTENTION ! L'auto-complètement ne fonctionne pas après un caractère générique, une * (étoile) par exemple, voir : Les METACARACTERES.
Et un gros merci à TrueDD sur le chan pour cette précision !
Tuto initié par kate74 que nous remercions vivement de son activité sur le forum !