GNU/Linux >> Tutoriels Linux >  >> Linux

Comment utiliser la commande history sous Linux

Comme je passe de plus en plus de temps dans des sessions de terminal, j'ai l'impression de trouver continuellement de nouvelles commandes qui rendent mes tâches quotidiennes plus efficaces. L'history GNU commande est celle qui a vraiment changé ma journée de travail.

L'history GNU La commande conserve une liste de toutes les autres commandes qui ont été exécutées à partir de cette session de terminal, puis vous permet de rejouer ou de réutiliser ces commandes au lieu de les retaper. Si vous êtes un utilisateur de terminal expérimenté, vous connaissez la puissance de l'history , mais pour nous les amateurs ou les nouveaux administrateurs système, history est un gain de productivité immédiat.

Tout d'abord, l'history command n'est pas réellement une commande. Vous pouvez le constater par vous-même en recherchant la commande sur votre système :

$ which history
which: no history in (/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/local/sbin)

Votre ordinateur ne trouve pas l'history commande car il s'agit d'un mot-clé intégré de votre shell. Comme il est écrit dans le shell que vous utilisez, le comportement de l'historique peut varier selon que vous utilisez Bash, tcsh, Zsh, dash, fish, ksh, etc. Cet article est basé sur l'implémentation Bash de l'historique, donc certaines fonctions peuvent ne pas fonctionner dans d'autres shells. Cependant, la plupart des fonctions de base sont les mêmes.

Histoire 101

Pour voir l'history en action, ouvrez un programme terminal sur votre installation Linux et tapez :

$ history

Voici la réponse que j'ai obtenue :

1  clear
2  ls -al
3  sudo dnf update -y
4  history

L'history commande affiche une liste des commandes saisies depuis le démarrage de la session. La joie de l'history est que maintenant vous pouvez rejouer n'importe lequel d'entre eux en utilisant une commande telle que :

$ !3

Le !3 La commande à l'invite indique au shell de réexécuter la commande à la ligne 3 de la liste d'historique. Je pourrais également accéder à cette commande en saisissant :

$ !sudo dnf

Cela invite history pour rechercher la dernière commande qui correspond au modèle que vous avez fourni (dans ce cas, ce modèle est dnf ) et exécutez-le.

Historique des recherches

Vous pouvez également utiliser l'history pour relancer la dernière commande saisie en tapant !! . En l'associant à grep , vous pouvez rechercher des commandes correspondant à un modèle de texte ou, en l'utilisant avec tail , vous pouvez trouver les dernières commandes que vous avez exécutées. Par exemple :

$ history | grep dnf
3  sudo dnf update -y
5  history | grep dnf

$ history | tail -n 3
4  history
5  history | grep dnf
6  history | tail -n 3

Une autre façon d'accéder à cette fonctionnalité de recherche consiste à taper Ctrl-R pour invoquer une recherche récursive de votre historique de commandes. Après avoir tapé ceci, l'invite devient :

(reverse-i-search)`':

Vous pouvez maintenant commencer à taper une commande, et les commandes correspondantes seront affichées pour que vous puissiez les exécuter en appuyant sur Retour ou Entrez .

Modifier une commande exécutée

Vous pouvez également utiliser l'history pour relancer une commande avec une syntaxe différente. Vous pouvez réviser l'historique avec history . Par exemple, si je veux modifier ma commande précédente history | grep dnf à history | grep ssh , je peux exécuter ce qui suit à l'invite :

$ ^dnf^ssh^

La commande est réexécutée, mais avec dnf remplacé par ssh . En d'autres termes, cette commande est exécutée :

$ history | grep ssh

Suppression de l'historique

Il peut arriver un moment où vous souhaitez supprimer certaines ou toutes les commandes de votre fichier d'historique. Si vous souhaitez supprimer une commande particulière, entrez history -d <line number> . Pour effacer tout le contenu du fichier historique, exécutez history -c .

Le fichier d'historique est stocké dans un fichier que vous pouvez également modifier. Les utilisateurs du shell Bash le trouvent dans leur répertoire personnel sous la forme .bash_history .

Étapes suivantes

Il y a un certain nombre d'autres choses que vous pouvez faire avec history :

  • Définissez la taille de votre tampon d'historique sur un certain nombre de commandes
  • Enregistrer la date et l'heure de chaque ligne dans l'historique
  • Empêcher certaines commandes d'être enregistrées dans l'historique

Pour plus d'informations sur l'history commande et d'autres choses intéressantes que vous pouvez faire avec, jetez un œil aux articles de Seth Kenlon sur l'analyse de l'historique, les modificateurs de recherche d'historique et le manuel GNU Bash.


Cet article a été initialement publié en juin 2018 et a été mis à jour avec des informations supplémentaires par l'éditeur.


Linux
  1. Comment utiliser la commande Linux grep

  2. Comment utiliser la commande sudo sous Linux

  3. Comment utiliser la commande Su sous Linux

  4. Comment utiliser la commande id sous Linux

  5. Comment utiliser la commande "screen" sous Linux

Comment utiliser la commande Linux Top

Comment utiliser la commande fd sur le système Linux

Comment utiliser la commande wget sous Linux ?

Comment utiliser la commande xargs sous Linux ?

Comment utiliser la commande RPM sous Linux

Comment utiliser la commande which sous Linux