Posso criar um arquivo de histórico do bash separado para cada perfil de terminal?

18

Eu uso um script bash para iniciar o gnome-terminal com várias guias, cada uma usando um perfil, um diretório de trabalho diferente e, em alguns casos, executando um comando dentro da guia.

Nessa situação, eu gostaria que a tecla de seta para cima recuperasse comandos que foram usados ​​em uma guia específica. Isso é possível?

Inkayacu
fonte
Receio, acho que não há uma maneira de determinar o perfil a partir do shell.
amaranto

Respostas:

16

Suponho que você possa usar um comando personalizado gnome-terminal para cada perfil, por exemplo

bash -c 'PROFILE=default_profile exec bash'

ou

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

ou similar.

Então em ~/.bashrc

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

Enquanto o ttycomando fornecer resultados separados (o que certamente deveria ocorrer em qualquer ambiente Unix padrão, embora eu tenha tido comportamentos ocasionais no cygwin com certos emuladores de terminal), você também pode usá-lo para separar as coisas.

Eu tenho algo parecido com o seguinte no meu .bashrc:

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

O que pode parecer um exagero, mas você entendeu. Divide-o com base em

  1. em que máquina estou,
  2. quem eu sou e
  3. em que terminal estou.

E você pode adicionar ainda mais se pensar em coisas que são relevantes para você.

Philipp Hanes
fonte