44 votes

Comment sauvegarder manuellement l'historique du terminal ?

Je crois savoir que le fichier d'historique est mis à jour lorsque le terminal quitte. Mais parfois, mon ordinateur tombe en panne, et le terminal ne se ferme pas proprement, et je perds alors ces commandes de mon historique, ce qui est ennuyeux. Comment puis-je faire en sorte qu'il se vide immédiatement, de sorte que les entrées soient toujours présentes même si mon ordinateur se plante ? Pour l'instant, j'utilise este mais je pense qu'il devrait y avoir une meilleure solution.

J'utilise gnome-terminal sur Ubuntu 12.10.

53voto

kqw Points 685

La réponse la plus simple et la plus efficace à la question "Comment sauvegarder manuellement l'historique des terminaux" :

history -a

history -a ajoutera l'historique de votre session actuelle au contenu du fichier d'historique.

Il peut également être intéressant d'envisager de passer à zsh, qui a setopt inc_append_history ("enregistrer chaque commande avant qu'elle ne soit exécutée").

Et cette question est également pertinente : Est-il possible de rendre immédiate l'écriture dans .bash_history ?

31voto

wanderer Points 311

Pour sauvegarder manuellement l'historique de bash dans un fichier :

history -w ~/history.txt
vim ~/history.txt

Il exporte l'historique dans un fichier appelé history.txt. Vous pouvez ensuite le visualiser à l'aide de votre éditeur préféré.

Réponse copiée à partir de http://tech.karbassi.com/2007/01/14/view-and-change-bash-history/

19voto

Kevin Bowen Points 18646

Les réponses figurant dans le lien que vous avez fourni à partir du site Super-Users ne doivent pas nécessairement être considérées comme des "solutions de contournement" de l'obligation d'information. history le comportement par défaut de la commande. Le Shell de bash a un comportement par défaut sain, prêt à l'emploi.

Je recommande vivement de lire Comment éviter de perdre des lignes d'historique ? pour une explication de ce que sont ces modifications à history font. En outre, il y a lieu d'être conscient des raisons pour lesquelles ce n'est pas le comportement par défaut de l'outil de gestion de l'information. history commandement.

  • performance - Puisque vous sauvegardez chaque commande de chaque fenêtre avec la fonction history -a le .bash_history peut devenir assez gros et nécessiter plus de ressources pour charger le Shell de bash. Cela peut entraîner des temps de démarrage plus longs (pour vos sessions de terminal, et non pour le démarrage global du système, en soi).

  • organisation - (extrait de l'article ci-dessus) "les commandes d'historique des shells interactifs simultanés (pour un utilisateur donné) seront entrelacées. Par conséquent, l'historique n'est pas une liste séquentielle garantie des commandes telles qu'elles ont été exécutées dans un seul Shell."

Si vous êtes soucieux de sécuriser davantage le Shell de bash et le . bash_history par le biais de l'audit, jetez un coup d'œil à cet article : Comment puis-je enregistrer l'historique ou "sécuriser" bash contre la suppression de l'historique ?

A 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 ~/.bashrc fichier :

unset HISTFILESIZE
HISTSIZE=3000
PROMPT_COMMAND="history -a"
export HISTSIZE PROMPT_COMMAND

shopt -s histappend

Veillez à vous procurer votre .bashrc en utilisant la commande source ~/.bashrc

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X