Linux e SSH
Como limpar o histórico de comandos do root no Linux pelo SSH
O Bash grava os comandos digitados no arquivo ~/.bash_history. Veja como limpar o histórico inteiro, apagar só a linha que tinha uma senha e impedir que isso aconteça de novo.
- Por equipe técnica da Hospedagem Segura
- Atualizado em 10/10/2026
- 4 min de leitura
Texto do artigo
Neste artigo
Toda vez que você sai de uma sessão SSH, o Bash grava no arquivo ~/.bash_history os comandos digitados. Para o root, o arquivo fica em /root/.bash_history. Isso ajuda no dia a dia, mas vira problema quando uma senha, um token ou uma chave de API foram digitados direto no terminal.
Para limpar o histórico inteiro, rode history -c e, na mesma sessão, history -w. Para tirar só uma linha, use history -d com o número dela. Abaixo, o porquê de cada passo, como evitar que um comando seja gravado e o que muda no zsh.
Como o histórico funciona
Durante a sessão, os comandos ficam na memória do shell. O arquivo só é atualizado quando a sessão termina (ou quando você pede). Por isso, apagar o arquivo sem limpar a memória não resolve: ao sair, o Bash grava tudo de novo.
Limpar todo o histórico
Limpe a memória da sessão atual e grave o histórico vazio no arquivo:
history -c
history -whistory -c apaga a lista em memória e history -w sobrescreve o arquivo com ela, que agora está vazia. Se houver outras sessões abertas com o mesmo usuário, elas gravam os próprios comandos ao sair; feche-as antes ou repita o procedimento nelas.
Apagar só uma linha
Quando o problema é um único comando, liste o histórico com a numeração e remova a linha pelo número:
history | tail -n 20
history -d 1042
history -wConfira com history | tail se a linha certa saiu. Em versões recentes do Bash também é possível apagar um intervalo, por exemplo history -d 1040-1045.
Evitar que um comando entre no histórico
Com a variável HISTCONTROL valendo ignorespace (ou ignoreboth), comandos que começam com um espaço não são gravados. O padrão muda de um sistema para outro: no Ubuntu, o root e os usuários novos já vêm assim; no Debian, só os usuários criados depois da instalação, não o root; no AlmaLinux, o padrão é ignoredups, que não ignora o espaço. Confira e, se precisar, ative para o seu usuário:
echo $HISTCONTROL
echo 'export HISTCONTROL=ignoreboth' >> ~/.bashrcPara uma sessão inteira sem histórico, desative a gravação antes de começar. Ao sair, nada daquela sessão vai para o arquivo:
unset HISTFILEO melhor é não digitar segredos no terminal
- Prefira programas que pedem a senha de forma interativa, sem exibir o que é digitado.
- Guarde credenciais em arquivos de configuração com permissão restrita (chmod 600) ou em variáveis de ambiente carregadas de um arquivo protegido.
- Use autenticação por chave SSH no lugar de senha sempre que possível.
- Se uma senha ficou no histórico de um servidor compartilhado por mais pessoas, considere que ela vazou: troque a senha, não apenas o histórico.
Histórico não é auditoria
E no zsh?
O zsh usa o arquivo ~/.zsh_history. Para limpar, esvazie o arquivo e, antes de sair da sessão, rode unset HISTFILE: sem isso, o zsh grava de novo, ao sair, o histórico que ainda está na memória. Para não gravar comandos iniciados com espaço, use setopt HIST_IGNORE_SPACE no ~/.zshrc.
: > ~/.zsh_history
unset HISTFILEPerguntas frequentes
Qual comando limpa o histórico do terminal no Linux?
No Bash, rode history -c para apagar a lista da sessão e, em seguida, history -w para gravar essa lista vazia no ~/.bash_history. Só um dos dois não basta: o primeiro não mexe no arquivo, e apagar só o arquivo deixa a memória da sessão para ser gravada de novo.
Por que o histórico volta depois que apago o .bash_history?
Porque a sessão aberta ainda guarda os comandos na memória e os grava no arquivo quando termina. Limpe a memória com history -c antes de sair, e repita em outras sessões abertas com o mesmo usuário.
Como apagar só um comando do histórico?
Veja o número da linha com history | tail, apague com history -d seguido do número e grave com history -w. Se havia uma senha no comando, troque também a senha.
Limpar o histórico apaga os registros de acesso do servidor?
Não. O histórico do shell é só uma conveniência do usuário. Os registros de login e de autenticação do sistema continuam existindo e servem para investigar acessos.
Leia também
- Linux e SSHComo copiar arquivos entre computador e servidor com SCPO SCP copia arquivos pelo SSH, com a mesma autenticação e criptografia. Veja a sintaxe para enviar, baixar, copiar pastas, mudar a porta e usar chave.3 min de leitura10/10/2026
- Linux e SSHPartição /tmp 100% cheia no servidor Linux com cPanel: como resolverCom o /tmp cheio, uploads falham, sessões de PHP param de funcionar e o banco de dados pode recusar consultas. Veja como achar o culpado e liberar espaço sem apagar o que está em uso.3 min de leitura10/10/2026
- Linux e SSHComandos SSH para servidor cPanel/WHM em 2026: scripts, whmapi1 e LinuxSeleção dos comandos SSH que um administrador de servidor cPanel/WHM usa no dia a dia em 2026: atualizar, reiniciar serviços, empacotar e suspender contas, consultar o WHM pelo whmapi1 e achar o que lota o disco, pesa na CPU ou aparece nos logs. O CentOS saiu de cena; veja os sistemas aceitos hoje.8 min de leitura10/10/2026
Servidor Linux com acesso root
No VPS Linux você administra o próprio servidor com acesso root, armazenamento NVMe e IPv4 dedicado.