Estou tendo muitos problemas para configurar o histórico do terminal do Bash da maneira que desejo. Eu gostaria de não ter entradas duplicadas e se eu inserir um comando, quero que ele seja salvo e as duplicatas acima removidas.
O problema é que o history
comando me mostra que está funcionando da maneira que desejo, mas depois que eu sair, as duplicatas voltam novamente. Eu acredito que é apenas anexar a história à existente. Eu tenho estas linhas no meu .bashrc
arquivo:
HISTCONTROL=ignoreboth:erasedups
shopt -u histappend
Eu até tentei descomentar shopt
, mas ainda anexa o histórico ao sair. Como posso ter o histórico exatamente como é antes de sair?
bash
command-history
craig
fonte
fonte
Respostas:
Você
erasedups
deve fazer o que deseja em relação às duplicatas - observe que a exclusão de duplicatas é acionada no momento de anexar uma nova entrada ao histórico e que apaga todas as ocorrências antigas de um comando, deixando apenas as mais recentes.Respondendo à pergunta " Como posso ter o histórico exatamente como é antes de sair? "
Do meu ponto de vista, isso pode ser útil apenas de vez em quando. (Caso contrário, por que você usaria o histórico?) Você pode fazer isso emitindo
Isso limpa todas as entradas do histórico mantidas atualmente na memória e, em seguida, relê todo o histórico do arquivo de histórico. Portanto, todos os comandos que você emitiu desde o logon na sessão atual do shell são esquecidos. Acho isso bastante útil em situações em que faço muitos testes (muitos comandos semelhantes, mas não realmente duplicados) e, em seguida, não quero que meu histórico seja trocado por isso - por isso tenho um apelido para ele no meu
.bashrc
:(
hrr
para ser lembrado como "releitura da história").fonte