Recherche de site Web

Comment stocker toutes les commandes shell immédiatement après leur exécution dans .bash_history fichier


Lorsque vous travaillez avec la ligne de commande Linux, le fichier .bash_history joue un rôle essentiel en stockant les commandes que vous avez exécutées. Par défaut, les commandes ne sont stockées que lorsque vous quittez votre session de terminal, ce qui signifie qu’elles peuvent ne pas être enregistrées en temps réel. Cependant, il peut être utile de s’assurer que toutes les commandes sont enregistrées dans le fichier .bash_history immédiatement après l’exécution. Cela peut être particulièrement utile dans les environnements où vous devez effectuer le suivi des commandes à des fins d’audit ou si vous voulez vous assurer qu’aucune commande n’est perdue si le terminal se ferme de manière inattendue. Dans cet article, nous allons vous guider à travers les étapes à suivre pour obtenir ce comportement dans votre shell bash.

Dans ce tutoriel, vous allez apprendre :

  • Comment configurer votre shell pour enregistrer les commandes immédiatement après l’exécution
  • Comment vérifier que votre shell enregistre les commandes en temps réel

Configuration de l’enregistrement immédiat des commandes dans Bash

Pour vous assurer que chaque commande que vous exécutez dans votre terminal est immédiatement enregistrée dans le fichier .bash_history, vous devrez apporter quelques ajustements à votre configuration Bash. Suivez les étapes ci-dessous pour effectuer ces modifications :

  1. Modifier le fichier .bashrc : le fichier .bashrc est l’endroit où sont stockés les alias et les fonctions spécifiques à l’utilisateur, et c’est également l’endroit idéal pour configurer le comportement de votre historique.

    nano ~/.bashrc
  2. Dans ce fichier, vous allez insérer ou modifier les variables nécessaires pour contrôler le comportement de la commande history.

  3. Configurer HISTCONTROL : Par défaut, Bash ne peut pas stocker les commandes en double ou les commandes commençant par un espace. Pour vous assurer que toutes les commandes sont stockées, vous devez modifier la variable HISTCONTROL.

    HISTCONTROL=ignoredups:erasedups
  4. Ce paramètre supprime les entrées en double, ce qui garantit un fichier d’historique plus propre. Ajoutez cette ligne à votre fichier .bashrc.

  5. Définir PROMPT_COMMAND : la variable PROMPT_COMMAND dans Bash exécute les commandes avant l’affichage de l’invite Bash. Vous pouvez utiliser cette variable pour vous assurer que le fichier d’historique est mis à jour immédiatement après chaque commande.

    PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
  6. Cette configuration ajoute la commande au fichier d’historique, efface l’historique en mémoire et recharge le fichier d’historique à chaque exécution d’une commande.

  7. Définir HISTSIZE et HISTFILESIZE : ces deux variables contrôlent respectivement le nombre de commandes conservées en mémoire et stockées dans le fichier .bash_history.

    HISTSIZE=10000
    HISTFILESIZE=20000

    La définition de ces valeurs vous permet de disposer d’une mémoire tampon plus importante pour stocker l’historique de vos commandes, à la fois en mémoire et dans le fichier d’historique.

  8. Appliquer les modifications : Après avoir effectué les modifications, appliquez-les en vous procurant le fichier .bashrc. Cette étape chargera la configuration mise à jour sans avoir besoin de redémarrer votre terminal.

    source ~/.bashrc
  9. Cette commande rechargera votre configuration Bash, en appliquant toutes les modifications apportées au fichier .bashrc.

  10. Vérifiez la configuration : pour confirmer que vos commandes sont stockées immédiatement après l’exécution, vous pouvez effectuer un test rapide en exécutant quelques commandes et en vérifiant le fichier .bash_history.

    history | tail -n 5
  11. Cette commande affichera les cinq dernières commandes de votre historique. S’ils apparaissent instantanément après l’exécution, votre configuration est réussie.

Conclusion

En suivant les étapes décrites dans ce guide, vous pouvez vous assurer que chaque commande que vous exécutez dans votre shell Bash est immédiatement enregistrée dans votre fichier .bash_history. Ce mécanisme d’enregistrement en temps réel peut s’avérer inestimable pour maintenir un journal de commandes précis, éviter la perte de données et améliorer l’efficacité de votre flux de travail. Avec ces configurations, vous pouvez être sûr que votre historique de commandes est toujours à jour.

Articles connexes: