A página man do bash fornece duas boas soluções ..... que podem ser colocadas em seus arquivos. * rc
-
export HISTFILESIZE = 0
-
export HISTSIZE = 0
Estes também podem ser inseridos no seu shell de login manualmente e terão o mesmo efeito.
Eu acidentalmente coloquei uma senha na linha de comando e precisei limpar o histórico do shell Bash. Isso foi bastante fácil com echo "" > ~/.bash_history
.
Eu adicionei o mesmo ao meu .bash_logout
apenas no caso do futuro. No entanto, quando eu verifico o histórico após um logout / logon, o último comando que eu inseri ainda está presente no arquivo de histórico. Mais corretamente, dois comandos estão presentes: o último comando que eu digitei, e o comando exit
do logout.
Como eu faço o Bash liberar o histórico de comandos para o arquivo para que eu possa limpá-lo após o logout?
O Bash não escreve seu histórico no arquivo de histórico até sair ou você chama explicitamente history -w
. Então, se você acabou de adicionar sua senha no histórico atual do shell, ela não foi gravada em .bash_history
, mas está lá na memória. Você pode executar fc -l
para ver uma listagem dos comandos mais recentes e, em seguida, history -d
para excluir uma entrada.
$ echo swordfish swordfish Oops, that was my password! $ fc -l -2 1234 ls 1235 echo swordfish $ history -d 1235 $ fc -l -3 1234 ls 1235 fc -l -2 1236 history -d 1236
Se você já escreveu o arquivo de histórico (por exemplo, porque você tem history -w
em PROMPT_COMMAND
ou uma armadilha de depuração), faça isso e edite .bash_history
também.
Se você quiser esquecer o histórico do shell atual, desmarque HISTFILE
e certifique-se de que ele permaneça não definido até que o shell saia. Se você quiser esquecer o histórico atual até este ponto, mas começar a gravar, pode chamar history -c
. Se você quiser esquecer todas, exceto as 3 últimas entradas do histórico, defina HISTFILE=3
(em uma linha de comando separada) e ajuste-o de volta ao seu valor usual.
Também tive problemas para editar meu logout (fiz um script de backup que faz backup dos meus dados em um servidor). Eu achei este link útil, mas é para o Ubuntu.
Tags bash logout command-history