La commande history sous Linux est un outil incontournable pour les utilisateurs du terminal, permettant de consulter et réutiliser facilement les commandes précédemment exécutées. Que vous soyez développeur, administrateur système ou simple utilisateur, connaître les bonnes pratiques pour sauvegarder l’historique du terminal peut considérablement améliorer votre efficacité.
Cet article vous guide pas à pas pour tirer le meilleur parti de cette fonctionnalité, en vous montrant comment préserver vos données via des sauvegardes et comment restaurer vos commandes bash en cas de besoin. Découvrez des astuces simples pour garder le contrôle sur vos sessions et optimiser vos workflows en un clin d’œil.
Sommaire de l'article
- 1 Qu’est-ce que la commande history ?
- 2 Afficher l’historique des commandes
- 3 Effacer ou modifier l’historique
- 4 Configurer la taille de l’historique
- 5 Qu’est-ce que .bash_history ?
- 6 Sauvegarder l’historique du terminal
- 7 Sauvegarder des commandes spécifiques du fichier history
- 8 Restaurer vos commandes bash
- 9 Restaurer vos commandes bash pour d’autres utilisateurs
- 10 Sécurité et confidentialité
- 11 Exemple d’utilisation du fichier d’historique
- 12 Astuces et bonnes pratiques
- 13 Pour aller plus loin
Qu’est-ce que la commande history ?
Afficher l’historique des commandes
Utilisation de base de history
history
!42
Options avancées de history
- history n : affiche les n dernières commandes
- history | grep mot_cle : permet de filtrer l’historique avec un mot-clé
Rechercher dans le fichier d’historique
Vous pouvez effectuer une recherche dans l’historique à l’aide de la commande grep à l’aide de l’une des méthodes suivantes.
La première méthode consiste à rechercher la commande « ntpdate » dans le fichier « .bash_history » comme suit :
# cat /root/.bash_history | grep ‘ntpdate’
La deuxième méthode de recherche dans l’historique consiste à utiliser la commande grep avec la commande history comme suit :
# history | grep 'ntpdate'
Effacer ou modifier l’historique
Effacer l’historique avec history -c
history -c
Supprimer une commande spécifique
history -d numero
history -d 42
Configurer la taille de l’historique
- HISTSIZE : nombre de commandes à retenir dans la session actuelle
- HISTFILESIZE : nombre total de commandes à enregistrer dans le fichier .bash_history
export HISTSIZE=1000 export HISTFILESIZE=1000
D’autres variables d’environnement pour la commande history
- Définit le fichier où l’historique est enregistré (par défaut ~/.bash_history).
- Exemple : export HISTFILE=/chemin/vers/mon_fichier.
- Nombre de commandes enregistrées en mémoire pour une session.
- Exemple : export HISTSIZE=1000.
- Nombre maximum de commandes stockées dans le fichier .bash_history.
- Exemple : export HISTFILESIZE=2000.
HISTCONTROL
- ignorespace : Ignore les commandes précédées d’un espace.
- ignoredups : Ignore les doublons consécutifs.
- ignoreboth : Combine ignorespace et ignoredups.
Vous pouvez afficher le contenu de ses variables sous Linux, en utilisant la commande echo.
echo $HISTSIZE
HISTTIMEFORMAT
Comme vous l’avez peut-être remarqué, par défaut, nous ne sommes pas en mesure de voir la date et l’heure auxquelles les commandes ont été exécutées, mais seulement leur ordre. Nous pouvons définir la variable $HISTTIMEFORMAT avec un format de date et d’heure spécifique, l’option la plus simple étant d’utiliser %c comme indiqué ci-dessous.
echo 'export HISTTIMEFORMAT="%c "' >> ~/.bashrc
Une fois que cet utilisateur se déconnecte et se reconnecte pour que l’exportation s’exécute, le fichier d’historique existant indiquera que tous les contenus ont été exécutés exactement au même moment, car l’information temporelle n’a pas été enregistrée auparavant. Toutefois, à partir de maintenant, la date et l’heure seront enregistrées avec chaque commande dans le fichier historique de bash.
Il existe d’autres variables pratiques pour optimiser l’utilisation de la commande history, comme éviter les entrées en double dans l’historique Linux.
Qu’est-ce que .bash_history ?
- C’est un fichier texte situé par défaut dans le répertoire personnel d’un utilisateur (généralement à ~/.bash_history).
- Il contient l’historique des commandes tapées par l’utilisateur dans le terminal Bash.
- Ce fichier est utilisé pour permettre à l’utilisateur de rappeler facilement des commandes précédentes avec des raccourcis comme les flèches haut et bas ou des recherches dans l’historique.
Écriture dans .bash_history
- Par défaut, les commandes tapées dans le terminal sont écrites dans .bash_history lorsque le terminal est fermé.
- Si plusieurs sessions Bash sont ouvertes simultanément, seules les commandes de la dernière session fermée sont enregistrées.
Lecture de .bash_history
- Lorsqu’une nouvelle session Bash est ouverte, le contenu de .bash_history est chargé en mémoire, permettant d’accéder aux commandes précédemment utilisées.
Sauvegarder l’historique du terminal
Maintenant, pour créer une sauvegarde à partir de votre fichier d’historique de terminal Linux, vous pouvez utiliser l’une des méthodes suivantes.
La première méthode consiste à utiliser la commande « cat » avec le symbole « > ». Cela devrait rediriger la sortie vers le fichier de sauvegarde.
# cat /root/.bash_history > history_backup
Comme vous pouvez le voir dans la capture d’écran suivante, un fichier de sauvegarde est créé.
La deuxième méthode consiste à utiliser la commande history avec le symbole “>”.
Pour effectuer une sauvegarde du fichier history appartenant à un autre utilisateur, vous pouvez utiliser la commande suivante.
# cat /home/admin/.bash_history > admin_history_backup
Sauvegarder des commandes spécifiques du fichier history
Pour sauvegarder des commandes spécifiques à partir du fichier history, vous pouvez utiliser l’une des méthodes suivantes.
La première méthode consiste à utiliser la commande “grep” avec le symbole “>” ou “>>”. La différence entre les symboles est :
- > : Chaque fois que ce symbole est utilisé, il écrase à chaque fois le contenu du fichier.
- >> : Ce symbole ajoute la sortie au fichier déjà créé, sans qu’il soit nécessaire de l’écraser.
# cat /root/.bash_history | grep 'ntpdate' >> history_backup
Si vous devez sauvegarder des commandes spécifiques à partir d’un autre historique utilisateur, vous pouvez utiliser la commande suivante.
# cat /home/admin/.bash_history | grep 'ntpdate' >> admin_history_backup
Restaurer vos commandes bash
Pour restaurer le fichier de sauvegarde de l’historique, il vous suffit de supprimer le fichier historique d’origine « .bash_history » situé dans le répertoire de base, comme suit :
# rm /root /.bash_history
Utilisez maintenant la commande « mv » pour déplacer le fichier de sauvegarde de l’historique dans le répertoire de base.
# mv history_backup /root/.bash_history
Après avoir déplacé le fichier de sauvegarde de l’historique, vous devez recharger l’historique à l’aide de la commande suivante :
# history -r
Vous pouvez maintenant prévisualiser votre historique à l’aide de l’une des commandes répertoriées précédemment.
Restaurer vos commandes bash pour d’autres utilisateurs
Si vous devez restaurer le fichier de sauvegarde de l’historique pour un autre utilisateur, vous devez basculer sur le compte de cet utilisateur à l’aide de la commande suivante, puis enchainer les commandes vues ci-dessus :
# su admin # rm /home/admin/.bash_history # mv /temp/admin_history_backup /home/admin/.bash_history # history -r
Sécurité et confidentialité
- Pour effacer l’historique en mémoire : history -c
- Pour supprimer le fichier : rm ~/.bash_history
Exemple d’utilisation du fichier d’historique
Un fichier d’historique est créé pour chaque utilisateur et se trouve dans le répertoire de base de l’utilisateur, par exemple : « /home/username/.bash_history ».
La première méthode consiste à utiliser la commande « cat » comme suit :
# cat /root/.bash_history
La deuxième méthode consiste à prévisualiser le contenu du fichier d’historique à l’aide de la commande history comme suit :
#history
Astuces et bonnes pratiques
- Utilisez Ctrl + r pour rechercher de manière interactive dans l’historique
- Évitez d’enregistrer des mots de passe en texte clair, préfixez la commande avec un espace si HISTCONTROL=ignorespace est activé.
- Automatisez le nettoyage périodique de l’historique si vous manipulez des données sensibles
Pour aller plus loin
La commande history est un allié précieux pour tout utilisateur Linux. Bien configurée, elle permet de gagner du temps, améliorer sa productivité et mieux comprendre son flux de travail en ligne de commande.
Le fichier history n’existe pas que pour les commandes passées dans le terminal, il existe aussi pour MySQL et Redis entre autres et ils regroupent toutes les commandes passées sur votre serveur MySQL et Redis.
En résumé, le fichier .bash_history est un outil puissant et pratique pour les utilisateurs de Bash comme l’utilitaire time, mais il nécessite une gestion attentive pour garantir la confidentialité et éviter les conflits entre sessions.
Quick-Tutoriel.com Network & System Admin.










