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