J'ai beaucoup de mal à configurer l'historique du terminal de Bash comme je le souhaite. Je voudrais ne pas avoir d'entrées en double et si j'entre une commande, je veux qu'elle soit enregistrée et les doublons ci-dessus supprimés.
Le problème est que la history
commande me montre qu'elle fonctionne comme je le souhaite, mais une fois déconnecté, les doublons reviennent. Je pense que cela ajoute simplement l’histoire à l’historique. J'ai ces lignes dans mon .bashrc
dossier:
HISTCONTROL=ignoreboth:erasedups
shopt -u histappend
J'ai même essayé de ne pas commenter shopt
, mais il ajoute toujours l'historique à la déconnexion. Comment puis-je avoir l'historique exactement tel qu'il est avant de me déconnecter?
bash
command-history
craig
la source
la source
Réponses:
Le
erasedups
devrait faire ce que vous voulez en ce qui concerne les doublons - notez simplement que l'effacement des doublons est déclenché au moment de l'ajout d'une nouvelle entrée à l'historique et qu'il efface toutes les anciennes occurrences d'une commande, ne laissant que la plus récente.Répondre à la question " Comment puis-je avoir l'historique exactement tel qu'il est avant de me déconnecter? "
Selon moi, cela ne peut être utile qu'une fois de temps en temps. (Sinon, pourquoi utiliseriez-vous l’historique?) Vous pouvez le faire en
Cela efface toutes les entrées d'historique conservées actuellement en mémoire, puis relit tout l'historique à partir du fichier d'historique. Ainsi, toutes les commandes que vous avez émises depuis la connexion à la session shell actuelle sont oubliées. Je trouve cela très utile dans les situations où je fais beaucoup de tests (de nombreuses commandes similaires, mais pas vraiment en double) et que je ne veux pas que mon historique soit corrompu par cela - j'ai donc un alias pour cela dans mon
.bashrc
:(
hrr
à retenir comme "histoire relue").la source