¿Puedo crear un archivo de historial de bash separado para cada perfil de terminal?

18

Utilizo un script bash para iniciar gnome-terminal con múltiples pestañas, cada pestaña usando un perfil diferente, un directorio de trabajo y, en algunos casos, ejecutando un comando dentro de la pestaña.

En esta situación, me gustaría que la tecla de flecha hacia arriba recupere los comandos que se usaron en una pestaña específica. es posible?

Inkayacu
fuente
Me temo, no creo que haya una manera de determinar el perfil desde el shell.
planta rodadora

Respuestas:

16

Supongo que puede usar un comando personalizado gnome-terminal para cada perfil, por ejemplo

bash -c 'PROFILE=default_profile exec bash'

o

bash -c 'PROFILE=screen_profile exec screen -U'

o similar.

Entonces en ~/.bashrc

if [[ -n $PROFILE ]]; then
    HISTFILE=~/.bash_history."$PROFILE"
fi
enzotib
fuente
10

Siempre que el ttycomando le proporcione resultados separados (lo que ciertamente debería ser en cualquier entorno estándar de Unix, aunque he tenido comportamientos erróneos ocasionales en Cygwin con ciertos emuladores de terminal), también podría usar eso para separar cosas.

Tengo algo como lo siguiente en mi .bashrc:

export HISTFILE="${HOME}/.history.d/history-"`uname -n`"-"`id -nu`"-"`tty|cut -c6-`

Lo que puede parecer una exageración, pero se entiende la idea. Lo divide en función de

  1. en qué máquina estoy,
  2. quien soy y
  3. en qué terminal estoy.

Y podría agregar aún más si piensa en cosas que son relevantes para usted.

Philipp Hanes
fuente