Como salvar o histórico da linha de comando sem efetuar logout? [duplicado]

5

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?

    
por Mesut Tasci 26.07.2012 / 16:11

3 respostas

5

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.

    
por 26.07.2012 / 16:17
1

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'

    
por 26.07.2012 / 19:40
0

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.

    
por 26.07.2012 / 16:59