Si j'ai bien compris, l'historique est mis à jour à la fermeture du terminal. Mais parfois, mon ordinateur tombe en panne et le terminal ne se ferme pas correctement. Je perds ensuite les commandes de mon historique, ce qui est agaçant. Comment puis-je le vider immédiatement, de sorte que les entrées y restent même en cas de panne de mon ordinateur? Pour le moment, j'utilise this la solution de contournement, mais j'estime qu'il devrait y avoir un meilleur moyen.
J'utilise gnome-terminal sur Ubuntu 12.10.
Les réponses du lien que vous avez fourni à partir du site Super-utilisateurs ne doivent pas nécessairement être considérées comme des "solutions de contournement" du comportement par défaut de la commande history
. Le shell bash a un comportement sain et normal, par défaut.
Je recommande fortement de lire Comment éviter de perdre des lignes d’historique? pour obtenir une explication de ce que ces modifications apportées à history
font. De plus, vous devez être conscient de la raison pour laquelle il ne s’agit pas du comportement par défaut de la commande history
.
performances: puisque vous enregistrez toutes les commandes à partir de chaque fenêtre avec history -a
, le fichier .bash_history
peut s’agrandir de manière considérable et nécessiter davantage de ressources pour charger le shell bash. Cela peut entraîner des durées de démarrage plus longues (pour vos sessions de terminal, et non pas le démarrage global du système, en soi).
Si vous souhaitez sécuriser davantage le shell bash et le fichier .bash_history
par le biais d'un audit, consultez cet article: --- (Comment enregistrer l'historique ou "sécuriser" le bash contre la suppression de l'historique?
À l'occasion (par exemple, un système instable ou une panne de courant), j'ai trouvé les commandes ci-dessous utiles.
Ajoutez les lignes suivantes à votre fichier ~/.bashrc
:
unset HISTFILESIZE
HISTSIZE=3000
Prompt_COMMAND="history -a"
export HISTSIZE Prompt_COMMAND
shopt -s histappend
Assurez-vous de source votre fichier .bashrc
en utilisant la commande source ~/.bashrc
La réponse la plus simple et la plus pratique à la question "Comment sauvegarder l'historique des terminaux manuellement?":
history -a
Il peut également être intéressant d’envisager de passer à zsh, qui a setopt inc_append_history
("enregistre chaque commande avant son exécution").
Et cette question est également pertinente: Est-il possible d'écrire immédiatement dans .bash_history?
Pour enregistrer l’historique bash manuellement dans un fichier:
history -w ~/history.txt
vim ~/history.txt
Il exporte l'historique dans un fichier appelé history.txt. Vous pouvez ensuite l'afficher à l'aide de votre éditeur préféré.
Réponse copiée de http://tech.karbassi.com/2007/01/14/view-and-change-bash-history/