Présentation
L'history
La commande sous Linux est un outil shell intégré qui affiche une liste des commandes utilisées dans la session du terminal. history
permet aux utilisateurs de réutiliser n'importe quelle commande répertoriée sans la retaper.
Dans ce didacticiel, nous allons vous montrer comment l'history
commande fonctionne et différentes façons de l'utiliser.

Prérequis
- Un système exécutant Linux.
- Un compte avec des privilèges sudo.
- Accès à la fenêtre du terminal.
Comment utiliser la commande d'historique Linux
Utilisation de l'history
commande sans option affiche la liste des commandes utilisées depuis le début de la session terminal :
history

Pour afficher la liste de l'historique des commandes avec un nombre limité d'entrées, ajoutez ce numéro à l'history
commande. Par exemple, pour afficher uniquement les cinq dernières entrées, utilisez :
history 5

Une fois que vous fermez le terminal, le shell Bash enregistre les nouvelles entrées de l'historique des commandes dans le .bash_history fichier.
Utiliser la date et l'horodatage
Le .bashrc Le fichier stocke les paramètres du shell Bash. La modification de ce fichier permet de changer le format de sortie de l'history
commande.
Ouvrez le .bashrc fichier à l'aide d'un éditeur de texte tel que Nano :
sudo nano .bashrc
Pour modifier le format de sortie afin d'inclure la date et l'horodatage, ajoutez la ligne suivante au .bashrc fichier :
export HISTTIMEFORMAT="%c "

Utiliser différents arguments après HISTTIMEFORMAT
permet de personnaliser le niveau de détail de l'horodatage :
%d
:Jour%m
:Mois%y
:Année%H
:Heure%M
:Minutes%S
:Secondes%F
:Date complète (format A-M-J)%T
:Heure (format H:M:S)%c
:Date et horodatage complet (format Jour-J-M-A H:M:S)
Enregistrez les modifications dans le .bashrc fichier, relancez le terminal et exécutez l'history
commande pour confirmer le nouveau format de sortie :
history

Afficher la taille du tampon d'historique
Le .bashrc Le fichier contient deux entrées qui contrôlent la taille du tampon d'historique :
HISTSIZE
:Le nombre maximum d'entrées pour la liste d'historique.HISTFILESIZE
:Le nombre maximum d'entrées dans le .bash_history fichier.

Modification de HISTSIZE
et HISTFILESIZE
valeurs modifie la façon dont le shell Bash affiche et enregistre l'historique des commandes.
Par exemple, changer le HISTSIZE
valeur à 10
rend l'history
la liste de commandes affiche un maximum de 10 dernières entrées.

Enregistrement des modifications dans le .bashrc fichier, relancer le terminal et exécuter l'history
commande confirme le nouveau format de sortie :
history

Répéter une commande
Exécution de l'history
La commande vous permet de réutiliser n'importe laquelle des commandes de la liste. Par exemple, pour exécuter la première commande (sudo apt update
) à nouveau, utilisez :
!1

Ajouter un tiret (- ) avant que le numéro de commande ne commence le décompte à partir de la fin de la liste. Par exemple, pour réutiliser la dixième dernière commande (history 5
), utilisez :
!-10

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 commençant par cette chaîne. Par exemple, pour réutiliser la dernière commande commençant par sudo
, utilisez :
!sudo

L'utilisation de cette méthode peut causer des problèmes si le shell exécute une commande inattendue, en particulier lors de la recherche d'une commande commençant par sudo
. Par précaution, ajouter le :p
affiche la commande sans l'exécuter, ce qui vous permet de revoir la commande et de décider si vous voulez l'exécuter.
!sudo:p

Pour rechercher une commande qui contient une chaîne, mais qui ne commence pas 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 echo
:
!?echo

Dans l'exemple ci-dessus, le shell réutilise la dernière commande qui contient le echo
chaîne même si la commande commence par sudo
.
Liste des commandes correspondantes
Combiner history
et grep
permet d'afficher une liste de commandes contenant une chaîne. Par exemple, pour lister toutes les commandes qui contiennent ufw
, utilisez :
history | grep ufw

Modifier la commande exécutée
Utilisez la syntaxe suivante pour modifier la dernière commande exécutée :
^[old string]^[new string]^
Par exemple, le ufw
la commande pour activer le port 20 indique que le port est déjà activé :
sudo ufw allow 20/tcp

Utilisez la syntaxe ci-dessus pour modifier le numéro de port de 20 à 22 :
^20^22^

Empêcher l'enregistrement des commandes dans l'historique
Pour empêcher l'enregistrement de 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
Utilisez le -d
option avec l'history
commande pour supprimer une commande de la liste de l'historique. Par exemple, supprimez la commande numéro 87 avec :
history -d 87

Utilisez le -c
option pour effacer toute la liste de l'historique :
history -c
Mettre à jour le fichier historique
Le shell Bash enregistre toutes les mises à jour de la liste de l'historique des commandes lorsque vous quittez la session de terminal. L'history
La commande vous permet également d'enregistrer les modifications pendant la session du terminal.
Utiliser le -a
L'option vous permet d'ajouter les entrées de l'historique des commandes de cette session au .bash_history fichier :
history -a
Une autre méthode consiste à utiliser le -w
option pour enregistrer la liste complète de l'historique dans le .bash_history fichier :
history -w