Utilisation et personnalisation de l'historique des commandes de bash

Utilisation et personnalisation de l'historique des commandes de bash
Le shell bash est l'environnement de ligne de commande par défaut disponible dans la plupart des distributions Linux. Semblable à tous les environnements shell, il conserve un enregistrement des commandes qui ont été exécutées précédemment par l'utilisateur. Ce dossier est conservé et maintenu même nous redémarrons notre système.

Vous connaissez peut-être la commande de base de l'historique, mais il peut faire beaucoup plus que cela. L'histoire de bash est généralement stockée dans le fichier ~ /.bash_history. Il vous permet de vous rappeler et de réutiliser l'enregistrement stocké de manière efficace pour tirer le meilleur parti de la fonction de sauvegarde de l'histoire de bash. Non seulement cela, mais vous pouvez également personnaliser et contrôler la sortie de commande bash comme vous le souhaitez.

Dans cet article, nous expliquerons comment utiliser et personnaliser efficacement l'historique des commandes de bash pour tirer le meilleur parti de ses fonctionnalités.

Nous avons utilisé Debian 10 pour exécuter les commandes et la procédure mentionnées dans cet article.

Utilisation de l'historique des commandes bash

Voir l'histoire de bash

Pour voir l'histoire entière des commandes shell, vous pouvez exécuter la commande suivante dans le terminal:

$ HISTORY

Il répertorie l'historique entier pour un utilisateur spécifique du fichier historique stocké spécifiquement pour cet utilisateur. Vous verrez toutes les commandes commençant par un nombre alloué à chacun d'eux. Il répertorie les commandes plus anciennes en haut en commençant par le numéro 1 et les commandes les plus récentes en bas.

Recherche de la sortie de l'historique

Vous pouvez également rechercher un mot-clé spécifique à partir de la sortie de l'historique. Associez la commande historique avec Grep et un mot-clé spécifique pour rechercher des commandes qui correspondent à votre mot-clé spécifié comme suit:

$ HISTORY | grep [mot-clé]

Par exemple, pour répertorier toutes les commandes qui incluent le mot-clé «trouver», la commande serait:

$ HISTORY | trouvaille grep

Affichage des commandes N Last N

La commande historique répertorie par défaut le dernier nombre de commandes exécutées par un utilisateur. Dans le cas, vous souhaitez répertorier uniquement un numéro spécifique, disons N Nombre de la dernière commande exécutée, exécutez la commande suivante dans le terminal:

$ HISTORY N

Par exemple, pour répertorier les 7 dernières commandes exécutées, la commande serait:

$ HISTORY 7

Pour afficher le numéro des commandes N Run des N qui incluent un mot-clé spécifique, vous pouvez utiliser la syntaxe suivante:

$ HISTORY | Mot-clé grep | Tail -N

Un exemple de cela serait de visualiser les 4 dernières commandes exécutées avec le mot-clé «Java».

$ HISTORY | grep java | queue -n

Affichage des commandes les plus anciennes

Pour afficher le plus ancien nombre de commandes, vous pouvez utiliser la syntaxe suivante dans le terminal:

$ HISTORY | tête -n

Pour afficher le plus ancien nombre de commandes qui comprend un mot-clé spécifique, utilisez la syntaxe suivante:

$ HISTORY | mot-clé grep | tête -n

Un exemple de cela serait de visualiser les 4 commandes exécutées les plus anciennes avec le mot-clé «Java».

$ HISTORY | grep java | tête -4

Clear Bash History complètement

Pour supprimer l'intégralité de l'historique des bash, exécutez la commande suivante dans le terminal:

$ HISTORY -CW

Personnalisation de l'historique des commandes de bash

Pour personnaliser l'historique des commandes de bash, nous devrons apporter des modifications dans le ~ /.fichier bashrc. Pour modifier le ~ /.Fichier Bashrc, utilisez la commande suivante:

$ nano ~ /.bashrc

Une fois que vous avez terminé avec la modification du fichier, utilisez Ctrl + O et Ctrl + X pour enregistrer et fermer l'éditeur Nano.

Ensuite, exécutez la commande suivante pour appliquer les modifications:

$ source ~ /.bashrc

Ajouter la date et l'horodatage à l'historique des bash

