Ubuntu: Apagar parte da raiz .bash_history sem rastros

0

O arquivo .bash_history do root pode ter a seguinte aparência:

line 1
line 2
line 3
line 4

Agora eu apago as linhas 3 e 4

su
vim ~/.bash_history

#delete line 3 und 4 with dd
line 1
line 2

:wq

ENTER
CTRL + D

Mas se eu der uma olhada agora em .bash_history:

su
cat ~/.bash_history

#.bash_history
line 1
line 2
vim ~/.bash_history

Então, como posso excluir apenas uma parte do histórico sem a última linha mostrando que editei o arquivo.

Obrigado

    
por ghostgate 14.10.2015 / 16:50

2 respostas

4

Uso:

su
 vim ~/.bash_history

O histórico não salva o comando se tiver um espaço na frente dele.

Isso depende da variável HISTCONTROL . Por padrão (para root) é ignoredups:ignorespace .

    
por Rinzwind 14.10.2015 / 16:54
1

Como já mencionado, você pode usar um espaço antes de seu comando, mas isso depende da variável HISTCONTROL . Aqui estão algumas alternativas -

Você pode realmente dizer ao terminal para parar e iniciar o histórico de gravação. Isso pode ser feito usando esses comandos -

set +o history      #stop recording history
set -o history      #start recording history

Se você já executou alguns comandos e esqueceu de parar de gravar ou usar espaço, ainda é possível impedir que ele seja gravado em .bash_history , desde que a sessão ainda esteja aberta. Ele é gravado no arquivo quando você fecha a sessão do terminal. Assim, você pode excluir o histórico da sessão atual antes de fechar a sessão (antes de sair do su no seu caso). Isso pode ser feito usando este comando -

history -c

Uma opção extrema seria matar o processo do terminal quando você terminar de executar todos os comandos. Você basicamente mata o processo antes que ele possa gravar o histórico no arquivo.

kill -9 $$

$$ fornecerá o ID do processo do terminal atual e kill -9 eliminará esse processo.

    
por arthcp 06.12.2017 / 12:20