Ubuntu: Exclua parte do root .bash_history sem deixar rastros

Ubuntu: Exclua parte do root .bash_history sem deixar rastros

O arquivo .bash_history do root pode ser parecido com:

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 que a última linha mostre que editei o arquivo.

Obrigado

Responder1

Usar:

su
 vim ~/.bash_history

O histórico não salva o comando se ele tiver umespaçona frente dele.


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

Responder2

Como já mencionado, você poderia usar um espaço antes do seu comando, mas isso depende da HISTCONTROLvariável. Aqui estão algumas alternativas -

Na verdade, você pode dizer ao terminal para parar e começar a gravar o histórico. Isso pode ser feito usando estes comandos -

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

Se você já executou alguns comandos e esqueceu de parar a gravação ou usar espaço, você ainda pode impedir a gravação .bash_historyenquanto a sessão ainda estiver 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, suno seu caso). Isso pode ser feito usando este comando -

history -c

Uma opção extrema seria encerrar o processo do terminal quando 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 -9encerrará esse processo.

informação relacionada