23 votos

Ilimitado Bash Historia

Quiero que mi ".bash_history" archivo a ser ilimitada. por ejemplo, Así que siempre puede volver atrás y ver cómo he construido/configurar algo, o lo que ingenioso comando, o cómo algunos comandos rompió algo de semanas. ¿Cómo puedo cambiar esta configuración?

38voto

fotinakis Puntos 804

Después de muchos grandes, feos iteraciones y raros casos de borde a través de los años, ahora tengo una pequeña sección de mi .bashrc dedicado a esto.

En primer lugar, usted debe comentar o eliminar esta sección de su .bashrc (por defecto para Ubuntu). Si no, entonces ciertos entornos (como correr screen de las sesiones) todavía va a truncar su historia:

# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
# HISTSIZE=1000
# HISTFILESIZE=2000

Segundo, añadir esto a la parte inferior de su .bashrc:

# Eternal bash history.
# ---------------------
# Undocumented feature which sets the size to "unlimited".
# http://stackoverflow.com/questions/9457233/unlimited-bash-history
export HISTFILESIZE=
export HISTSIZE=
export HISTTIMEFORMAT="[%F %T] "
# Change the file location because certain bash sessions truncate .bash_history file upon close.
# http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
export HISTFILE=~/.bash_eternal_history
# Force prompt to write history after every command.
# http://superuser.com/questions/20900/bash-history-loss
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"

Nota: todos los comandos se escriben inmediatamente después de que se ejecute, por lo que si accidentalmente pegar una contraseña que usted no puede simplemente "kill -9 %%" para evitar que la historia de la escritura, usted tendrá que quitar manualmente.

También tenga en cuenta que cada sesión de bash se carga el historial completo archivo en la memoria, pero incluso si su historial de archivo crece hasta los 10 mb (que va a tomar un largo, largo tiempo) usted no notará mucho de un efecto en el tiempo de inicio de bash.

18voto

Lri Puntos 8342

Set HISTSIZE y HISTFILESIZE a una cadena vacía:

HISTSIZE= HISTFILESIZE=

En bash 4.3 y más tarde también puede utilizar HISTSIZE=-1 HISTFILESIZE=-1:

n.  Setting HISTSIZE to a value less than zero causes the history list to be
    unlimited (setting it 0 zero disables the history list).

o.  Setting HISTFILESIZE to a value less than zero causes the history file size
    to be unlimited (setting it to 0 causes the history file to be truncated
    to zero size).

10voto

Jörg Beyer Puntos 2123

Hay (al menos) dos relevantes env variables aquí:

  • HISTSIZE: el número de entradas en el archivo de historial de
  • HISTFILESIZE: el número de líneas en el archivo de historial de

Creo que estamos de acuerdo en que el término ilimitado a menudo es el mismo como muy grande (o no tienen límite de almacenamiento de archivos?). Así que acaba de establecer los valores muy grandes.

9voto

simont Puntos 11362

Como Jörg Beyer se mencionó anteriormente, HISTSIZE y HISTFILESIZE son clave.

Además, usted debe definitivamente echa un vistazo a la variable de entorno HISTCONTROL, lo que le permite hacer cosas interesantes como que no tienda duplicar el historial de comandos (HISTCONTROL=erasedups). No hay punto de tener historial ilimitado si usted tiene que navegar a través de cientos de líneas de cd .. o similar.

Enlaces: aquí, y trabajar con bash historia. La fiesta de la Variable de preguntas frecuentes también es digno de navegación.

-3voto

Ed Heal Puntos 24309

Sería mejor que comprar un cuaderno y anotar las cosas que han hecho que funciona y es bueno. Más rápido, más simple que la paginación a través de resmas de bash historia.

En cuanto a la construcción de material de lectura acerca de los makefiles. En cuanto a la configuración de las cosas, utilizar el control de versiones y comentarios. En cuanto a tareas comunes, escribir secuencias de comandos de shell.

Mi recomendación es sólo para mantener un par de días el valor de la historia. Después de que usted no puede estar demasiado seguro de que es el conjunto de comandos.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X