La commande history sous Linux est un outil intégré au shell qui affiche une liste des commandes utilisées dans la session du terminal. L’historique permet aux utilisateurs de réutiliser n’importe quelle commande listée sans avoir à la retaper.
Dans ce tutoriel, je vous montre comment fonctionne la commande history et les différentes façons de l’utiliser à l’aide d’exemple.

Table des matières
- 1 Comment utiliser la commande history de Linux avec des exemples
- 1.1 Afficher la liste des commandes exécutées
- 1.2 Exécuter à nouveau une commande depuis l’historique
- 1.3 Rechercher une commande par chaîne
- 1.4 Lister et chercher des commandes avec history
- 1.5 Modifier la commande exécutée
- 1.6 Empêcher l’enregistrement des commandes dans l’historique
- 1.7 Supprimer l’historique des commandes
- 1.8 Mettre à jour le fichier d’historique
- 2 Liens
Comment utiliser la commande history de Linux avec des exemples
La commande GNU history conserve une liste de toutes les autres commandes qui ont été exécutées à partir de cette session de terminal, puis vous permet de rejouer ou de réutiliser ces commandes au lieu de les retaper.
Si vous êtes un utilisateur de terminal expérimenté, vous connaissez la puissance de l’historique, mais pour nous, les amateurs ou les nouveaux administrateurs de systèmes, l’historique est un gain de productivité immédiat.
Afficher la liste des commandes exécutées
Lorsque vous utilisez la commande seule, elle affiche la liste des dernières commandes exécutées.
history
Pour afficher la liste de l’historique des commandes avec un nombre limité d’entrées, ajoutez ce nombre à la commande history. Par exemple, pour afficher uniquement les dix dernières entrées, utilisez :
history 10
Exécuter à nouveau une commande depuis l’historique
L’exécution de la commande history vous permet de réutiliser n’importe quelle commande de la liste. Par exemple, pour exécuter à nouveau la première commande (sudo apt update), utilisez :
!24
L’ajout d’un tiret (-) devant le numéro de la commande fait commencer le comptage à partir de la fin de la liste. Par exemple, pour réutiliser la dixième dernière commande, utilisez :
!-10
Réutilisation d’une commande de la liste d’historique, en commençant par la fin.
Utilisez des points d’exclamation doubles pour répéter la dernière commande :
!!
Rechercher une commande par chaîne
L’ajout d’une chaîne après le point d’exclamation exécute la dernière commande qui commence par cette chaîne. Par exemple, pour réutiliser la dernière commande qui commence par ping, utilisez :
!ping
L’utilisation de cette méthode peut entraîner des problèmes si le shell exécute une commande inattendue, notamment lors de la recherche d’une commande commençant par sudo. Par précaution, l’ajout de l’argument :p permet d’afficher la commande sans l’exécuter, ce qui vous permet de l’examiner et de décider si vous souhaitez l’exécuter.
!sudo:p
Pour rechercher une commande qui contient une chaîne de caractères, mais qui ne commence pas forcément par celle-ci, ajoutez un point d’interrogation à côté du point d’exclamation. Par exemple, pour réutiliser la dernière commande qui contient upgrade :
!?upgrade
Dans l’exemple ci-dessus, l’interpréteur de commandes réutilise la dernière commande qui contient la chaîne upgrade, il s’agit de la commande apt ugprade.
Lister et chercher des commandes avec history
La combinaison de history et grep vous permet d’afficher une liste de commandes contenant une chaîne. Par exemple, pour lister toutes les commandes qui contiennent apt, utilisez :
history | grep apt
Modifier la commande exécutée
Vous pouvez également utiliser l’historique pour réexécuter une commande avec une syntaxe différente.
Pour cela, utilisez la syntaxe suivante :
^[ancienne chaîne]^[nouvelle chaîne]^
Par exemple, si je veux changer ma commande précédente history | grep apt en history | grep ssh,
^apt^ssh^
La commande est réexécutée, mais avec apt remplacé par ssh. En d’autres termes, cette commande est exécutée :
history | grep ssh
Empêcher l’enregistrement des commandes dans l’historique
Pour empêcher l’enregistrement des commandes dans la liste d’historique, désactivez temporairement l’enregistrement en utilisant :
set +o history
Pour réactiver l’enregistrement, utilisez
set -o history
Supprimer l’historique des commandes
Utilisez l’option -d avec la commande history pour supprimer une commande de la liste de l’historique. Par exemple, supprimez la commande numéro 87 avec :
history -d 4
Utilisez l’option -c pour effacer toute la liste d’historique :
history -c
Mettre à jour le fichier d’historique
Le shell Bash enregistre toutes les mises à jour de la liste de l’historique des commandes lorsque vous quittez la session du terminal. La commande history vous permet également d’enregistrer les modifications pendant la session du terminal.
L’option -a vous permet d’ajouter les entrées de l’historique des commandes de cette session au fichier .bash_history :
history -a
Une autre méthode consiste à utiliser l’option -w pour enregistrer la liste complète de l’historique dans le fichier .bash_history :
history -w
Liens
- 12 astuces bash à connaitre sur Linux
- Utiliser if, then en Bash Linux
- La boucle for en bash Linux avec +10 exemples
- La boucle while en bash Linux avec 7 exemples
- Comment utiliser la boucle until en Bash avec des exemples
- Bash IFS : utilisation et exemples
- Qu’est-ce que le fichier .bashrc, .bash_profile et .profile et les différences sous Linux
- Comment exécuter un fichier sur Linux (script shell ou binaire)
- Qu’est-ce qu’un fichier .sh et comment l’ouvrir
- Savoir quel est le shell de son Linux