Dans certains cas (certaines versions de bash), faire un :
$ history -c; history -w
Ou tout simplement
$ history -cw
Effacera l'historique en mémoire (les flèches haut et bas n'auront aucune commande à lister) puis écrira cela au $HISTFILE
fichier (si le $HISTFILE
est tronqué par l'instance bash en cours d'exécution).
Parfois, bash choisit de ne pas tronquer le $HISTFILE
fichier même avec histappend
option non définie et $HISFILEZIZE
mis à 0.
Dans de tels cas, l'option nuke fonctionne toujours :
history -c; >$HISTFILE
Cela efface la liste historique des commandes enregistrées en mémoire et toutes les commandes précédemment enregistrées dans le fichier. Cela garantira que le shell en cours d'exécution n'a pas d'historique enregistré en mémoire ou sur le disque, cependant, d'autres instances en cours d'exécution de bash (où l'historique est actif) peuvent avoir une copie complète des commandes lues à partir de $HISTFILE
lorsque bash a été démarré (ou lorsqu'un history -r
est exécuté).
Si c'est aussi requis que rien d'autre (aucune nouvelle commande) de la session en cours ne soit écrit dans le fichier d'historique, alors, unset HISTFILE
empêchera une telle journalisation.
bash
a un historique de session en mémoire qui est écrit dans le fichier si la variable shell HISTFILE
est défini sur un nom de fichier lorsque bash
quitte.
Si vous supprimez le fichier pointé par HISTFILE
, désactivez cette variable et quittez bash
, alors cette session shell ne laissera aucun historique persistant.
Échec de la désactivation du HISTFILE
mais la suppression du fichier viderait simplement l'historique persistant, mais l'historique de la session en cours serait enregistré à la sortie du shell.