enregistrer régulièrement l'historique bash

9

J'ai bash configuré pour enregistrer l'historique, dans un fichier. Il le fait chaque fois que bash se termine [correctement]. Comme parfois bash ne sort pas correctement, l'historique est perdu.

La question est donc de savoir si je peux configurer bash pour enregistrer l'historique plus régulièrement?


J'utilise Debian Gnu (version 6, Squeeze) avec un noyau Linux.

version bash: GNU bash, version 4.1.5 (1) -release (i486-pc-linux-gnu)

ctrl-alt-delor
la source

Réponses:

8

enregistrez-le dans votre bash_profile ou bashrc

shopt -s histappend

PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

d4v3y0rk
la source
Est-ce toujours une réponse valable? Dans mon système, il y a une entrée shopt -s histappendsous /etc/bash/bashrc. Pourtant, toute sortie impure des shells en cours d'exécution perd son historique de ligne de commande.
Nikos Alexandris
-1

Il est possible que votre $ HISTFILE soit la propriété de root. En supposant que vous utilisez bash comme shell de connexion. Voici comment vérifier:

$ [ -z $HISTFILE ] && echo need to set HISTFILE || ls -l $HISTFILE
-rw------- 1 root root 36639 May 21 19:48 /home/joeb/.bash_history

La valeur par défaut pour HISTFILE doit être ~ / .bash_history, si vous voyez l'erreur "besoin de définir HISTFILE" ou si $ HISTFILE n'est pas ~ / .bash_history, alors vous devez vérifier ~ / .profile ou ~ / .bash_profile ou ~ /. bashrc pour vous assurer qu'il n'est pas réglé ou réinitialisé incorrectement.

Normalement, il appartient uniquement à root, alors réinitialisez-le:

$ chown joeb.joeb $HISTFILE
$ ll $HISTFILE
-rw------- 1 joeb joeb 36639 May 21 19:48 /home/joeb/.bash_history

Déconnectez-vous puis connectez-vous.

$ history

Doit afficher le dernier ensemble de commandes entré avant que le fichier n'appartienne à root, suivi des commandes entrées après que la propriété du fichier a été modifiée.

focus4success
la source
3
Depuis OP dit que l'historique est enregistré lorsque bash se termine normalement, son problème n'a rien à voir avec les autorisations. Peut-être que votre réponse pourrait être utile à quelqu'un qui a des problèmes avec l'historique de bash.
Dmitry Grigoryev