Eu costumava ter vários shells em execução em screen
. No meu .khsrc, eu personalizaria várias configurações, incluindo $ PS1 e $ HISTFILE (e inclua o nome base do dispositivo tty).
Isso foi relativamente fácil de reconstruir:
tty=$(basename $(tty))
histdir=~/.hist
mkdir -p $histdir
export HISTFILE=$histdir/history.$tty
export PS1=$USER@'$PWD ['$tty'] ${?#0}$ '
exec /usr/bin/ksh
Salve isso como ~/bin/screenshell
e execute chmod +x ~/bin/screenshell
.
Agora você pode executar screen
e ter arquivos de histórico separados para cada janela.
SHELL=~/bin/screenshell screen
Exemplos:
Janela 3
vagrant@/home/vagrant [3] 127$ history
1 history
2 error
3 history
Janela 4
vagrant@/home/vagrant [4] $ history
1 history
vagrant@/home/vagrant [4] $ echo $HISTFILE
/home/vagrant/.hist/history.4
vagrant@/home/vagrant [4] $ tty
/dev/pts/4
Uma alternativa seria executar exec ksh
de .kshrc
, mas você precisará de algum tipo de teste para evitar um loop exec.