Histórico do Bash
Quaisquer novos comandos que foram emitidos no terminal ativo podem ser anexados ao .bash_history
arquivo com o seguinte comando:
history -a
O único conceito complicado de entender é que cada terminal tem sua própria lista de histórico de bash (carregado a partir do .bash_history
arquivo quando você abre o terminal)
Se desejar extrair qualquer novo histórico que tenha sido gravado por outros terminais durante a vida útil deste terminal ativo, você poderá anexar o conteúdo do .bash_history
arquivo à lista de histórico do bash ativo
history -c;history -r
Isso limpará a lista de histórico atual, para não obter uma lista repetida e anexar o arquivo de histórico à lista (agora vazia).
Solução
Você pode usar a variável bash PROMPT_COMMAND
para emitir um comando a cada novo prompt (toda vez que você pressionar enter no terminal)
export PROMPT_COMMAND='history -a'
Isso registrará cada comando no arquivo de histórico conforme ele é emitido.
Resultado
Agora, qualquer novo terminal que você abrir terá o histórico de outros terminais sem precisar exit
desses outros terminais. Este é o meu fluxo de trabalho preferido.
Mais precisão
Digamos (por algum motivo) que você tem dois terminais que está usando simultaneamente e deseja que o histórico reflita entre os dois 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 por que essa opção mais precisa provavelmente é um exagero, mas funciona para esse caso de uso.