salve isso no seu bash_profile ou bashrc
shopt -s histappend
PROMPT_COMMAND="history -a;$PROMPT_COMMAND"
Eu tenho bash configurado para salvar o histórico, para um arquivo. Ele faz isso sempre que o bash sai [propriamente]. Como às vezes o bash não sai corretamente, a história é perdida.
Então, a questão é: posso configurar o bash para salvar o histórico com mais regularidade?
Eu estou executando o Debian Gnu (versão 6, Squeeze) com um kernel Linux.
versão bash: GNU bash, versão 4.1.5 (1) -release (i486-pc-linux-gnu)
É possível que seu $ HISTFILE seja de propriedade do root. 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 "need to set HISTFILE" ou se $ HISTFILE não for ~ / .bash_history, então você deve checar ~ / .profile ou ~ / .bash_profile ou ~ / .bashrc para se certificar de que não está sendo configurado ou redefinido incorretamente.
Normalmente, ele é propriedade do root, portanto, basta redefini-lo:
$ chown joeb.joeb $HISTFILE
$ ll $HISTFILE
-rw------- 1 joeb joeb 36639 May 21 19:48 /home/joeb/.bash_history
Efetue logout e faça login.
$ history
Deve mostrar o último conjunto de comandos digitados antes que o arquivo seja de propriedade de root, seguido pelos comandos inseridos após a propriedade do arquivo ser alterada.