Histórico do Bash não preservado entre sessões de terminal no Mac

Histórico do Bash não preservado entre sessões de terminal no Mac

Meu histórico do bash parou de funcionar misteriosamente e não tenho ideia de como consertar isso. Esta é a aparência do meu .bashrc:

HISTSIZE=500
HISTFILESIZE=500
HISTFILE=$HOME/.bash_history

No entanto, quando executo, echo $HISTFILEele é impresso /Users/myusername/.bash_sessions/EE8689E5-7DAD-4018-817E-0AF1DE36082A.historynew.

Eu sou o proprietário do arquivo .bash_history, então não tenho certeza de como resolveria esse problema.

Obrigado!

Responder1

O Terminal atribui a cada sessão de terminal um identificador exclusivo e o comunica por meio da variável de ambiente TERM_SESSION_ID para que os programas em execução em um terminal possam salvar/restaurar o estado específico do aplicativo ao sair e reiniciar o Terminal com Resume habilitado.

Uma nova pasta (~/.bash_sessions/) é usada para armazenar arquivos HISTFILE e .session exclusivos das sessões.

Durante a inicialização do shell, o arquivo da sessão é executado. Arquivos antigos são excluídos periodicamente.

O comportamento padrão permite salvar e restaurar o histórico de comandos bash de forma independente para cada sessão de terminal restaurada. Também mescla comandos no histórico global para novas sessões.

Você pode desativar esse comportamento e compartilhar um único histórico configurando

export SHELL_SESSION_HISTORY=0

Se HISTTIMEFORMAT for definido, o histórico por sessão será desabilitado por padrão (leia mais em /private/etc/bashrc_Apple_Terminal)

O mecanismo de salvar/restaurar será desabilitado se o seguinte arquivo existir:

~/.bash_sessions_disable

A Apple já mudou algum comportamento desde o lançamento do El Capitan, então é melhor ler mais sobre isso aquiless /private/etc/bashrc_Apple_Terminal

Responder2

Notei algo semelhante após a atualização do El Capitan. Simplesmente adicionar o arquivo file .bash_sessions_disableem seu diretório inicial desativa as novas sessões do bash e ele .bash_historyvolta a ser usado.

EsseTópico Reddittem mais informações e outros links.

Responder3

Você pode resolver o problema do RVM atualizando para a versão mais recente do RVM ou executando isto:

  echo 'shell_session_update' > $HOME/.bash_logout

Verhttps://github.com/rvm/rvm/issues/3540para mais informações.

Responder4

Se for um Mac, suponho que o shell de login padrão seja bashe ele seja executado .profileem vez de .bashrc. Então, você estava editando o arquivo errado.

informação relacionada