salvar o histórico do bash, regularmente

9

Eu tenho o bash configurado para salvar o histórico, em um arquivo. Faz isso sempre que o bash sai [corretamente]. Como às vezes o bash não sai corretamente, o histórico é perdido.

Portanto, a pergunta é: posso configurar o bash para salvar o histórico com mais regularidade?


Estou executando o Debian Gnu (versão 6, Squeeze) com um kernel do Linux.

versão bash: GNU bash, versão 4.1.5 (1) -release (i486-pc-linux-gnu)

ctrl-alt-delor
fonte

Respostas:

8

salve isso no seu bash_profile ou bashrc

shopt -s histappend

PROMPT_COMMAND="history -a;$PROMPT_COMMAND"

d4v3y0rk
fonte
Ainda é uma resposta válida? No meu sistema, há uma entrada shopt -s histappendem /etc/bash/bashrc. Ainda assim, qualquer saída imunda de conchas em execução perde seu histórico de linha de comando.
Nikos Alexandris
-1

É possível que seu $ HISTFILE seja de propriedade da raiz. Supondo que você esteja usando o bash como seu shell de login. Veja como verificar:

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

O padrão para HISTFILE deve ser ~ / .bash_history, se você vir o erro "precisa definir HISTFILE" ou se $ HISTFILE não for ~ / .bash_history, marque ~ / .profile ou ~ / .bash_profile ou ~ /. bashrc para garantir que não está sendo definido ou redefinido incorretamente.

Normalmente, ele pertence ao root, então redefina-o:

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

Logout e logon.

$ history

Deve mostrar o último conjunto de comandos digitados antes que o arquivo pertença à raiz, seguido pelos comandos digitados após a alteração da propriedade do arquivo.

focus4success
fonte
3
Como o OP diz que o histórico é salvo quando o bash sai normalmente, seu problema não tem nada a ver com as permissões. Talvez sua resposta ainda possa ser útil para alguém que tem problemas com o histórico do bash.
Dmitry Grigoryev