Como compartilhar o histórico entre as guias do terminal?

23

Geralmente, me vejo usando duas ou três guias no meu Terminal no OS X.

Um pequeno inconveniente é que, por padrão, as guias não compartilham seu histórico de comandos. Portanto, procurar um comando anterior que eu executei em outra guia digitando history | grep thingIamlooking fornão o encontra.

Existe uma maneira de forçar as guias do Terminal a compartilhar o histórico ou existe algum outro comando " history_of_all_tabs "?

Joe
fonte

Respostas:

29

Acho que não há uma maneira de compartilhar o histórico apenas entre as guias do Terminal, mas aqui está algo que pode ajudá-lo.

A história não é algo que é tratado pelo seu terminal, mas pelo seu shell (bash, tcsh, zsh, etc.)

Aqui estão algumas opções que ajudarão você a configurar um histórico compartilhado entre todas as janelas do terminal (as instâncias do shell).

Isso deve ser colocado em algum lugar do seu .bashrcarquivo.

export HISTCONTROL=ignoredups:erasedups  # no duplicate entries
export HISTSIZE=100000                   # big big history
export HISTFILESIZE=100000               # big big history
shopt -s histappend                      # append to history, don't overwrite it

# Save and reload the history after each command finishes
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
Lifely
fonte
1
+.5 para uma boa resposta, +.5 para boa gramática;)
Matt
A solução da @ Lifely não está funcionando para mim em El Capitan. Em absoluto. Até o tamanho máximo do arquivo de histórico. Existe uma nova solução desde 2012? (Eu teria comentado acima, mas não tenho o representante)
JP Duffy
1
Isso está funcionando para mim (adicionado no .bash_profile) em El Capitan com a adição de SHELL_SESSION_HISTORY exportação = 0 na minha .bash_profile e funcionando: touch ~ / .bash_sessions_disable
Andy
funciona muito bem no Ubuntu 18.04 para bash
anon58192932 26/09