web-dev-qa-db-fra.com

En excluant certaines des commandes d'être stockées dans l'histoire de Bash

Y a-t-il un moyen d'exclure les commandes comme rm -rf, svn revert d'être stocké dans l'histoire de Bash? En fait, je, par erreur, les a émis plusieurs fois même si je n'ai aucune intention de faire, juste parce que je fais des choses rapidement et que cela s'est passé. Il en résulte donc perte de beaucoup de travail que j'ai fait jusqu'à présent.

38
Ravi Gupta

Vous voudrez peut-être $HISTIGNORE: "Une liste de schémas séparés par le côlon utilisée pour décider quelles lignes de commande doivent être enregistrées sur la liste d'historique." Cette ligne dans votre ~/.bashrc devrait faire le travail:

HISTIGNORE='rm *:svn revert*'

De plus, vous pouvez ajouter un espace au début d'une commande pour l'exclure de l'histoire. Cela fonctionne aussi longtemps que $HISTCONTROL Contient ignorespace ou ignoreboth, qui est par défaut sur une distribution que j'ai utilisée.

63
l0b0

Bien que d'aller légèrement différent de la question de l'OP, lorsque j'aurais intentionnellement voulu qu'une commande soit stockée dans l'histoire de Bash, je les préfixe avec un espace. Fonctionne à Ubuntu et à ses variantes, je ne sais pas si cela fonctionne sur tous les systèmes.

6
k4rtik

Je tue généralement mon instance Bash quand j'ai fait des choses que je ne veux pas dans l'histoire.

kill -9 $$

$$ représente le processus actuel - BASH lorsque vous l'exécutez à partir de la coquille. Vous pouvez utiliser $ Bashpid, mais c'est plus en tapant :-)

1
Commander Keen