Je pensais que la suppression de mon historique de bash était suffisante pour effacer mon historique de bash, mais hier mon chat jouait sur le côté droit de mon clavier et quand je suis rentré dans mon ordinateur, j'ai vu quelque chose que j'ai tapé il y a un mois, puis j'ai commencé à appuyez sur toutes les touches comme un fou à la recherche de ce qui aurait pu le déclencher. Il s'avère que la touche UPARROW affiche mon historique de bash même après la suppression de .bash_history.
Comment puis-je supprimer mon historique bash pour de vrai?
~/.bash_history
supprime vraiment~/.bash_history
.... mais (à moins que vous ne preniez des mesures pour l'empêcher, comme effacer l'historique en mémoire en exécutanthistory -c
juste avant de vous déconnecter ou de le paramétrerHISTFILE=/dev/null
ou simplement de l' installerunset
) bash ne fera que sauvegarder son historique actuel à sa sortie . BTW, laHISTSIZE
variable env indique à bash le nombre de lignes d'historique à conserver en mémoire etHISTFILESIZE
indique à bash le nombre maximal de lignes d'historique à enregistrer. ces deux paramètres peuvent être définis, par exemple, votre~/.bashrc
. PS: votre chat mérite une 2ème récompense pour vous avoir enseigné une précieuse leçon :)Réponses:
Dans certains cas (certaines versions bash), faire:
Ou simplement
Effacera l' histoire en mémoire (flèches haut et bas aura aucune commande à la liste), puis d' écrire que le
$HISTFILE
fichier (si le$HISTFILE
est tronqué par l'instance de bash en cours d' exécution).Parfois, bash choisit de ne pas tronquer le
$HISTFILE
fichier même avec l'histappend
option non$HISFILEZIZE
définie et définie sur 0.Dans de tels cas, l'option nuke fonctionne toujours:
Cela efface l'historique des commandes enregistrées en mémoire et toutes les commandes précédemment enregistrées dans un fichier. Cela garantira que le shell en cours d'exécution n'a pas d'historique enregistré dans la 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 au
$HISTFILE
démarrage de bash (ou lorsqu'unehistory -r
est exécutée) .S'il est également nécessaire que rien d'autre (pas de nouvelles commandes) de la session en cours ne soit écrit dans le fichier d'historique, alors,
unset HISTFILE
empêchera une telle journalisation.la source
history -c && history -r
remplacerait votre historique actuel par un historique modifié manuellement. Dans certains cas, cela peut être mieux que de jeter toute l'histoire.bash
a un historique de session en mémoire qui est écrit dans un fichier si la variable shellHISTFILE
est définie sur un nom de fichier lors de la fermeturebash
.Si vous supprimez le fichier pointé par
HISTFILE
, désactivez cette variable et quittezbash
, cette session shell ne laissera aucun historique persistant.Le fait de ne pas définir la
HISTFILE
variable mais de supprimer le fichier viderait simplement l'historique persistant, mais l'historique de la session en cours serait enregistré à la fermeture du shell.la source
history -c; history -w
effacera la mémoire et l'historique des fichiers. La suppression de HISTFILE n'est requise que si aucune autre commande ne doit être enregistrée dans l'historique (pas exactement ce qui a été demandé à IMhO)."Comment puis-je supprimer mon historique bash pour de vrai?"
Quittez bash, démarrez un autre shell, supprimez le fichier d'historique bash.
ou
déconnexion, connectez-vous à un autre compte disposant d'une autorisation d'écriture sur le fichier d'historique, supprimez le fichier d'historique.
la source
Tout en quittant la coque, faites tout en une fois, comme
la source