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 HISTCONTROL
variá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 HISTCONTROL
variá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_history
enquanto 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, su
no 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 -9
encerrará esse processo.