Comment enregistrer manuellement l'historique du terminal?

33

Je crois comprendre que le fichier d'historique est mis à jour à la sortie du terminal. Mais parfois, mon ordinateur tombe en panne et le terminal ne se ferme pas proprement, puis je perds ces commandes de mon historique, ce qui est ennuyeux. Comment puis-je le vider immédiatement, de sorte que les entrées y continuent même si mon ordinateur est en panne? Pour le moment, j'utilise cette solution de contournement, mais je pense qu'il devrait y avoir une meilleure solution.

J'utilise gnome-terminal sur Ubuntu 12.10.

wim
la source

Réponses:

17

Les réponses dans le lien que vous avez fourni depuis le site des super-utilisateurs ne doivent pas nécessairement être considérées comme des «solutions de contournement» au historycomportement par défaut de la commande. Le shell bash a un comportement par défaut sain et prêt à l'emploi.

Je recommanderais fortement de lire Comment puis-je éviter de perdre des lignes d'historique? pour une explication de ce que font ces modifications history. En outre, il existe des préoccupations raisonnables à savoir pourquoi ce n'est pas le comportement par défaut de la historycommande.

  • performances - Comme vous enregistrez chaque commande de chaque fenêtre avec history -a, le .bash_historyfichier peut devenir assez volumineux et nécessiter des ressources plus importantes pour charger le shell bash. Cela peut entraîner des temps de démarrage plus longs (pour vos sessions de terminal, pas le démarrage global du système, en soi).

  • organisation - (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 de commandes car elles ont été exécutées dans un seul shell."

Si vous souhaitez sécuriser davantage le shell bash et le. bash_historyfichier via l'audit, consultez cet article: Comment puis-je enregistrer l'historique ou bash "sécurisé" 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 ~/.bashrcfichier:

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

shopt -s histappend

Assurez-vous de source votre .bashrcfichier en utilisant la commandesource ~/.bashrc

Kevin Bowen
la source