Histórico de Bash
Qualquer novo comando que tenha sido emitido no terminal ativo pode ser anexado ao arquivo .bash_history
com o seguinte comando:
history -a
O único conceito difícil de entender é que cada terminal tem seu próprio histórico bash list (carregado do arquivo .bash_history
quando você abre o terminal)
Se você quiser extrair qualquer novo histórico que tenha sido gravado por outros terminais durante a vida útil desse terminal ativo, é possível anexar o conteúdo do arquivo .bash_history
ao histórico bash ativo lista
history -c;history -r
Isso limpará a lista do histórico atual para que não tenhamos uma lista repetida e anexará o arquivo do histórico à lista (agora vazia).
Solução
Você pode usar a variável bash PROMPT_COMMAND
para emitir um comando a cada novo prompt (sempre que você pressionar Enter no terminal)
export PROMPT_COMMAND='history -a'
Isso registrará cada comando no histórico arquivo quando ele for emitido.
Resultado
Agora, qualquer novo terminal que você abrir terá o histórico de outros terminais sem ter que exit
desses outros terminais. Este é o meu fluxo de trabalho preferido.
Mais precisão
Digamos que (por algum motivo) você tenha dois terminais que esteja usando simultaneamente e queira que o histórico reflita entre ambos para cada novo comando.
export PROMPT_COMMAND='history -a;history -c;history -r'
A principal desvantagem aqui é que você pode precisar pressionar enter para executar novamente o PROMPT_COMMAND para obter o histórico mais recente do terminal oposto.
Você pode ver porque essa opção mais precisa é provavelmente um exagero, mas funciona para esse caso de uso.