Eu sempre usei o bash no trabalho e nunca tive problemas com ele. Agora, ele não salva nenhum comando no histórico novamente. Se eu abrir um terminal da janela, tente alguns comandos, ele funcionará como se tudo tivesse funcionado bem e me mostrará o histórico usando as teclas de seta. Mas se eu fechar a janela (e que é a hora que deveria ser salva no arquivo .bash_history) e abrir outra, não há sinais dos últimos comandos.
Como posso descobrir o que está errado? Ou redefina tudo do espaço em branco.
.bash_sessions_disable
e sei que retornar ao comportamento padrãoRespostas:
Eu fiz isso:
Adicione uma variável ao
.bash_profile
arquivoSHELL_SESSION_HISTORY=0
reinicie o terminal e depois ele está funcionando como eu gostaria. (Ele salvou os comandos depois que fechei o terminal)
PS Eu também uso o
HISTFILESIZE
eHISTSIZE
variáveisHISTSIZE é o número de linhas ou comandos armazenados na memória em uma lista de histórico enquanto a sessão do bash está em andamento.
HISTFILESIZE é o número de linhas ou comandos que (a) são permitidos no arquivo de histórico no momento da inicialização de uma sessão e (b) são armazenados no arquivo de histórico no final de sua sessão do bash para uso em sessões futuras.
fonte
Iniciando no OS X 10.11 El Capitan , o script instalado pelo sistema
/etc/bashrc_Apple_Terminal
coordena-se com o Terminal para salvar / restaurar históricos de comandos separados para cada terminal restaurado para Continuar .Leia os comentários
/etc/bashrc_Apple_Terminal
para obter uma explicação de como ele gerencia os históricos de comando por terminal e como personalizá-lo.Se você personalizar,
PROMPT_COMMAND
certifique-se de concatenar com o valor anterior para não apagar o comando fornecido pelo sistema:Se você instalar um
EXIT
manipulador de sinal,trap
certifique-se de fazer algo semelhante (ou chame shell_session_update do manipulador, se não conseguir descobrir como concatenar com o valor anterior - é um pouco complicado).Quando você sai do shell, esse código salva novos comandos no histórico do terminal
~/.bash_sessions
. Para verificar se há algum problema, em vez de fechar o terminal, saia manualmente do shell comexit
(ou Control-D). Ele registra mensagens de progresso. Observe se não está completo ou se algum tipo de aviso ou mensagem de erro é exibido.Em geral,
bashrc_Apple_Terminal
tenta detectar e desativar o histórico por sessão, se parecer que o usuário executou personalizações incompatíveis com ele. Parece que você encontrou um que não lida. Considere arquivar um relatório de bug com a Apple: https://developer.apple.com/bug-reporting/fonte
/etc/bashrc_Apple_Terminal
usa PROMPT_COMMAND?”? Neste último caso, refiro-lhe o código, que está documentado em detalhes. Ou você deve iniciar outra sessão de perguntas e respostas sobre isso.Apenas no caso de haver outras pessoas lá fora que têm RVM (Rubi Versão Manager) instalado: Verifique se você tem a seguinte linha no seu
~/.profile
,~/.bashrc
ou~/.bash_profile
arquivos.[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
Esse foi o problema para mim. Tente comentar.
Fonte: Reddit
fonte
Em uma nova instalação do Mac OS X (atualizada para 10.13.6), o histórico do comando bash não estava sendo salvo. Também não havia arquivos .bashrc ou .bash_profile. Nesse caso, basta adicionar um arquivo .bashrc vazio para mim.
Parece ser tudo o que você precisa ...
fonte
Eu tive o mesmo problema com um Mojave osx recém-instalado. Eu verifiquei meu
~/.bash_history
arquivo e vi o seguinte:$ ls -l ~/.bash_history -rw------- 1 root staff 599 Jan 4 20:50 /Users/gilm/.bash_history
Simplesmente devolvê-lo à Gilm resolveu o problema. Eu usei:
sudo chown gilm /Users/gilm/.bash_history
e isso resolveu meu problema.
fonte
Você também pode criar um
.bash_logout
arquivo com o seguinte:Origem do comentário do GitHub
fonte
trap shell_session_update EXIT
uma vez e faça logout. Existem dicas no/etc/bashrc_Apple_Terminal
script que são muito chatas para incluir aqui.