Le shell Linux possède une fonctionnalité d’historique. Cette fonction assure que chaque instruction que vous tapez est conservée pour une consultation ultérieure. Puisque toutes vos commandes sont enregistrées dans cet historique, il est important de savoir comment le sauvegarder.
Dans ce guide, nous allons vous montrer comment sauvegarder l’historique de votre terminal Linux, et également comment le restaurer à partir de ces sauvegardes. Alors, lancez votre émulateur de terminal favori et suivez les instructions !
Emplacement de l’historique du terminal Linux
Le terminal Linux stocke son historique dans un fichier. Ce fichier se nomme «.bash_history». Il est accessible en écriture par tous et est situé dans votre répertoire personnel. Comme ce fichier se trouve dans un répertoire utilisateur, chaque utilisateur du système possède son propre fichier.
Ces fichiers d’historique ne sont pas protégés par des autorisations spéciales, ce qui signifie que n’importe quel utilisateur du système peut consulter l’historique d’un autre à l’aide d’une simple commande. Ainsi, par exemple, si vous voulez jeter un coup d’œil à l’historique du terminal/ligne de commande de l’utilisateur «utilisateur» sur votre système Linux, vous pouvez utiliser :
cat /home/user/.bash_history
Les utilisateurs peuvent également afficher l’historique de l’utilisateur actuel connecté au shell du terminal Linux en utilisant simplement la commande «history».
history
De plus, comme l’historique est un simple fichier, il est possible de le rechercher comme un simple fichier texte en utilisant la fonction grep. Par exemple, pour trouver des occurrences de «git clone» dans l’historique de l’utilisateur, utilisez la commande ci-dessous.
cat /home/user/.bash_history | grep 'git clone'
Cette recherche fonctionne aussi pour l’utilisateur actuellement connecté avec la commande «history».
history | grep 'terme de recherche'
Enregistrer l’historique du terminal dans une sauvegarde
Nous avons expliqué précédemment que l’historique du terminal Linux est un simple fichier texte caché contenant toutes les commandes saisies par l’utilisateur. Étant donné qu’il s’agit d’un fichier, il est très simple de le sauvegarder.
Pour créer une sauvegarde, vous pouvez utiliser la commande cat. Avec cat, vous visualisez le contenu d’un fichier texte directement dans le terminal. Nous pouvons utiliser cette commande en combinaison avec le symbole «>» pour rediriger la sortie de la visualisation vers un fichier de sauvegarde.
Par exemple, pour sauvegarder votre historique actuel, vous exécutez la commande cat sur «~/.bash_history» et vous enregistrez le résultat dans un fichier nommé «history_backup».
cat ~/.bash_history > history_backup
Vous pouvez aussi exécuter la commande history combinée avec le symbole «>» pour effectuer l’enregistrement de cette manière.
history > history_backup
Enfin, il est également possible de sauvegarder l’historique de la ligne de commande/terminal d’un autre utilisateur non connecté en utilisant la commande ci-dessous.
Note : Assurez-vous de remplacer «nom_utilisateur» par le nom de l’utilisateur dont vous souhaitez enregistrer l’historique.
cat /home/nom_utilisateur/.bash_history > history_backup
Sauvegarder uniquement certains éléments de l’historique
Il peut arriver que vous souhaitiez sauvegarder uniquement des commandes spécifiques de l’historique de votre terminal Linux. Pour ce faire, vous visualisez le fichier historique et vous le combinez avec la commande grep, qui filtre sur la base de mots-clés spécifiques.
Par exemple, pour sauvegarder uniquement les commandes de l’historique de votre terminal Linux qui contiennent les instructions git clone ou git, utilisez la commande ci-dessous.
Note : Dans ces exemples, nous utilisons «>>» au lieu de «>». L’intérêt de «>>» est que cela n’effacera pas le contenu de la sauvegarde du fichier d’historique, et vous pouvez réexécuter la commande plusieurs fois pour ajouter des données à la sauvegarde.
cat ~/.bash_history | grep 'git' >> history_backup
Ou
cat /home/nom_utilisateur/.bash_history | grep 'git' >> history_backup
Le filtrage avec grep peut également être appliqué à la commande history, comme ceci.
history | grep 'git' >> history_backup
Pour sauvegarder certains mots-clés du fichier d’historique, remplacez «git» dans les exemples ci-dessus par les commandes que vous souhaitez sauvegarder. N’hésitez pas à réexécuter cette commande autant de fois que nécessaire.
Comment restaurer la sauvegarde de l’historique
La restauration de la sauvegarde de l’historique est aussi simple que de supprimer le fichier d’origine et de replacer la sauvegarde. Pour supprimer le fichier d’historique original, utilisez la commande rm dans une fenêtre de terminal pour supprimer «.bash_history».
rm ~/.bash_history
Une fois que le fichier d’historique original a été supprimé du répertoire de base de l’utilisateur dans lequel vous souhaitez restaurer l’historique, utilisez la commande mv pour renommer «history_backup» en «.bash_history».
mv history_backup ~/.bash_history
Maintenant que le nouveau fichier d’historique est en place, exécutez la commande history -rw pour recharger la fonction d’historique du terminal.
history -rw
Vous pourrez alors consulter l’historique de votre terminal avec :
history
Restaurer les sauvegardes pour d’autres utilisateurs
Vous avez besoin de restaurer les sauvegardes d’historique d’autres utilisateurs sur le système ? Pour ce faire, commencez par vous connecter à leur session en utilisant la commande su.
su nom_utilisateur
Une fois connecté à la session de l’utilisateur, supprimez le fichier d’historique courant qui se trouve dans le répertoire de base de l’utilisateur (~).
rm ~/.bash_history
À partir de là, renommez le fichier de sauvegarde de l’historique comme nouveau fichier «.bash_history» dans le répertoire de l’utilisateur.
mv /chemin/vers/le/fichier/de/sauvegarde/history-backup ~/.bash_history
Appliquez les changements avec :
history -rw
Une fois terminé, exécutez history pour afficher les commandes restaurées dans la fenêtre du terminal.