Aujourd'hui c'est jour de bash et nous allons parler de cette petite fonctionnalité pratique qu'est l'historique.

Il existe plusieurs manières de faire appel à l'historique :
  • La plus connue étant d'utiliser les flèches directionnelles HAUT et BAS pour naviguer dans l'historique
  • On peut également taper la commande history qui affiche l'intégralité des 1000 dernières lignes de commande tapées
$ history
... donnera par exemple
 1  ls -lart *zip
 2  pwd
 3  htop
 4  ssh root@alsace
 5  xkill
 6  ll
 7  ls -1 .
 8  thunderbird &
 9  vi *txt
10  history
  • On peut utiliser la combinaison history + grep afin d'y voir plus clair. Exemple pour afficher les occurrence contenant ls dans l'historique :
history | grep ls
... donne quelque chose comme ça (en suivant le même exemple)
 1  ls -lart *zip
 4  ssh root@alsace
 7  ls -1 .
  • Il est également possible d'invoquer un évènement (une ligne de l'history) en utilisant !x (où x est le numéro devant la ligne concernée) :
!8
... relancera le 8ème événement (soit dans notre exemple thunderbird &)
  • Dans le même genre on peut invoquer l'évènement en le nommant en partie et ce grace à !blahblah (dans le cas où il y aurait plusieurs correspondances c'est toujours l'évènement le plus récent qui compte ; donc celui qui a le numéro le plus élevé) :
!ls
... lancera le 7ème événement (soit dans notre exemple ls -1 .)
  • Enfin on peut utiliser un binding (combinaison de touches) bash vraiment très pratique pour effectuer des recherches dans l'historique : CTRL + R. Mode d'emploi :
On commence par taper CTRL + R sur une ligne vide, le terminal affiche :
(reverse-i-search)`':
On tape ensuite ce qui nous intéresse (ici on cherche thunderbird) et au fur et à mesure de nos frappes (à droite des ":") la dernière occurrence correspondante dans l'historique apparaît (à gauche des ":") :
(reverse-i-search)`t': history
(reverse-i-search)`th': thunderbird &
Il suffit ensuite de valider en appuyant sur ENTREE pour lancer la commande.

A noter qu'il est également possible d'utiliser BACKSPACE (retour arrière) pendant la saisie.
Pour arrêter ce processus il suffit de taper CTRL + C.
Pour laisser la commande désirée sur la ligne sans l'exécuter il faut utiliser CTRL + U.
On peut naviguer entre les occurrence en appuyant à nouveau sur CTRL + R (CTRL + SHIFT + R pour naviguer en sens inverse).

C'est tout pour cette fois... révisez bien ;)
Tag(s) : #bash

Partager cet article

Repost 0
Pour être informé des derniers articles, inscrivez vous :