Table des matières

autocompletion

Préalable

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 ;-) !

Exemple de recherche par l'auto-complètement

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 !

Installation

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

Utilisation

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 :

Extrait de 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

Ctrl+O puis ↵ Entrée puis Ctrl+X

Dans certains cas, la manipulation ci-dessus peut s'avérer inutile, lorsque l'auto-complétion est activée au niveau des sessions utilisateurs :
~/.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 ! 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

Détail

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).

Exemple

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 :

c'est qu'il y a OBLIGATOIREMENT une erreur dans la rédaction de la commande !

À noter :

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 !

Note trebmuh 11 novembre 2015. Ici, ça marche ™. Debian Jessie.

Tuto initié par kate74 que nous remercions vivement de son activité sur le forum ! :-)

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
2)
en français : auto-complètement ou auto-complémentation ou encore complétion automatique
3)
Tab ⇆ dans les tutos