Lea todo el historial de comandos de terminal en OS X

10

Sería genial acceder a todos mis comandos que se ejecutan en la terminal en OS X para poder revisarlos y utilizarlos como una hoja de recordatorio en ejecución.

Estoy usando el indicador Reverse-I-Search, y he actualizado mi .bash_profile para almacenar todo mi historial como se menciona aquí en Mactoids: Cómo buscar el historial de comandos de Terminal .

  1. Iniciar terminal.

  2. Navegue a la carpeta Inicio ingresando:

    cd ~/
    
  3. Cree .bash_profile ingresando:

    touch .bash_profile
    
  4. Ahora, edite .bash_profile en su editor de texto favorito o escriba esto en la ventana Terminal para abrir automáticamente el archivo en el TextEdit predeterminado:

    open -e .bash_profile
    
  5. Por último, agregue esto al archivo .bash_profile:

    HISTFILESIZE=1000000000 HISTSIZE=1000000
    
  6. Guardar y Salir.

¿Tiene alguna idea de cómo podría acceder para generar el historial de comandos del terminal en OS X?

Cameron McGrane
fuente
44
Supongo que has leído man bash, por lo que debes saber que el historial está almacenado en el archivo ~/.bash_history. ¿Qué más necesitas saber, puedes aclarar?
Sí, porque sabía que existía el comando 'man', luego leí el manual, encontré la respuesta y decidí hacer la pregunta anterior solo por diversión. Gracias fideli por una respuesta rápida, clara y sin pretensiones.
Cameron McGrane

Respuestas:

6

Todo su historial se almacena en el lugar ~/.bash_historydonde se reverse-i-searchusan las teclas arriba / abajo. Ese archivo se poda regularmente, pero si siguió la guía en su enlace, el .bash_historyarchivo prácticamente nunca se podará.

fideli
fuente
¿Poda FIFO o LIFO?
Pacerier
@Pacerier, no puedo estar completamente seguro ya que ya no uso macOS, pero si tuviera que adivinar, poda FIFO.
fideli
2

Personalmente, preferiría hacerlo de una manera más simple e imprimir todo , en lugar de verificar la última sesión que no cubre todas las ventanas de Terminal y todos los comandos.

Obtén una historia completa

cd ~/.bash_sessions
cat *.historynew *.history

Si quieres ordenar por fecha de sesión

cd ~/.bash_sessions
cat `ls -tr *.historynew *.history`
laimison
fuente
1

En caso de que aún necesite una solución para esto, así es como hice el mío. Con esto, puedo GUARDAR Y ACCEDER al historial en todas las pestañas (es decir, si ingresas un comando en una pestaña, luego abres una nueva pestaña y presionas hacia arriba, te sugerirá el comando que acabas de ingresar en la pestaña anterior)

Necesitará 2 cosas: 1. Ingrese este comando en su terminal para asegurarse de que histappend esté activado:

shopt -s histappend && shopt histappend

2. También necesitará saber dónde se almacenan sus comandos de historial.

Mis archivos de historial se almacenan en ~ / .bash_sessions, así que eso es lo que reflejará mi código. Si los suyos están almacenados en ~ / .bash_history, u otro directorio, simplemente cámbielo por ~ / .bash_sessions cuando lo obtengamos en nuestro bash_profile.

Una vez que hayas descubierto eso, abre tu bash_profile y agrega el siguiente código:

source ~/.bash_sessions/*.history        #<--sources prev sessions through your bash_profile. If you don't use ~/.bash_sessions to store your history, replace it with whatever you use (i.e. source ~/.bash_history/*.history

export HISTCONTROL=ignoredups:erasedups #<-- auto-erases duplicates in your history
export HISTSIZE=1000                    #<-- assigns # of results to return
export HISTFILESIZE=100000              #<-- assigns # of results to store in your .bash_history
shopt -s histappend                     #<-- appends & saves history throughout all tabs

export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"  <--appends history from all tabs, clears & uses appended history file as current  
Sharpharp
fuente
1
tenga en cuenta que la ejecución source ~/.bash_sessions/*.historyejecuta todos los comandos
panchicore