Tutoriel sur les commandes historiques de Linux pour les débutants (8 exemples)

Si ton travail implique l’exécution d’outils et de scripts sur la ligne de commande Linux, je suis sûr qu’il y a beaucoup de commandes que tu dois exécuter chaque jour. Les novices de la ligne de commande doivent savoir qu’il existe un outil – appelé historique – qui te donne une liste des commandes que tu as exécutées précédemment.

Dans ce tutoriel, nous allons aborder les bases de la commande historique à l’aide d’exemples faciles à comprendre. Mais avant cela, il est bon de mentionner que tous les exemples ici ont été testés sur une machine Ubuntu 16.04LTS.

Commande Linux history

Si tu sais comment utiliser efficacement l’historique de ta ligne de commande, tu peux gagner beaucoup de temps au quotidien. Voici quelques exemples sous forme de questions-réponses qui devraient te donner une bonne idée de la façon dont tu peux utiliser la commande historique à ton avantage.

Q1. Comment fonctionne la commande d’historique ?

L’utilisation de base est simple : il suffit d’exécuter la commande « historique ».

history

Comment fonctionne la commande d'historique

Tu peux alors voir que tes commandes précédemment exécutées sont affichées dans la sortie. Note que j’ai utilisé la commande‘more‘ pour m’assurer que l’affichage de la sortie est interrompu à la première page (la sortie complète de ‘history’ est généralement très longue).

Q2. Comment faire pour que l’historique affiche aussi la date et l’heure ?

Si tu veux que la commande historique affiche la date et l’heure d’exécution de chaque commande, tu peux le faire en exportant la variable HISTTIMEFORMAT de la manière suivante :

export HISTTIMEFORMAT="%F %T: "

C’est tout. Maintenant, lorsque tu exécuteras la commande ‘historique’, tu verras les informations de date et d’heure dans la sortie.

Comment faire pour que l'historique affiche aussi la date et l'heure

Si tu considères que la date et l’heure sont les mêmes pour toutes les commandes, l’explication suivante devrait clarifier les choses :

If you set the HISTTIMEFORMAT in bash your new entries get stored in the history file with a 
timestamp, older commands that don't have a timestamp (those before you ever set HISTTIMEFORMAT
will display one and the same date-time-stamp (I assume the one from the first entry found with a
real timestamp).

This problem should solve itself after your complete history has been updated in a few days.

You can look in ~/.bash_history to see what is the first line that has a date-time-stamp.
Those are lines starting with a # followed by a (currently) 10 digit number.

Q3. Comment faire pour que l’historique cesse d’enregistrer les commandes ?

Si une situation se présente dans laquelle tu ne veux pas que le système enregistre l’historique de tes commandes, tu peux le faire en utilisant la variable HISTSIZE. Exporte-la simplement avec la valeur zéro, et c’est bon.

Regarde l’exemple suivant :

Comment faire pour que l'historique cesse d'enregistrer les commandes

Comme tu peux le voir, exécuter la commande ‘history’ maintenant n’a donné aucun résultat.

Note qu’il existe aussi une variable HISTFILESIZE, voici la différence entre les deux :

HISTSIZE is the number of lines or commands that are stored in memory in a history list while your 
bash session is ongoing.

HISTFILESIZE is the number of lines or commands that (a) are allowed in the history file at startup
time of a session, and (b) are stored in the history file at the end of your bash session for use in
future sessions.

Q4. Comment faire pour que l’historique n’enregistre pas une seule commande ?

Tu peux le faire en définissant la variable HISTCONTROL sur ‘ignorespace’. Tu peux le faire de la façon suivante :

export HISTCONTROL=ignorespace

Maintenant, chaque fois que tu exécutes une commande que tu ne veux pas enregistrer dans l’historique, exécute-la simplement avec un espace en tête.

Q5. Comment effectuer une recherche rapide dans l’historique ?

Bien sûr, tu peux utiliser la commande grep pour rechercher des mots-clés ou des commandes spécifiques dans la sortie produite par la commande history. Cependant, il existe aussi une méthode beaucoup plus rapide : la recherche inversée.

C’est assez facile – il te suffit d’appuyer sur CTRL+R lorsque tu es sur la ligne de commande, et tu vois ton invite se transformer en quelque chose comme ça :

Tape maintenant le mot-clé que tu veux rechercher, et tu verras les suggestions correspondantes de l’historique sur la droite. Par exemple, j’ai tapé ‘man’ (sans guillemets), et le premier résultat que j’ai obtenu était ‘man apropos’.

Si ce n’est pas ce que tu cherches, tu peux obtenir le résultat correspondant suivant en appuyant à nouveau sur CTRL+R. Dans mon cas, le résultat suivant que j’ai obtenu est donc ‘man find search’.

Tu peux continuer à chercher de cette façon. Une fois que tu as obtenu le résultat que tu veux, appuie sur la touche flèche droite et tu obtiendras la commande complète sur ton invite.

Tu peux donc maintenant exécuter cette commande, ou l’utiliser comme tu le souhaites.

Q6. Comment exécuter la commande précédente ?

Il existe deux façons simples d’exécuter la dernière commande exécutée : appuie sur CTRL+P, ou exécute la commande suivante :

!!

Tu ne crois pas (particulièrement la deuxième façon) ? Essaie.

Si tu veux exécuter rapidement l’avant-dernière commande, tu peux le faire de la façon suivante :

!-1

Et ainsi de suite.

Q7. Comment faire pour que l’historique ignore les entrées dupliquées dans la sortie ?

Tu peux le faire en réglant la variable HISTCONTROL à ‘ignoreboth’ et ‘erasedups’. Tu peux le faire de la manière suivante :

echo HISTCONTROL=ignoreboth:erasedups

Maintenant, lorsque tu exécuteras la commande d’historique, la sortie ne contiendra pas de doublons.

Q8. Comment effacer l’historique ?

Si tu veux effacer l’historique existant pour pouvoir recommencer à zéro, utilise l’option de ligne de commande -c.

history -c

Conclusion

Tu seras probablement d’accord pour dire que l’historique est une commande très importante que tu dois connaître. Dans ce tutoriel, nous avons abordé plusieurs astuces/rubriques importantes pour tirer le meilleur parti de cet outil. Une fois que tu les auras pratiquées, consulte la page man de l’outil pour plus d’informations.

Vous aimerez aussi...