Como limpar completamente o histórico de bash?

214

Desejo apagar todos os comandos anteriores do histórico do meu servidor. Eu usei history -c e parece que todas as coisas estão limpas, mas quando eu ssh para o servidor, todos os comandos ainda estão lá.

Como posso limpá-los permanentemente?

    
por hd. 23.09.2012 / 07:44

8 respostas

280

O arquivo ~/.bash_history contém o histórico.

Para limpar completamente o histórico bash no servidor, abra o terminal e digite

cat /dev/null > ~/.bash_history

Outra maneira alternativa é vincular ~/.bash_history a /dev/null

No entanto,

Um efeito colateral chato é que as entradas do histórico têm uma cópia na memória e ele irá retornar ao arquivo quando você sair .

Para contornar isso, use o seguinte comando (trabalhado para mim):

cat /dev/null > ~/.bash_history && history -c && exit
    
por devav2 23.09.2012 / 07:51
112

O que fazer:

Em todo shell bash aberto (você pode ter vários terminais abertos):

history -c
history -w

Por quê: Conforme observado acima, history -c esvazia o arquivo ~/.bash_history . É importante observar que o bash shell não libera o histórico imediatamente para o arquivo bash_history. Portanto, é importante (1) liberar o histórico para o arquivo e (2) limpar o histórico, em todos os terminais . Isso é o que os comandos acima fazem.

Referência:

    
por callpraths 11.04.2013 / 22:55
42

execute os seguintes comandos para limpar o histórico para sempre

history -c && history -w

boa sorte!

    
por Edwin Jose 12.08.2013 / 14:39
19

Há outro muito mais simples: executando history -c no terminal e todas as entradas no arquivo bash_history .

    
por Peter Eijlander 10.03.2013 / 19:10
9

Outra maneira de fazer isso é excluir o arquivo ~/.bash_history usando o comando rm ~/.bash_history . Quando você fizer login outra vez, o arquivo .bash_history será criado automaticamente.

    
por Anwar 23.09.2012 / 08:18
4

Limpar o histórico do shell atual:

history -c

Quando você efetua logout, o histórico do seu shell atual é anexado a ~ / .bash_history, que é um cache de históricos de shells anteriores, até um número máximo (veja HISTFILESIZE em "man bash").

Se você quiser remover o histórico completamente, então você essencialmente terá que esvaziar ~ / .bash_history que muitas das entradas acima sugeriram. Tais como:

history -c && history -w

Isso limpa o histórico do shell atual e, em seguida, força o histórico do shell atual (vazio) a sobrescrever ~ / .bash_history .... ou, para ser mais preciso, obriga-o a sobrescrever HISTFILE (cujo padrão é ~ / .bash_history) .

Espero que isso ajude.

    
por mobiGeek 10.07.2014 / 19:05
4
rm ~/.bash_history; history -c; logout

Agora faça o login novamente e presencie que sua seta para cima não lhe oferece nada.

    
por stolsvik 01.10.2013 / 21:16
0

Tente este aqui

edite seu .profile e adicione a linha abaixo no final do arquivo

rm -f .bash_history

Dessa forma, toda vez que você fizer login, ele excluirá seu arquivo .bash_history automaticamente para você. Adicionar a opção de remoção recursiva -r parece perigoso e não é necessário.

    
por Mixed IT Prof 30.08.2014 / 20:06

Tags