Como fazer o Bash liberar o histórico de comandos para que possa ser limpo?

4

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?

    
por jww 17.10.2015 / 00:15

3 respostas

2

A página man do bash fornece duas boas soluções ..... que podem ser colocadas em seus arquivos. * rc

  1. export HISTFILESIZE = 0

  2. export HISTSIZE = 0

Estes também podem ser inseridos no seu shell de login manualmente e terão o mesmo efeito.

    
por 17.10.2015 / 00:25
4

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.

    
por 18.10.2015 / 01:09
1

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.

link

    
por 17.10.2015 / 00:21