13.12. Historique des commandes et complètement à l'aide de la touche Tab

Taper la même commande de façon répétée devient très rapidement rébarbatif. En outre, une faute de frappe même mineure peut entraîner la nullité de toutes une série de lignes d'une commande.

Une des solutions à ce problème consiste à utiliser l'historique des lignes de commande. En faisant défiler l'écran à l'aide des touches de direction [Flèche haut] and [Flèche bas], vous pouvez retrouver bon nombre des commandes entrées précédemment.

Essayez cette fonction en utilisant à nouveau le fichier sneakers.txt (créé dans la Section 13.9.1. Cependant, la première fois, entrez ce qui suit à l'invite du shell:

cat sneakrs.txt

Rien ne se passe puisqu'il n'existe aucun fichier nommé sneakrs.txt. Ce n'est pas un problème. Nous allons simplement utiliser la touche de direction [Flèche haut] pour rappeler la commande, puis la touche de direction [Flèche gauche] pour accéder à l'endroit où le "e" manque. Insérez la lettre manquante et appuyez de nouveau sur la touche [Entrée].

Le contenu de sneakers.txt apparaît alors à l'écran.

Par défaut, il est possible de stocker jusqu'à 500 commandes dans le fichier bash d'historique des lignes de commande.

TuyauAstuce
 

En entrant la commande env à l'invite du shell, nous pouvons voir la variable d'environnement qui gère la taille de l'historique des lignes de commande. La ligne HISTFILESIZE=500 indique le nombre de commandes que bash va stocker.

L'historique des lignes de commande est en réalité stocké dans un fichier appelé .bash_history situé dans notre répertoire de connexion. Il y a plusieurs façons de le lire: en utilisant vi, cat, less, more ainsi que d'autres commandes.

Sachez cependant que le fichier peut être très long. Lisez-le donc avec la commande more entrée depuis votre répertoire personnel:

more .bash_history

Pour passer à l'écran suivant, appuyez sur la [Barre espace]; pour revenir en arrière, appuyez sur la touche [b]; pour quitter, appuyez sur [q].

TuyauAstuce
 

Pour rechercher une commande dans le fichier historique sans avoir continuellement à appuyer sur les touches de direction ou à consulter tout le fichier historique, utilisez la commande grep, un utilitaire de recherche puissant (reportez-vous à la Section 13.11.3). L'exemple suivant montre de quelle façon retrouver rapidement une commande précédemment utilisée: imaginons que vous recherchiez une commande semblable à cat sneak-quelque chose. Vous avez déjà utilisé cette commande et pensez qu'elle se trouve probablement dans votre fichier historique. À l'invite du shell, tapez:

history | grep sneak

Le complètement automatique de commande est un autre outil permettant de gagner du temps. Si vous entrez une partie d'un fichier, d'une commande ou d'un chemin d'accès et appuyez sur la touche [Tab], bash vous indiquera la partie restante du fichier/chemin d'accès ou émettra un signal sonore (si votre système est pourvu de fonctionnalités de son). Si vous entendez un signal sonore, appuyez de nouveau sur la touche [Tab] pour obtenir une liste des fichiers ou chemins d'accès correspondant à ce que vous avez entré.

Par exemple, si vous avez oublié la commande updatedb, mais que vous vous souvenez d'une partie de celle-ci, vous pouvez exécuter la commande su pour être connecté en tant que super-utilisateur (root); entrez alors up à l'invite du shell et appuyez deux fois sur la touche [Tab] afin d'afficher une liste des commandes possibles, y compris updatedb et uptime. Si vous entrez la commande partielle upd et appuyez à nouveau sur la touche [Tab] le système complétera automatiquement la partie manquante de la commande.