Pour ne pas enregistrer une seule commande dans votre historique, il suffit de la précéder d'un espace (marqué ␣
ici):
$ echo test
test
$ history | tail -n2
3431 echo test
3432 history | tail -n2
$ ␣echo test2
test2
$ history | tail -n2
3431 echo test
3432 history | tail -n2
Ce comportement est défini dans votre ~/.bashrc
fichier, à savoir dans cette ligne:
HISTCONTROL=ignoreboth
man bash
dit:
HISTCONTROL
Une liste de valeurs séparées par deux-points contrôlant la façon dont les commandes sont enregistrées dans la liste d'historique. Si la liste de valeurs inclut
ignorer l'espace , les lignes qui commencent par un caractère espace ne sont pas enregistrées dans la liste d'historique . Une valeur ignorée entraîne la non- sauvegarde des lignes correspondant à l'entrée d'historique précédente. Une valeur de
ignoreboth est un raccourci pour ignorespace et ignoredups .
ignoredups
soit dit en passant est la raison pour laquelle history | tail -n2
apparaît une seule fois dans l'histoire dans le test ci-dessus.
L'historique d'un terminal est enregistré dans la RAM et vidé dans votre ~/.bash_history
dès que vous fermez le terminal. Si vous souhaitez supprimer une entrée spécifique de votre, ~/.bash_history
vous pouvez le faire avec sed
:
# print every line…
sed '/^exit$/!d' .bash_history # … which is just “exit”
sed '/^history/!d' .bash_history # … beginning with “history”
sed '/>>log$/!d' .bash_history # … ending with “>>log”
sed '\_/path/_!d' .bash_history # … containing “/path/” anywhere
Dans le dernier j'ai changé le délimiteur par défaut /
pour _
qu'il est utilisé à l' intérieur du terme de recherche, en fait , c'est égal à sed -i '/\/path\//d' .bash_history
. Si la commande ne produit que les lignes que vous souhaitez supprimer, ajoutez l' -i
option et passez !d
à d
pour effectuer la suppression:
# delete every line…
sed -i '/^exit$/d' .bash_history # … which is just “exit”
sed -i '/^history/d' .bash_history # … beginning with “history”
sed -i '/>>log$/d' .bash_history # … ending with “>>log”
sed -i '\_/path/_d' .bash_history # … containing “/path/” anywhere