GNU/Linux >> Tutoriels Linux >  >> Linux

pourquoi supprimer l'historique bash n'est pas suffisant?

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.


Linux
  1. Analyser l'historique de Bash sous Linux

  2. Commande introuvable dans Bash corrigé

  3. Pourquoi Bash ne stocke-t-il pas les commandes commençant par des espaces ?

  4. Nettoyage automatique de l'historique de Bash ?

  5. Pourquoi `exit &` ne fonctionne pas ?

Commande d'historique sous Linux (historique de bash)

Pourquoi Nullglob n'est-il pas par défaut ?

Pourquoi le fichier de traduction Bash ne contient-il pas tous les textes d'erreur ?

Pourquoi Bash est-il partout (dans la plupart sinon toutes les distributions Linux) ?

Comment :Historique Bash/shell illimité ?

Pourquoi ne pas bloquer ICMP ?