Lors de l’exécution, l’historique est uniquement conservé en mémoire (par défaut) si:
- set -o historique (un Hdansecho "$-") est défini.
- HISTSIZE n'est pas 0et
- HISTIGNORE n’est pas *(ou un autre schéma très restrictif).
En cas d'échec de l'un des éléments ci-dessus, aucun historique n'est stocké en mémoire et, par conséquent, aucun historique ne peut ni ne sera écrit sur le disque.
L’historique en mémoire est écrit sur le disque si:
- HISTFILESIZE n'est pas 0 et 
- HISTFILE n'est pas désactivé.
Mais seulement lorsque le shell se ferme ou si les commandes history -a(ajouter) ou history -w(écrire) sont exécutées.
Pour déclencher une écriture immédiate sur le disque, vous pouvez utiliser la variable:
 PROMPT_COMMAND='history -a'
qui sera appendles newlignes de l'historique dans le fichier d'historique. Ce sont des lignes d’historique saisies depuis le début de la session bash en cours, mais qui ne sont pas déjà ajoutées au fichier d’historique.
Ou:
 PROMPT_COMMAND='history -w'
Pour écraser l'historique dans HISTFILE avec la liste de la mémoire.
Vous pouvez donc supprimer une commande de l'historique en mémoire:
 $ history 5
  6359  ls
  6360  cd ..
  6361  comand --private-password='^%^&$@#)!@*'
  6362  top
  6363  set +o | less
 $ history -d 6361
 $ history 5
  6359  ls
  6360  cd ..
  6361  top
  6362  set +o | less
 $ history -w
Et écrivez-le sur le disque avec la dernière commande:
 history -w    # with `shopt -u histappend` unset
               
              
.bash_historyfichier devient accidentellement la propriété de root, les choses cessent de fonctionner. Dans ce cas, vérifiez la propriété et utilisez-lasudopour la réparer si nécessaire.