Posible duplicado:
¿Se pueden unificar los archivos de historial en bash?
Utilizo Ubuntu Server 9.10 y me gustaría poder ver mi historial de bash para más de una sesión de terminal. Es decir, mis últimos 200 comandos más o menos, incluso si he cerrado la sesión en el medio.
Cuando uso el history
solo veo todos los comandos de mi sesión de terminal real. ¿Cómo puedo ver más historial de comandos de Bash? ¿Hay alguna configuración específica para bash que deba cambiar de los valores predeterminados en Ubuntu?
No tengo un ~/.bash_history
archivo Pero tengo un ~/.bashrc
con HISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
yHISTCONTROL=ignoreboth
echo $HISTFILE
/home/sanoj/.bash_history
echo $HISTSIZE
500
echo $HISTFILESIZE
500
echo $HISTCONTROL
ignoreboth
ACTUALIZACIÓN: ahora estoy probando Ubuntu Server 10.10 en VirtualBox. Si solo apago VirtualBox sin el comando de apagado, la próxima vez que arranque, los comandos de la última sesión no se guardarán en el archivo de historial.
Los comandos solo se guardan si apago la máquina con el comando de apagado. Por ejemplo, apagado -P 0.
Esta debe ser la razón de mi problema. Así que tengo que descubrir cómo guardar el historial de comandos con más frecuencia. Por ejemplo, después de cada comando.
fuente
echo $HISTSIZE
yecho $HISTFILESIZE
? Mi (Ubuntu)~/.bashrc
tiene las mismasHISTCONTROL
líneas que la suya, que tiene muerte cerebral ya que el segundo anula al primero y se supone que los valores están separados por dos puntos, no separados por comas. Si lo hace,set -o
¿muestra una línea que dice "historial en"?500
conecho
ambas variables yhistory on
Respuestas:
Puedes usar
para agregar inmediatamente el historial en memoria al archivo de historial. Una sesión de terminal no puede ver la de otra a menos que esto se haga o se salga de la otra.
Puedes usar
para ver esa cantidad de entradas.
Además de
HISTSIZE
ver la entrada en la página del manual de Bash concernienteHISTFILESIZE
.fuente
history -a´ doesn't do anything for me, and not
historia 200 | less` tampoco, pero he actualizado mi pregunta con más información. Gracias de cualquier manera.Una vez que cierra la sesión, el historial se agrega al archivo
~/.bash_history
. Echa un vistazo allí.Por defecto recordará sus últimos 500 comandos. Si desea guardar más, configure la variable
HISTSIZE
en~/.bashrc
.También agrego
ignoredups
aHISTCONTROL
(conHISTCONTROL=$HISTCONTROL:ignoredup
). Esto hace que los comandos duplicados consecutivos se guarden solo una vez.Eche un vistazo a
man 1 bash
qué más puede sintonizar sobre la historia.fuente
~/bash_history
archivo, y noHISTSIZE
en~/.bashrc
pero tengoHISTCONTROL=$HISTCONTROL${HISTCONTROL+,}ignoredups
yHISTCONTROL=ignoreboth
es Ubuntu Server, si eso importa..
en~/.bash_history
. Y paraHISTSIZE
ello solo usará el valor predeterminado de 500 entradas.~/.bash_history
archivo en mi sistema. Solíals -a
comprobarlo.$HISTFILE
variable, por lo queecho $HISTFILE
le indicará dónde buscar.echo $HISTFILE
me da/home/sanoj/.bash_history
- extraño ¿Quizás no está activado por razones de seguridad?El historial de bash generalmente se carga cuando el shell comienza a ejecutarse, y se guarda cuando se sale normalmente. Puede usar
history -a
yhistory -n
anular esto, pero no automáticamente a menos que abuse$PROMPT_COMMAND
o algo similar.fuente
Sanoj, esto realmente debería "funcionar"; No creo que se suponga que deba hacer nada especial para habilitar esto. Parece que algo está interfiriendo con el curso normal de los eventos.
Buscaría en / etc / profile, / etc / bashrc (o quizás /etc/bash.bashrc según algunas fuentes), ~ / .bash_profile, ~ / .bashrc, ~ / .bash_login, ~ / .bash_logout, para ver si hay algo que pueda estar afectando el historial (tal vez
grep -i hist
en cada uno de los archivos anteriores).... En particular, me pregunto si tiene algo en ~ / .bash_logout que elimine el archivo.
Alternativamente, ¿es posible que algo anule la
$HOME
variable?fuente