Há um pequeno equívoco aqui, history
não não mostra o conteúdo de ~/.bash_history
. Em vez disso, mostra o conteúdo atual da lista de histórico do Bash na memória para esta sessão.
Assumindo uma configuração padrão do Bash e do Ubuntu, o gerenciamento de histórico funciona da seguinte maneira:
-
Sempre que você abrir um shell Bash, ele lerá o conteúdo do seu arquivo
.bash_history
e o anexará à sua lista de histórico da sessão. -
Você digita comandos, fazendo com que o Bash os anexe à sua lista de histórico de sessões.
-
Quando você fechar o shell novamente, o Bash salvará sua lista de histórico no disco anexando as entradas contidas ao arquivo
.bash_history
.
Observação: por padrão, a lista de histórico fica truncada para no máximo 1000 entradas e o arquivo de histórico para 2000 entradas.
Veja, o arquivo de histórico nunca será atualizado até que a sessão específica do shell termine, então tudo que você fez na sua janela de terminal atual ainda não foi mantido no disco. Ele reside apenas na sua lista de histórico na memória.
Para limpar uma entrada específica da sua lista de histórico, você pode executar history
para exibir a lista completa e descobrir o número de índice da sua entrada incorreta. Então você pode excluí-lo usando
history -d NUMBER
Você também pode simplesmente limpar sua lista completa de histórico de sessões usando history -c
.
Observe que a exclusão de uma entrada da lista de histórico não a exclui automaticamente de .bash_history
se ela já foi gravada lá, mas a exclusão de uma entrada do arquivo não a remove da lista do histórico de sessões atual, se você tiver alguma Sessões de Bash abertas.
Para excluir uma entrada do arquivo de histórico, abra seu ~/.bashrc
em um editor de texto e exclua a linha ofensiva ali. Você deve fechar todos os terminais antes disso e usar um editor de GUI, ou remover a entrada das listas de arquivos e de sessões.
Para obter mais informações sobre o comando history
, digite help history
.
Mais informações sobre o Bash e seu gerenciamento de histórico, leia as partes relevantes de man bash
.