Est - il possible d'exclure des commandes comme rm -rf
, svn revert
d'être stockés dans l' histoire se bash? En fait, par erreur, je les ai émis un certain nombre de fois, même si je n'ai pas l'intention de le faire, simplement parce que je fais les choses rapidement et que c'est arrivé. Par conséquent, je perds beaucoup de travail jusqu'à présent.
bash
command-history
Ravi Gupta
la source
la source
Réponses:
Vous voudrez peut-être
$HISTIGNORE
: "Une liste de modèles séparés par deux-points pour décider quelles lignes de commande doivent être enregistrées dans la liste d'historique." Cette ligne dans votre ~ / .bashrc devrait faire le travail:Vous pouvez également ajouter un espace au début d'une commande pour l'exclure de l'historique. Cela fonctionne tant que
$HISTCONTROL
contientignorespace
ouignoreboth
, ce qui est par défaut sur n'importe quelle distribution que j'ai utilisée.la source
y
, après toutcp
(aliasécp -i
) passer. Donc , j'Aliasedy
quealias y='$(history | awk '"'"'END{if(NF==2 && $2=="y"){print "history -d " $1}}'"'"')'
... MaisHISTIGNORE
est meilleure méthode qu'il regarde. :) Merci.export HISTCONTROL="ignorespace"
à votre~/.bashrc
pour ignorer les commandes qui commencent par des espaces.Bien que cela diffère légèrement de la question d'OP, lorsque je ne veux pas intentionnellement qu'une commande soit stockée dans l'historique bash, je les préfixe avec un espace. Fonctionne dans Ubuntu et ses variantes, je ne sais pas si cela fonctionne sur tous les systèmes.
la source
$HISTCONTROL
(voir ma réponse).Je tue généralement mon instance bash quand j'ai fait des choses que je ne veux pas dans l'histoire.
$$ représente le processus actuel - bash lorsque vous l'exécutez à partir du shell. Vous pouvez utiliser $ BASHPID, mais c'est plus en tapant :-)
la source
HISTFILE=/dev/null
est une meilleure option.HISTFILE=
fonctionne simplement dans bash et ksh.unset HISTFILE