Linux : comment maitriser la commande history ?
![Linux - comment maitriser la commande history](https://tutobox.fr/wp-content/uploads/2022/09/Linux-comment-maitriser-la-commande-history.jpg)
Qu'avons-nous dans la boîte ?
Sous Linux, la commande history sert à consulter l’historique des commandes saisies précédemment dans le Terminal, comme son nom l’indique. Avec cette commande, vous pouvez suivre vos actions précédentes effectuées à partir de la ligne de commande. Après avoir lu cet article, la commande history n’aura plus de secret pour vous !
Sur une machine Linux, la commande history est un excellent moyen de voir les commandes précédemment exécutées. Chaque commande exécutée dans le Terminal sera consignée dans cet historique et un numéro sera associé à chaque commande. Donc, l’historique est numéroté, comme nous le verrons où chaque commande à un ID, en quelque sorte. Ce numéro sera indispensable pour rappeler une commande précédemment exécutée puisque nous pourrons l’appeler par son numéro pour la rejouer facilement.
1. Premiers pas avec la commande history sous Linux
Pour lancer la commande history, il suffit de taper le mot magique « history » dans le terminal de votre machine Linux, que ce soit Debian, Ubuntu, Rocky Linux, CentoOS, etc.
history
Voici un exemple, sur ma machine Debian. Vous pouvez voir le numéro de l’entrée dans l’historique, sur la gauche. À droite, la commande exécutée. Ici, on voit beaucoup de commandes cURL car ce sont mes tests effectués lors de l’écriture du précédent article sur cURL.
![Linux - Commande history](https://tutobox.fr/wp-content/uploads/2022/09/Linux-Commande-history.png)
Le système de numérotation utilisé par l’interface du terminal Linux représente la commande la plus ancienne en haut de la liste et la commande la plus récente en bas de la liste. Comme vous pouvez le voir, la commande « history » que je viens de saisir a reçu le numéro d’identification 100. 100 commandes dans l’historique, ça commence à faire… Mais ça pourrait être beaucoup plus sur un Terminal très actif…!
Si vous souhaitez voir les 10 dernières commandes exécutées, c’est-à-dire les 10 commandes les plus récentes :
history 10
C’est une façon de filtrer la sortie de la commande. Une autre façon de le faire, c’est d’utiliser la commande « history » avec une autre commande appelée « tail ». Exécutez la commande ci-dessous, elle donnera le même résultat.
history | tail -n 10
2. Rejouer une commande de l’historique Linux
On va commencer à s’amuser… Et laisser l’histoire se répéter en rejouant une commande précédemment exécutée. Imaginons que l’on souhaite rejouer la commande avec l’ID « 99 », on va utiliser cette syntaxe :
!99
On peut voir que ça fonctionne à merveille :
![Rejouer une commande de l'historique Linux](https://tutobox.fr/wp-content/uploads/2022/09/Rejouer-une-commande-historique-Linux.png)
Cette méthode est très pratique pour rappeler une commande exécutée il y a longtemps : c’est beaucoup plus productif que de remonter dans l’historique avec la flèche directionnelle…
Et si vous voulez rejouer la dernière commande exécutée, il suffit de taper 2 points d’exclamation (sans espace).
!!
Comme vous pouvez le voir, la commande précédemment exécutée s’est relancée ! Si vous êtes habitué à utiliser la touche directionnelle vers le haut, voici une nouvelle méthode pour la remplacer (et impressionner vos collègues). Plus efficace à mon avis.
Pour réexécuter la commande précédente avec des droits « root » en passant par « sudo », c’est très simple, il faut qu’on l’ajoute en préfixe :
sudo !!
Pour aller plus loin, vous pouvez exécuter votre avant-dernière commande, avec la commande suivante :
!-2
En fait, on part de la fin de l’historique (commande la plus récente) et on retourne en arrière dans l’historique, ici pour exécuter la deuxième commande en partant de la commande la plus récente. J’ai pris l’exemple de l’avant-dernière commande, mais on peut mettre une autre valeur. Mais bon, dans ce cas, autant cibler la commande avec son ID.
3. Naviguer dans l’historique avec des mots clés
Supposons que vous ayez exécuté une commande dans votre terminal, mais que vous ne l’ayez pas entièrement mémorisée. Vous avez très envie de la retrouver… Et vous savez que c’est la dernière commande « curl » que vous avez exécutée… Pour utiliser à nouveau cette commande, vous pouvez rappeler l’historique en indiquant ce mot clé :
!curl
La commande curl la plus récente dans l’historique sera exécutée de nouveau sur la machine Linux ! La commande history sous cette forme supporte aussi sudo si besoin :
sudo !curl
4. Recherche interactive dans l’historique Linux
Maintenant, supposons que vous avez exécuté plusieurs commandes qui sont similaires, comme moi avec toutes mes commandes curl qui sont dans l’historique. Avec la recherche interactive dans le Terminal, il devient possible de rechercher la bonne commande. Pour lancer la recherche interactive, exécutez la combinaison de touches « Ctrl+R ». L’affichage de votre terminal Linux devrait ressembler à celui ci-dessous.
En saisissant « curl -I », la recherche me propose la dernière commande sous cette forme que j’ai exécutée.
![commande history et recherche interactive](https://tutobox.fr/wp-content/uploads/2022/09/Historique-Linux-Recherche-interactive.png)
Vous pouvez saisir autant de mots clés que vous souhaitez, et le résultat de la recherche sera mis à jour en temps réel. En appuyant sur la touche Entrée, la commande affichée sur la droite (après « : ») est exécutée.
Pour modifier la commande avant de l’exécuter, utilisez les flèches droite et gauche du clavier. La commande sélectionnée est affichée dans le terminal, et vous pouvez apporter les modifications nécessaires.
5. Supprimer l’historique de commandes Linux
Jusqu’à présent, on a vu comment consulter l’historique, rejouer une commande, etc… Cependant, vous cherchez peut-être un moyen de purger l’historique entièrement ou de supprimer une commande précise. S’il y a un mot de passe en clair dans une commande de l’historique, c’est un peu moyen…. Le paramètre -d de la commande history sera votre allié.
Exemple pour supprimer la commande avec l’ID 119 :
history -d 119
En exécutant la commande history, on voit bien qu’elle n’est plus dans la liste. Ni vu ni connu !
Autre exemple… Pour supprimer les entrées de l’historique comprises entre l’ID 110 et l’ID 115 :
history -d 110 115
Ce n’est pas tout, car on peut supprimer de l’historique les X dernières commandes saisies dans le Terminal. Par exemple pour supprimer les 10 dernières commandes (le tiret est important sinon ce n’est pas le même effet !) :
history -d -10
Pour terminer en beauté, sachez que vous pouvez purger tout l’historique avec la commande ci-dessous :
history -c
6. Conclusion
Quand vous êtes nostalgique de votre travail, vous pouvez vous amuser à relire votre historique Linux…. Blague à part, suite à la lecture de ce tutoriel, vous connaissez l’essentiel de la commande history sous Linux !
Ressources :