Garder toutes les commands dans l'historique de bash?

J'ai la question inverse à cela . Comment conserver toutes les commands dans l'historique de bash?

Dans Ubuntu depuis un certain time maintenant, la valeur par défaut pour bash est d'oublier les commands avec le code de sortie non réussi. C'est incroyablement stupide et j'irais avec la réponse acceptée à la question liée.

Un user d'Unix @goldilocks a fait remarquer que je suis peut-être confus par la directive ignoreboth .

mettre pastie

Je soupçonne que tu ne fais pas tout ce que tu penses faire. Exécuter frobiz:, alors voyez si c'est dans votre histoire. Frobiz devrait normalement échouer – il n'y a pas une telle command. Mais ce sera dans votre histoire. Je soupçonne que vous essayez quelque chose comme ls *! [0-9], qui échouera avec

ls !(*.[0-9]) base ![0-9]": event not found 

La chose est; en cas d'échec comme ceci, bash ne tente jamais d'exécuter la command, donc il ne rentre pas dans l'historique. IGNOREBOTH n'est pas pertinent à cela – il fonctionne comme annoncé. Essayez d'échapper à la! (que la coquille prend pour se référer, ironiquement, à une command dans l'histoire) – par exemple:

 ls \! ... 

Et cela fonctionnera probablement comme prévu.

Je pense que vous êtes confus à cause de HISTCONTROL=ignoreboth . Voir ici: http://www.linuxjournal.com/content/using-bash-history-more-efficiently-histcontrol