Customiser son historique sous linux

tuxastuces

Typiquement quand on tape dans un shell la commandehistory,vous avez un aperçu des dernières commandes passées.Le nombre de commandes historisées peut varier en fonction de la valeur affectée à la variable HISTSIZE de l’utilisateur avec lequel vous êtes connecté.
Et bien souvent c’est à coup de « grep » que l’on cherche parmi ce fatras d’informations.
Voici quelques astuces qui vous permettront d’y voir un peu plus clair et d’y gagner en efficacité de recherche.

1/ Raccourci clavier à retenir

  • CTRL + R => puis vous tapez le mot ou l’occurrence que vous cherchez.

Il vous affichera directement la ou les lignes de commandes qui « matchent » le mot recherché.
Pour passer à l’occurrence suivante , tapez à nouveau les touches [ctrl+r].

Parfois , je suis étonné de voir des linuxiens aguérris ne pas utiliser ce raccourci . Question d’habitude mais pourtant il facilite grandement la vie !

  • Exécuter la dernière commande qui contient le mot « ssh » par exemple:

!ssh

2/ Afficher la date et l’heure d’exécution des commandes:

export HISTTIMEFORMAT='%d/%m/%y %T'

De manière permanente:

echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc

3/ Supprimer les « commandes indésirables »

  • Supprimer les « doublons »

export HISTCONTROL=ignoredups

  • Ignorer les commandes « foirées »

export HISTCONTROL=ignorespace

ça vire toutes les commandes qui commencent par un « espace »

  • Combiner les 2 critères précédents

export HISTCONTROL=ignoreboth

Toutes ses modifs sont à enregistrer dans le /home/user/bashrc pour qu’elles soient pérennes.

puis recharger le fichier bash_profile:

source ~/.bashrc

4/ Bonus

Effacer tout l’historique

history -c

Empêcher les commandes de votre session en cours d’être logguées dans l’historique:

unset HISTFILE

Conclusion

Il existe bien d’autres commandes liées à la gestion de l’historique sous linux. N’hésitez pas à les partager dans les commentaires si vous pensez qu’elles pourraient être utiles à votre prochain 😉

Partager l'article

9 commentaires sur Customiser son historique sous linux

  1. Bonsoir !
    pas linuxien aguerri ici — plutôt adepte du libre et léger, quelques affinités avec la ligne de commande – genre plus apt que synaptic, plus xfce que gnome, plus openrc (ou s6, découvert aujourd’hui (cf. Obarun) que systemd — et pas impossible que j’aille fouiner du côté de BSD dans un avenir proche.

    Bref : merci beaucoup pour ce tip bienvenu… si seulement j’avais eu l’idée pourtant logique de taper
    man history
    plus tôt -_- »

    Bonne continuation !

  2. PS : dans le cas de

    echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc

    une ptite typo qui rend la chose pas très lisible (l’espace doit être après le guillemet et avant l’apostrophe pour que la chose soit lisible 😉 corrigée ci-dessous :


    echo 'export HISTTIMEFORMAT="%d/%m/%y %T" ' >> ~/.bashrc

    voire

    echo 'export HISTTIMEFORMAT="%d/%m/%y %T" : ' >> ~/.bashrc

    (en espérant que les balises soient activées dans les commentaires :$)

  3. #oops
    (après, promis j’arrête de spammer)

    echo 'export HISTTIMEFORMAT="%d/%m/%y %T"\ ' >> ~/.bashrc
    voire
    echo 'export HISTTIMEFORMAT="%d/%m/%y %T"\ \: \ ' >> ~/.bashrc

  4. en fait, history est une commande fascinante (et une bonne introduction aux shells pour moi) ^^

    un complément d’info sur « ignoredups » et « erasedups » pour les curieux

  5. J’adore tout ce qui peut personnaliser son « shell » alors j’apporte ma touche perso, ce que je fais:
    Dans ~/.inputrc j’ajoute (créer .inputrc s’il n’existe pas):
    « \e[A »: history-search-backward
    « \e[B »: history-search-forward
    Dans ~/.bashrc vérifier que  » shopt -s histappend  » est bien dé-commenté et j’ajoute en dessous:
    PROMPT_COMMAND=’history -a’
    On redémarre la session et il n’y a plus qu’à taper un début de commande déjà utilisée et de se servir des flèches [haut] ↑ et [bas] ↓ pour naviguer dans l’historique.
    Une astuce qui m’est très utile.

Leave a Reply

Votre adresse de messagerie ne sera pas publiée.


*