Minha história do bash misteriosamente parou de funcionar e não tenho idéia de como corrigi-lo. É assim que meu .bashrc se parece:
HISTSIZE=500
HISTFILESIZE=500
HISTFILE=$HOME/.bash_history
No entanto, quando eu corro, echo $HISTFILE
ele é impresso /Users/myusername/.bash_sessions/EE8689E5-7DAD-4018-817E-0AF1DE36082A.historynew
.
Como sou o proprietário do arquivo .bash_history, não tenho muita certeza de como resolveria esse problema.
Obrigado!
$HISTFILE
, por interesse? Eu não tenho um.bashrc
OSX eecho $HISTFILE
relata o lugar que eu esperaria - comentar as linhas em questão tem algum efeito?HISTFILE="$HOME/.bash_history”
. Sem as aspas, sua versão será inválida se o caminho para o diretório inicial contiver espaços (ou possivelmente outros caracteres especiais).Respostas:
O Terminal atribui a cada sessão do 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 o Resume ativado.
Uma nova pasta (~ / .bash_sessions /) é usada para armazenar os arquivos HISTFILE e .session que são 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 organiza para salvar e restaurar o histórico do comando bash independentemente para cada sessão de terminal restaurada. Ele também mescla comandos no histórico global para novas sessões.
Você pode desativar esse comportamento e compartilhar um único histórico definindo
Se HISTTIMEFORMAT estiver definido, o histórico por sessão será desativado por padrão (leia mais em / private / etc / bashrc_Apple_Terminal)
O mecanismo de salvar / restaurar será desativado se o seguinte arquivo existir:
A Apple já mudou algum comportamento desde o lançamento do El Capitan, por isso é melhor ler mais sobre isso aqui
less /private/etc/bashrc_Apple_Terminal
fonte
~/.bash_sessions_disable
arquivo deve ser usado como último recurso, caso haja um problema que não possa ser resolvido especificamente. Ele desativa mais do que apenas o histórico de comandos por sessão e é possível desativar apenas o histórico de comandos por sessão. Veja os comentários em/etc/bashrc_Apple_Terminal
para detalhes.export SHELL_SESSION_HISTORY=0
.bashrc
e.bash_profile
unix.stackexchange.com/a/310150/15362Notei algo semelhante após a atualização do El Capitan. A simples adição do arquivo
.bash_sessions_disable
no diretório inicial desativa as novas sessões do bash e.bash_history
volta a ser usada.Este tópico do Reddit tem mais informações e mais links.
fonte
~/.bash_sessions_disable
arquivo deve ser usado como último recurso, caso haja um problema que não possa ser resolvido especificamente. Ele desativa mais do que apenas o histórico de comandos por sessão e é possível desativar apenas o histórico de comandos por sessão. Veja os comentários em/etc/bashrc_Apple_Terminal
para detalhes.SHELL_SESSION_HISTORY=0
no topo~/.bash_profile
.Você pode resolver o problema do RVM atualizando para a versão mais recente do RVM ou executando o seguinte:
Consulte https://github.com/rvm/rvm/issues/3540 para obter mais informações.
fonte
Esta resposta do tópico do Reddit me salvou:
fonte
Se for um Mac, suponho que seja o shell de login padrão
bash
e seja executado em.profile
vez de.bashrc
. Então, você estava editando o arquivo errado.fonte
$HISTFILE
em diferentes partesprofile
? Talvez você tenha outro script que altere a variável? Eu verifiquei ambosTerminal
eiTerm
,bash
3
e4
ambos têm o padrão$HOME/.bash_history
.$HISTFILE
muda. Assim, basta fazer doisecho $HISTFILE
cercarem seu código. O que você precisa fazer é encontrar o trecho de código onde as$HISTFILE
alterações mudam, movendo as duasecho $HISTFILE
linhas cada vez mais perto uma da outra, linha por linha, até que algo seja revelado. Isso é tudo.echo $HISTFILE
em todas as linhas, apenas para ver se havia alguma diferença. No entanto, apenas imprimiu/Users/username/.bash_history
inúmeras vezes. Eu então corriecho $HISTFILE
no shell, e ele saiu/Users/nelsonliu/.bash_sessions/CD275A29-1DF1-4ED8-B8CE-F706B11B812F.historynew
.Eu estava vendo esse problema em High Sierra. De alguma forma, o meu.
Não havia nenhuma conseqüência nesse arquivo .bash_history, então fiz um sudo rm .bash_history seguido de um toque em .bash_history para criar um novo.
Tudo parece bem agora
fonte
~/.bash_profile
export HISTTIMEFORMAT='%F %T '