Complètement Le complètement (completion) est une fonctionnalité des plus pratiques et tous les shells modernes (dont bash) l'incluent désormais. Son but est d'aider l'utilisateur à en faire le moins possible. La meilleure façon d'illustrer ceci est de donner un exemple.
Supposons que vous ayez dans votre
répertoire personnel un fichier
fichier_au_nom_très_long_impossible_à_taper
,
et que vous vouliez le consulter. Mais, vous avez également dans
ce même répertoire un autre fichier appelé
fichier_texte
. Que faire ? Vous vous
trouvez dans votre répertoire personnel et vous tapez alors la
séquence suivante :
$ less fi<TAB>
(c'est-à-dire, tapez less fi et appuyez sur la touche TAB). Le shell aura alors étendu la ligne de commande pour vous :
$ less fichier_
et aura également marqué la liste des choix possibles (dans sa configuration par défaut, qui peut être personnalisée). Tapez alors la séquence de touches suivante :
$ less fichier_a<TAB>
et le shell aura étendu la ligne de commande pour obtenir le résultat que vous souhaitiez :
$less fichier_au_nom_très_long_impossible_à_taper
Il ne vous reste plus alors qu'à appuyer sur la touche Entrée pour valider et consulter le fichier.
La touche
TAB n'est pas l'unique moyen d'activer le
complètement, bien qu'il soit le plus courant. En général, le mot à
compléter sera un nom de commande pour le premier mot de la ligne
de commande (nsl<TAB> donnera
nslookup), et un nom de fichier pour tous les
autres, à moins que le mot ne soit précédé d'un caractère
« magique » parmi ~
,
@
ou $
. Dans ce cas, le
shell essaiera de compléter respectivement un nom
d'utilisateur, un nom de machine ou une variable
d'environnement[20]. Il existe aussi un caractère
magique pour compléter un nom de fichier (/
) et
une commande pour rappeler une commande de l'historique
(!
)
Les deux autres façons d'activer le complètement sont les séquences Esc-<x> et Ctrl-X-<x> (Esc pour la touche Échap) où <x> est l'un des caractères magiques déjà mentionnés. Taper Esc-<x> réussira le complètement seulement s'il n'y a pas d'ambiguïté et, en cas d'échec, complétera le mot à la plus grande sous-chaîne possible dans la liste des choix. Un bip signifie soit que le choix n'est pas univoque ou qu'il n'y a tout simplement pas de choix correspondant. La séquence Ctrl-X-<x> affichera la liste des choix possibles sans tenter de complètement. La pression sur la touche TAB est équivalente à une pression successive de Esc-<x> et de Ctrl-X-<x>, le caractère magique dépendant du contexte.
Ainsi, une des façons permettant de voir toutes les variables
d'environnement définies est de taper sur une ligne vierge la
séquence Ctrl+x $
. Un autre cas : pour voir la
page de manuel de la commande nslookup, il suffira de taper
man nsl puis Esc-!
, et le shell
complétera automatiquement la commande vers man
nslookup.
[20] Rappelez-vous : UNIX différencie
les majuscules des minuscules. La variable d'environnement
HOME
et la variable home
ne
sont pas les mêmes.