De acordo com a documentação, history -a
deve anexar as linhas de histórico '' novas '' (linhas de histórico inseridas desde o início da sessão bash atual) no arquivo de histórico.
Estou abrindo mais de uma guia do console e quero usar os comandos executados na primeira guia do console a partir da nova guia do console aberta.
É possível usar comandos que foram executados a partir da primeira guia da segunda guia que não foi aberta atualmente?
Como posso usar o histórico do console em sincronia entre os consoles?
Você provavelmente poderia fazer isso com uma série de configurações, como (e eu não testei totalmente isso) ...
export PROMPT_COMMAND='history -a; history -c; history -r'
Isso fará com que o comando mais recente seja anexado ao seu arquivo .bash_history
, limpe o histórico do shell e leia novamente o arquivo .bash_history
, cada vez que o prompt do shell for impresso ... execute um comando.
Assim, os comandos de um terminal serão anexados a .bash_history
toda vez que eles forem executados, então o segundo terminal irá buscá-los quando ele reler o arquivo de histórico.
Agora, tenha em mente que isso não é em tempo real, já que seu segundo shell não relerá o arquivo de histórico que acabou de ser escrito pelo primeiro shell até que um comando seja executado, mas é provavelmente o mais próximo possível com bash.
Você pode achar importante definir seu HISTCONTROL
envvar como ignoredups
ou erasedups
, ou essa opção pode não funcionar tão bem para você.
export HISTCONTROL='erasedups'
Parte 2: De acordo com a documentação history -r
deve ler o arquivo de histórico e substituir o registro de histórico atual.
Não tenho certeza do que você quer dizer com 'sincronicamente', mas se você quer dizer a sincronização automatizada dos históricos de duas janelas / guias do console, acho que a resposta é NÃO. Você tem que fazer isso manualmente.
Tags bash command-history