Como eu excluo bash_history apenas para o dia atual?

0

Eu estou trabalhando em um projeto cliente que está hospedado no oceano digital em um servidor Ubuntu, estou trabalhando nisso com alguns outros desenvolvedores e eu sou meio que um novo e fiz um monte de comandos e é realmente bagunçado. Como posso remover o histórico de comandos até certo ponto?

Por exemplo, gostaria de remover todos os comandos que eu digitei hoje e deixar todos os comandos anteriores antes disso, isso é possível?

É mais fácil para outros desenvolvedores encontrar comandos anteriores sem passar por todos os meus. É possível limpar bash_history até certo ponto, por exemplo, apenas a história de hoje? Se sim, como?

Por favor, avise!

Obrigado!

    
por Anthony Pinto 10.04.2017 / 18:47

2 respostas

1

As linhas no histórico de Bash são salvas como linhas simples de texto sem qualquer meta-informação, como um registro de data e hora de invocação. Portanto, não é possível apagar automaticamente todo o histórico de comandos de um único dia, porque você simplesmente não pode dizer mais qual comando foi executado quando.

Se você quiser simplesmente remover todo o histórico de comandos de sua sessão atual do Bash (ou seja, tudo que ainda está na memória e não está gravado no disco ainda), você pode limpar o buffer do histórico da memória ou substituí-lo por o conteúdo do arquivo de histórico antigo do disco.

  • Limpar o buffer de histórico resultará em um histórico vazio na memória para sua sessão atual, o que significa que nenhum comando aparecerá se você pressionar , etc. Assim que você sair da sessão Bash, todos novos comandos que foram inseridos após a limpeza serão anexados ao arquivo de histórico e na sua próxima sessão, você verá o histórico completo novamente, com apenas o intervalo entre o início de sua última sessão e o comando limpo ausente.

    history -c
    
  • Substituir o buffer de histórico atual na memória pelo conteúdo do arquivo de histórico do disco terá o mesmo resultado final que limpar o buffer de histórico, exceto que na sua sessão atual você terá acesso ao histórico de comando antigo em vez de vazio lista.

    history -r
    

Se isso não for útil para você porque você quer arrumar entradas de sessões anteriores ou apenas uma sessão parcial, o método cirúrgico é o que você precisa:

Sincronize seu buffer de histórico atual na memória com o arquivo de histórico no disco e abra esse arquivo em um editor de texto e remova todas as entradas incorretas manualmente.

Para anexar o histórico de sua sessão atual ao arquivo de histórico manualmente (porque isso só acontece automaticamente quando você sai da sua sessão), execute-o primeiro:

history -a

Depois disso, abra o arquivo de histórico do Bash ~/.bash_history em seu editor de texto favorito (como você está em um servidor, sugiro, por exemplo, nano ) e edite a lista de comandos para seus gostos. O arquivo lista todos os comandos gravados em ordem cronológica, os últimos comandos mais recentes. Simplesmente remova as linhas ofensivas e salve seu trabalho.

Depois disso, você deve recarregar o histórico modificado em seu buffer de histórico na memória usando o comando abaixo, para evitar que entradas antigas da memória sejam anexadas ao arquivo de histórico arrumado quando você sair da sua sessão:

history -r
    
por Byte Commander 10.04.2017 / 21:29
0

Você pode remover linhas do histórico com

 history -d NNN

em que nnn é o número da linha de 3 dígitos. dê uma olhada também em man history Você pode excluir o histórico da sessão atual do shell com:

 history -c 
    
por 0x0C4 10.04.2017 / 20:47