Esta es la segunda vez que esto ha sucedido. Sólo traté de grep-ción histórica de los comandos y de vino vacías. un vistazo a mi bash la historia muestra que es prácticamente vacío. Como se ha limpiado. Yo uso iTerm2 y en MacOS 10.13.6. Veo que hay una .bash_sessions directorio con algunas de las sesiones guardadas, pero creo que esta es probablemente una iTerm2 cosa para preservar sesiones por alguna u otra razón.
Respuesta
¿Demasiados anuncios?Puede haber varias razones de por qué sucede esto - voy a tratar de explicar cómo funciona a continuación.
Sin embargo, puedo decir que la otra respuesta que han recibido aquí no es la correcta. HISTFILESIZE y HISTSIZE no hará que su historia para "a veces" ser eliminado o casi exterminada. Sólo por establecer a 0 que iba a conseguir nada en los archivos - pero que iba a suceder en cada momento, y no por casualidad. Además, lo que usted describe con el archivo que se está "casi exterminada" no puede suceder debido a que está establecido en 0.
En realidad estás en lo correcto ti por comentar .bash_sessions. Que no es un iTerm2 "cosa", sino más bien cómo funciona por defecto en un estándar de instalación de macOS. Apple ha incorporado en cada sesión, la historia en la parte superior de un regular bash instalar.
Esto significa que si usted tiene múltiples terminales de ejecución (por ejemplo varias pestañas), cada uno de ellos tendrá una nueva historia seguimiento .bash_sessions. Si se reinicia el Mac y el terminal de windows son restaurados, usted encontrará que cada uno todavía tiene su propia historia - y sólo su propia historia.
Cuando se cierra una sesión de bash, Apple sistema de combinación de la historia para esa sesión específica en el mundial .bash_history archivo. Entonces, cuando usted abra una nueva terminal (y por tanto de sesión de bash), se iniciará con la que se fusionó la historia que contiene la historia de potencialmente múltiples sesiones.
Todo esto es manejado por el /etc/bashrc_Apple_Terminal
script.
Ahora que sabes cómo funciona, aquí están algunas de las posibles causas de lo que estamos viendo:
Puede que accidentalmente han quitado la historia de sí mismo (historia -c)
Tu Mac podría estar infectado con malware y/o hackeado, y alguien más la eliminación de su .archivo bash_history
Usted tiene instalado un software que periódicamente se vacía/quita .bash_history
Estas razones no se que probable, diría yo.
Hay una última causa posible:
Hay una conocida condición de carrera en el manejo de la bash historias. Si se cierran varias sesiones de bash a la vez (por ejemplo el cierre de una ventana de terminal con varias pestañas), usted puede perder parte o la totalidad de la historia.
Esto sucede si el equipo es "lento", mientras que la lectura/escritura de partes de la historia. Básicamente cómo funciona es que actualmente la historia se lee, se elimina el archivo/se alejó, y se crea un nuevo archivo, donde toda la historia de las líneas se escriben. Si se ejecuta este proceso varias veces al mismo tiempo, usted puede ver que un proceso se elimina la vieja historia, el otro proceso de lectura de un vacío de la historia, el primer proceso escribe toda la historia de nuevo, y luego el otro proceso que elimina y escribe una historia muy corta que contiene sólo unas pocas líneas - como que no leer nada. Este error se muestra como exactamente lo que usted ha descrito.
La solución es simplemente para cerrar una sesión de bash en un tiempo para que el sistema tenga tiempo para escribir todo correctamente.