como removo as últimas 5 linhas no histórico bash?

4

Como posso remover as últimas 5 linhas no histórico bash? Então, quando eu recarregar o servidor Ubuntu, ou reiniciá-lo, eles não estão lá?

history -c apenas o remove da sessão atual, mas quando eu re-login eu vejo os comandos novamente, eu quero limpar os últimos 5.

Eu corri:

history

Então eu vou ver os números dos comandos, por exemplo:

  489  cd ..
  490  cd .zshrc
  491  cat .zshrc

Então eu corro por exemplo:

history -d 489
history -c 

Então eu fecho o terminal e reabro-o e ainda vejo a linha 489, ele foi excluído apenas para a sessão atual, como posso deletá-lo permentantemente de todas as sessões daqui para frente?

Por favor, informe.

    
por Anthony Pinto 10.04.2017 / 23:56

4 respostas

3

Existem diferentes maneiras de realizar essa tarefa, mas vamos esclarecer algo antes de prosseguir.

Existe um arquivo chamado: ~/.bash_history , que contém seu histórico de sessões de terminal mais antigo, sempre que você fechar seu terminal, seu histórico será salvo lá.

Ao mesmo tempo, o histórico de suas sessões antigas, juntamente com a sessão atual, é acessível temporariamente pelos comandos history até que você feche o terminal, que será salvo no arquivo ~/.bash_history .

Portanto, se você remover 5 linhas no final de ~/.bash_history , o terminal de fechamento fará com que seu comando atual seja acessível nas próximas sessões.

Então, se eu fizer um wc em .bash_history:

wc -l ~/.bash_history

Na maioria das vezes, recebo um número menor que history | wc -l .

Se você quiser remover as últimas 5 linhas do arquivo, você pode usar este comando:

for i in {1..5}; do sed -i '$d' .bash_history; done;

E se você quiser manter todo o histórico, exceto o último comando 5 emitido na sessão atual, execute:

history | awk '{ print  }' | head -n -5 > .bash_history

Não se esqueça de executar history -c também.

    
por Ravexina 11.04.2017 / 00:12
2

Você pode conseguir a remoção do arquivo de histórico usando a linha de comando em duas etapas:

Digitar history -d <line_number> exclui uma linha especificada do histórico na memória. Digitar history -w grava o histórico atual na memória no arquivo ~ / .bash_history. As duas etapas juntas removem a linha permanentemente do histórico na memória e do arquivo .bash_history também.

Ref: StackExchange

    
por EODCraft Staff 11.04.2017 / 00:17
0

Abra ~/.bash_history no seu editor e remova as últimas 5 linhas.

    
por Nick Rodriguez 11.04.2017 / 00:23
0

Eu acho que você precisa tentar isso é muito fácil & amp; simples.

  1. Como excluir o histórico sem nenhum traço

    history -d $((HISTCMD-1)) && history -d NO_of_History_you_want_to_delete
    
  2. se você quiser extrair um comando sem deixar vestígios.

    history -d $((HISTCMD-1)) && type_your_command_here_and_execute
    
por Kartik Agarwal 20.11.2017 / 07:40