12 votos

¿Cómo persisten bash historia?

No sé si este es el esperado, pero mi historia no se guarda a través de las sesiones. Es decir, si cierro la ventana, luego cuando lo abro de nuevo, la historia está vacía. ¿Cómo puedo conservar a través de las sesiones ?

Aquí están las salidas de los comandos que le preguntó:

 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

Después de las ediciones descritas en la respuesta de abajo, me da:

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.

Todavía soy incapaz de tener una historia guardada a través de las sesiones. I lee las siguientes preguntas:

Ninguno parecía a resolver mi problema, incluyendo la respuesta debajo de la persona que tenía a su pregunta, de la supuesta duplicado.

10voto

Anentropic Puntos 7751

OK me enteré de lo que está mal. No puedo cerrar la ventana, tengo que escriba 'exit' para que cierre correctamente.

8voto

terdon Puntos 29629

Bueno, parece que tu ~/.bashrc no tiene las opciones necesarias. Asegúrese de que estas líneas estén en su ~/.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

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: