Como persistir o histórico bash?

7

Não sei se isso é esperado, mas minha história não é salva entre as sessões. Isto é, se eu fechar a janela, quando abri-la novamente, a história está vazia. Como posso persistir nas sessões?

Aqui estão as saídas dos comandos que você perguntou:

 set -o | grep history
history         on

$ grep -i history ~/.bashrc ~/.bash_profile ~/etc/bash.bashrc ~/etc/profile ~/.profile
/cygdrive/c/cygwin/home/car/.bashrc:# Make bash append rather than overwrite the history on disk
/cygdrive/c/cygwin/home/car/.bashrc:# History Options
/cygdrive/c/cygwin/home/car/.bashrc:# Don't put duplicate lines in the history.
/cygdrive/c/cygwin/home/car/.bashrc:# export PROMPT_COMMAND="history -a"
grep: /cygdrive/c/cygwin/home/car/etc/bash.bashrc: No such file or directory
grep: /cygdrive/c/cygwin/home/car/etc/profile: No such file or directory
/cygdrive/c/cygwin/home/car/.profile:if [ "x$HISTFILE" == "x/.bash_history" ]; then
/cygdrive/c/cygwin/home/car/.profile:  HISTFILE=$HOME/.bash_history

$ ls -la ~/ | grep history -> no output

$ echo $HISTFILE 
~/.bash_history
$ echo $HISTSIZE
500
$ echo $HISTFILESIZE 
500

Depois das edições descritas na resposta abaixo, agora obtenho:

grep -i hist .bashrc
# Make bash append rather than overwrite the history on disk
shopt -s histappend
# History Options
# Don't put duplicate lines in the history.
export HISTCONTROL="ignoredups"
# (added) A new shell gets the history lines from all previous shells
PROMPT_COMMAND='history -a'
# HISTIGNORE is a colon-delimited list of patterns which should be excluded.

Ainda não consigo salvar um histórico nas sessões. Eu li as seguintes perguntas:

Nenhum pareceu resolver meu problema, incluindo a resposta abaixo da própria pessoa que teve sua pergunta respondida do suposto duplicado.

    
por Car981 18.04.2013 / 14:12

2 respostas

5

Bem, parece que o seu ~/.bashrc não tem as opções necessárias. Verifique se essas linhas estão no seu ~/.bashrc :

# Make Bash append rather than overwrite the history on disk:
shopt -s histappend
# A new shell gets the history lines from all previous shells
PROMPT_COMMAND='history -a'
# Don't put duplicate lines in the history.
export HISTCONTROL=ignoredups
    
por 18.04.2013 / 16:11
4

OK, descobri o que há de errado. Não consigo fechar a janela, tenho que digitar 'exit' para fechar com elegância.

    
por 19.04.2013 / 11:17