¿Cómo compartir el historial entre pestañas de terminal?

23

Generalmente me encuentro usando dos o tres pestañas en mi Terminal en OS X.

Un inconveniente menor es que, por defecto, las pestañas no comparten su historial de comandos. Por lo tanto, buscar un comando anterior que ejecuté en otra pestaña escribiendo history | grep thingIamlooking forno lo encuentra.

¿Hay alguna forma de obligar a las pestañas de Terminal a compartir el historial, o hay algún otro comando " history_of_all_tabs "?

Joe
fuente

Respuestas:

29

No creo que haya una manera de compartir el historial solo entre las pestañas de Terminal, pero aquí hay algo que podría ayudarlo.

El historial no es algo que maneje su terminal sino su shell (bash, tcsh, zsh, etc.)

Aquí hay algunas opciones que lo ayudarán a configurar un historial compartido entre todas las ventanas de terminal (las instancias de shell).

Esto debe colocarse en algún lugar de su .bashrcarchivo.

export HISTCONTROL=ignoredups:erasedups  # no duplicate entries
export HISTSIZE=100000                   # big big history
export HISTFILESIZE=100000               # big big history
shopt -s histappend                      # append to history, don't overwrite it

# Save and reload the history after each command finishes
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
Lifely
fuente
1
+.5 para una buena respuesta, +.5 para una buena gramática;)
Matt
La solución de @ Lifely no me funciona en El Capitán. En absoluto. Incluso la longitud máxima del archivo de historial. ¿Hay una nueva solución desde 2012? (Hubiera comentado anteriormente, pero no tengo el representante)
JP Duffy
1
Esto está funcionando para mí (agregado en .bash_profile) en El Capitan con la adición de export SHELL_SESSION_HISTORY = 0 en mi .bash_profile y ejecutándose: toque ~ / .bash_sessions_disable
Andy
funciona muy bien en Ubuntu 18.04 para bash
anon58192932