J'utilise le code suivant dans mon fichier .bash_profile pour filtrer et dédupliquer mon historique bash:
shopt -s histappend
HISTSIZE=100000
HISTFILESIZE=100000
HISTCONTROL=ignoredups:erasedups
PROMPT_COMMAND="history -a;history -c;history -r;$PROMPT_COMMAND"
Cela fonctionne à merveille, mais l'effet secondaire suivant est produit:
Disons que j'ai deux terminaux / onglets ouverts:
- 1er onglet: dossier:,
~
dernière commande exécutée:wget big_file...
(ou quelque chose de long) - 2ème onglet: dossier: un dossier temporaire aléatoire, dernière commande exécutée:
rm -rf *
Maintenant, si je passe du deuxième au premier onglet et que j'appuie sur la touche HAUT, la dernière commande sera réexécutée, comme si tout allait bien.
Vient maintenant le moment dangereux: si j'appuie à nouveau sur UP, cela s'insérera rm -rf *
et si je ne le remarque pas, à l'instant même où je viens de supprimer toutes mes données.
Pouvez-vous me recommander un paramètre .bash_profile pour l'historique qui supprime la duplication / filtrage mais ne permet pas que de telles choses se produisent?
Réponses:
Vous pouvez utiliser
HISTIGNORE
pour ignorer ceux que vous considérez dangereux.la source