Guide complet de la commande history de Linux

Linux 命令大全Encyclopédie des commandes Linux

history est une commande intégrée extrêmement utile dans les systèmes Linux. Elle enregistre tout l’historique des commandes que les utilisateurs ont exécutées dans le terminal. Cette fonctionnalité est particulièrement précieuse dans les scénarios suivants :

  1. Suivi des opérations: Afficher les commandes précédemment exécutées
  2. Réutilisation rapide: Plus besoin de retaper de longues commandes
  3. Dépannage: Consulter les enregistrements des opérations du système
  4. Amélioration de l'efficacité: Accomplir rapidement des tâches répétitives à l'aide des commandes historiques

Lorsque vous saisissez des commandes dans le terminal, Bash les enregistre en mémoire et les écrit dans~/.bash_historyle fichier (avec la configuration par défaut).


Syntaxe et utilisation de base

La syntaxe de base de la commande history est très simple :

history [选项] [参数]

Formes courantes

1. Afficher l'historique complet :

history

2. Afficher les N enregistrements les plus récents :

history 10  # 显示最近10条命令

3. Effacer tout l'historique :

history -c

4. Supprimer un enregistrement d'historique spécifique (par exemple, supprimer l'entrée 1010) :

history -d 1010

Explication détaillée des options et paramètres courants

La commande history prend en charge plusieurs options utiles :

Option Description Exemple
-c Effacer tout l'historique history -c
-d Supprimer l'enregistrement d'historique à la position spécifiée history -d 1005
-a Écrire immédiatement l'historique de la mémoire vers le fichier d'historique history -a
-n Lire les enregistrements d'historique non lus depuis le fichier d'historique history -n
-r Lire le contenu du fichier d'historique dans la session actuelle history -r
-w Écrire l'historique actuel dans le fichier d'historique history -w

Conseils pratiques et utilisation avancée

1. Exécuter rapidement des commandes de l'historique

Exemple

!n        # Exécuter la n-ième commande de l'historique
!!        # Exécuter la commande précédente
!string   # Exécuter la commande la plus récente commençant par string

Exemple :

Exemple

!1024     # Exécuter la commande numéro 1024 dans l'historique
!!        # Réexécuter la commande précédente
!vim      # Exécuter la commande la plus récente commençant par vim

2. Rechercher des commandes historiques

UtilisationCtrl+Rvous pouvez effectuer une recherche inversée dans l'historique des commandes ; saisissez un mot-clé partiel pour trouver la commande correspondante.

3. Substitution de commandes historiques

Exemple

^old^new  # Remplacer old par new dans la commande précédente et exécuter

Exemple :

Exemple

$ cat file1.txt
$ ^file1^file2  # Équivalent à l'exécution de cat file2.txt

4. Afficher les horodatages des commandes

Dans~/.bashrcAjoutez la configuration suivante pour afficher le temps d'exécution des commandes :

Exemple

export HISTTIMEFORMAT="%F %T "

Exécutez ensuite :

Exemple

source ~/.bashrc

Après celahistoryla commande affichera le temps d'exécution de chaque commande.


Configuration des variables d'environnement

Le comportement de la commande history peut être personnalisé via des variables d'environnement :

Variable Description Valeur recommandée
HISTSIZE Nombre de commandes d'historique conservées en mémoire 5000
HISTFILESIZE Nombre de commandes conservées dans le fichier d'historique 10000
HISTCONTROL Contrôle la manière dont l'historique est enregistré ignoredups:erasedups
HISTIGNORE Spécifie les commandes à ne pas enregistrer "ls:cd:pwd:exit"

Exemple de configuration (à ajouter à~/.bashrc):

Exemple

export HISTSIZE=5000
export HISTFILESIZE=10000
export HISTCONTROL=ignoredups:erasedups
export HISTIGNORE="ls:cd:pwd:exit"
export HISTTIMEFORMAT="%F %T "

Scénarios d'application pratiques

Scénario 1 : Récupérer les commandes oubliées

Exemple

history | grep "apt install"

Scénario 2 : Compter les commandes les plus fréquemment utilisées

Exemple

history | awk '{CMD[$2]++;count++;} END {for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10

Scénario 3 : Sauvegarder les enregistrements d'historique

Exemple

history -a  # S'assurer que les dernières commandes ont été écrites dans le fichier
cp ~/.bash_history ~/command_history_backup_$(date +%F).txt

Notes

  1. Confidentialité et sécurité: Les enregistrements historiques peuvent contenir des informations sensibles (par ex. des mots de passe) ; protégez-les en conséquence
  2. Problème de terminaux multiples: Par défaut, les différentes sessions de terminal ne partagent pas l'historique en temps réel
  3. Perte d'historique: Une sortie anormale peut empêcher l'enregistrement des commandes
  4. Gestion des fichiers volumineux: Des fichiers d'historique trop volumineux peuvent affecter les performances

Résumé et exercices

  1. Passez en revue votre historique de commandes et trouvez les 5 commandes git les plus récemment utilisées

    history | grep git | tail -5
  2. Configurez votre environnement bash pour que l'historique comprenne des horodatages et ignore les commandes en double

  3. Créez un alias pour sauvegarder rapidement l'historique actuel dans un répertoire spécifié

    alias backup_history='cp ~/.bash_history ~/history_backups/history_$(date +%Y%m%d_%H%M%S).txt'
  4. Essayez d'utiliserCtrl+Rpour rechercher une commande complexe que vous avez utilisée auparavant.

En maîtrisant la commande history, vous pouvez améliorer considérablement votre efficacité dans le terminal Linux, réduire les saisies redondantes et mieux gérer l'historique de vos opérations en ligne de commande.

Linux 命令大全Encyclopédie des commandes Linux

Autres extensions