Como faço para limpar o histórico do terminal?

75

Estou usando o Linux Mint 17.1 Rebecca por cerca de 2 dias e acidentalmente digitei minha senha no terminal que agora é exibido na lista de histórico de comandos que eu digitei anteriormente.

Eu quero limpar completamente o histórico do terminal. Eu tentei usar os seguintes comandos no terminal que eu pensei que iria limpar a história para sempre, mas eles não:

history -c
reset
tput reset

Os comandos acima "limparão" o histórico do terminal, mas quando eu sair e abrir um novo, todo o meu histórico anterior ainda estará lá e todos poderão ser listados novamente usando o comando - history e também pressionando a seta UP no meu teclado. Eu não quero que isso aconteça até que eu tenha totalmente limpo minha história, então eu quero continuar a usá-lo.

Como posso limpar completamente meu histórico terminal - para sempre e começar de novo?

Por favor Note: Eu não quero sair do terminal sem salvar o histórico apenas para sempre, neste caso.

    
por Shambhala 14.05.2015 / 01:53

6 respostas

122

reset ou tput reset só faz coisas no terminal. O histórico é inteiramente gerenciado pelo shell, que permanece inalterado.

history -c limpa seu histórico no shell atual. Isso é suficiente (mas exagerado) se você acabou de digitar sua senha e não saiu desse shell ou salvou seu histórico explicitamente.

Quando você sai do bash, o histórico é salvo no arquivo de histórico, que por padrão é .bash_history em seu diretório inicial. Mais precisamente, o histórico criado durante a sessão atual é anexado ao arquivo; as entradas que já estão presentes não são afetadas. Para sobrescrever o arquivo de histórico com o histórico atual do shell, execute history -w .

Em vez de remover todas as entradas do histórico, você pode abrir .bash_history em um editor e remover as linhas que não deseja manter. Você também pode fazer isso dentro do bash, menos convenientemente, usando history para exibir todas as entradas, depois history -d para excluir as entradas que você não deseja e, finalmente, history -w para salvar.

Observe que, mesmo depois de editar o arquivo de histórico, é possível que sua senha ainda esteja presente em algum lugar no disco de uma versão anterior do arquivo. Ele não pode mais ser recuperado através do sistema de arquivos, mas ainda pode ser possível (mas provavelmente não é fácil) encontrá-lo acessando o disco diretamente. Se você usar esta senha em outro lugar e seu disco for roubado (ou alguém conseguir acesso ao disco), isso pode ser um problema.

    
por 14.05.2015 / 02:10
31

Eu tentei a história -c mas a história volta assim que saímos e reabrimos. Isso me ajudou.

cat /dev/null > ~/.bash_history && history -c && exit

Isso limpa o histórico salvo no arquivo de histórico, bem como o histórico na sessão atual (para que não seja salvo no arquivo quando bash sair). Em seguida, sai do shell. A próxima sessão de shell não terá histórico.

    
por 17.05.2017 / 09:10
15

Em vez de remover todas as entradas do histórico, digite estes comandos no seu terminal:

  1. history -c (para o histórico de exclusão)
  2. history -w (salvar histórico)
por 19.05.2016 / 15:12
4

Como há um problema de segurança aqui, considere excluir com segurança o arquivo de histórico.

$ shred -u ~/.bash_history && touch ~/.bash_history
    
por 03.06.2017 / 18:48
2

Como um neófito que enfrentou o mesmo problema, recorri ao expediente bastante brutal de excluir e recriar o arquivo de histórico: -

rm .bash_history
touch .bash_history

Funcionou para mim sem dar origem a efeitos colaterais desagradáveis que eu conheça.

    
por 27.07.2016 / 23:35
2

Tipo: history -c; rm ~/.bash_history

history -c limpa o histórico da sua sessão atual, rm ~/.bash_history limpa seu histórico de longo prazo, por isso history -c; rm ~/.bash_history limpa os dois.

    
por 15.12.2016 / 08:03