Si vous souhaitez afficher la date et l'horodatage avec l'historique des commandes, vous pouvez le faire en ajoutant la ligne suivante dans ~ /.Bashrc:

$ export HistTimeFormat = '% f,% t'

Maintenant, exécutez le histoire commande et il affichera l'historique des commandes avec les données et l'horodatage correspondants.

Augmentation de la taille de l'histoire de bash

Bash par défaut conserve 500 commandes dans la liste d'historique. Cependant, nous pouvons modifier cette valeur en utilisant la valeur histsize.

Pour afficher la taille actuelle de l'historique des bash, exécutez la commande suivante dans le terminal:

$ echo $ histsize

De même, la taille par défaut du fichier d'historique bash est de 500. C'est le nombre maximum d'entrées contenues dans le fichier d'historique.

Pour augmenter la taille de l'histoire de bash, disons 10000, ajoutez les lignes suivantes dans ~ /.Fichier Bashrc:

$ Histsize = 10000
$ Histfilesize = 10000

Pour vérifier si la taille de l'historique des bash a changé avec succès, exécutez les commandes suivantes dans le terminal:

$ echo $ histsize
$ echo $ histfilesize

Ajouter les commandes de bash dans le fichier historique

Lorsqu'une session bash est fermée, vous pouvez choisir de l'écraser ou d'ajouter les commandes dans le fichier historique à l'aide de la variable HistAPPEND. Pour afficher les paramètres actuels, exécutez la commande suivante dans le terminal:

$ shopt HistAPPEND

Le «ON» dans la sortie affiche l'option HistAPPEND est activé et les commandes seront annexées dans le fichier d'historique au lieu d'écraser. Alors que «OFF» s'affiche, l'option HistAPPEND est désactivée et le fichier sera écrasé.

Ouvrez le ~ /.Fichier Bashrc et:

Ajoutez la ligne suivante, si vous souhaitez ajouter les commandes dans le fichier d'historique au lieu d'écraser:

$ shopt -s histappend

Ou ajoutez la ligne suivante, si vous souhaitez désactiver l'option d'ajout et que vous souhaitez écraser le fichier à la sortie:

$ shopt -u histappend

Store Bash History immédiatement

Bash par défaut n'enregistre que la session dans le fichier d'historique bash une fois la session terminée. Pour modifier ce comportement par défaut et faire pour enregistrer instantanément chaque commande que vous avez exécutée, vous pouvez utiliser Prompt_Command.

Modifier le ~ /.Fichier Bashrc et ajouter la ligne suivante:

$ Prompt_command = 'History -a'

Maintenant, chaque fois que vous exécutez une commande, il sera immédiatement ajouté au fichier d'historique.

Contrôler l'histoire de bash

Nous pouvons contrôler la façon dont Bash enregistre l'historique de notre commande à travers la variable HistControl. Nous pouvons le spécifier pour ignorer les entrées en double et / ou pour ignorer les entrées avec des espaces blancs principaux.

  • Ignorespace - élimine les commandes qui commencent par une liste d'historique de l'espace.
  • IgnoredUps - Éliminez les commandes en double.
  • Ignoreboth - activer à la fois l'ignorance et l'espace d'ignorance
  • effacement - éliminer les doublons de toute la liste

Pour appliquer ces fonctions, ouvrez le ~ /.bashrc et ajouter la ligne suivante avec des valeurs séparées par le côlon comme suit:

$ Export HistControl = Ignorespace: IgnoredUps

Ignorer les commandes spécifiques

Nous pouvons également contrôler les commandes à ignorer dans l'histoire en utilisant un historignore variable. Il s'agit d'une liste de modèles séparés par le côlon dans lequel nous pouvons spécifier toutes les commandes que nous voulons ignorer de l'histoire.

Par exemple, si nous ne voulons pas répertorier les commandes de base telles que History, LS, les commandes PWD dans la liste d'historique, nous ajoutons la ligne suivante dans le ~ /.Fichier Bashrc:

$ Export HistIgnore = "History: LS: PWD:"

Avec l'historique des commandes Linux Bash, vous pouvez faire bien plus que répéter les anciennes commandes. Dans cet article, nous avons appris à utiliser l'historique des bash pour afficher les commandes qui ont été exécutées précédemment et ont également appris à contrôler la façon dont Bash Saving l'histoire des commandes.