Comandos de terminal que todo sysadmin devia saber de cor

Um roteiro rápido pelos comandos que salvam (ou explicam) o seu dia no servidor.

12 Out 2026 - 19:00
0 1
Comandos de terminal que todo sysadmin devia saber de cor

Existe um momento na vida de todo administrador de sistemas em que o terminal deixa de parecer um lugar assustador e passa a ser praticamente um bicho de estimação. Você aprende os comandos certos, ele responde com informações úteis e, de vez em quando, entrega aquela notícia maravilhosa de que o disco está cheio.

Faz parte da rotina.

A diferença é que, enquanto algumas pessoas passam horas tentando descobrir por que uma aplicação parou de funcionar, outras resolvem boa parte do problema com meia dúzia de comandos bem escolhidos.

Neste artigo, vamos conhecer ferramentas que fazem parte do dia a dia de quem trabalha com Linux, desde as verificações mais básicas até recursos avançados de diagnóstico. A ideia não é decorar tudo, mas entender o que cada comando faz e saber quando utilizá lo.

1. df e du, descubra para onde foi o espaço em disco

Vamos começar por um dos comandos mais simples e, curiosamente, um dos mais úteis: df -h.

Ele mostra o uso dos sistemas de arquivos em um formato fácil de entender, apresentando o espaço total, o que já foi utilizado e quanto ainda está disponível.

df -h

Quando um servidor começa a apresentar lentidão, uma aplicação para de responder ou um banco de dados começa a reclamar, verificar o espaço em disco é um excelente ponto de partida.

Um disco cheio pode impedir a gravação de logs, interromper operações de bancos de dados e causar falhas em serviços que aparentemente não têm nada a ver com armazenamento.

E o pior é que, às vezes, a equipe passa uma hora investigando a aplicação inteira, quando o problema estava ali, a um comando de distância.

Se o df mostrar que o disco está quase cheio, o próximo passo é descobrir quem está consumindo tanto espaço. É aí que entra o du.

du -sh /var/log

Esse comando mostra o tamanho total do diretório /var/log, sem listar cada arquivo individualmente.

Para procurar diretórios grandes a partir da raiz do sistema, você pode utilizar:

du -xhd1 / 2>/dev/null | sort -rh

Em sistemas com GNU Coreutils, essa combinação lista os diretórios de primeiro nível, ordenando os resultados do maior para o menor. A opção -x limita a análise ao mesmo sistema de arquivos, evitando misturar dados de outros volumes montados.

E o que costuma aparecer no topo da lista? Logs acumulados, arquivos temporários que perderam o significado da palavra temporário ou algum processo que resolveu gerar arquivos sem parar.

Antes de sair apagando tudo, descubra o que está ocupando espaço. Excluir arquivos importantes pode transformar um problema simples em uma tarde bastante movimentada.

2. top e htop, descubra quem está consumindo os recursos

Quando o servidor fica lento, precisamos descobrir se o problema está na CPU, na memória ou em algum processo específico.

Para isso, temos o top, disponível na maioria das distribuições Linux.

top

Ele apresenta informações sobre os processos em execução, o consumo de CPU, a memória e a carga do sistema.

Para quem prefere uma interface mais amigável, existe o htop.

htop

O htop oferece uma visualização mais organizada, com cores, indicadores de consumo por núcleo da CPU e filtros para localizar processos com mais facilidade. Também permite enviar sinais aos processos diretamente pela interface.

Caso não esteja instalado, você pode adicioná lo pelo gerenciador de pacotes da distribuição.

No Ubuntu e no Debian:

sudo apt install htop

No Rocky Linux e em distribuições compatíveis com RHEL que utilizam DNF:

sudo dnf install htop

Uma dica importante: antes de encerrar um processo, entenda o que ele faz. Matar um programa desconhecido só porque está consumindo muita CPU pode até aliviar o servidor, mas também pode derrubar um serviço essencial.

O objetivo é diagnosticar, não sair distribuindo sinais de encerramento como se fossem notificações de aniversário.

3. ss, descubra quais portas estão abertas

Quando o assunto é rede, o comando ss é um dos melhores aliados do administrador Linux. Ele permite consultar conexões e sockets, sendo uma alternativa moderna ao tradicional netstat.

Para listar portas TCP e UDP em escuta, mostrando os processos associados quando houver permissão para isso, utilize:

sudo ss -tulpn

Esse comando ajuda a identificar quais serviços estão aguardando conexões e em quais portas estão disponíveis.

É útil para investigar problemas de conectividade, conferir se uma aplicação realmente iniciou e verificar se existe algum serviço exposto sem necessidade.

Encontrou uma porta aberta que ninguém reconhece? Não precisa entrar em pânico, mas também não convém ignorar. Pode ser um serviço legítimo, uma configuração antiga ou algo que merece uma investigação mais cuidadosa.

Em segurança da informação, conhecer o que está exposto é parte fundamental da defesa.

4. tail e grep, acompanhe os logs sem perder tempo

Os logs são uma das principais fontes de informação durante um incidente. Eles registram eventos, erros, tentativas de conexão e outras pistas que ajudam a entender o comportamento do sistema.

Para acompanhar um arquivo de log em tempo real, utilize:

tail -f /var/log/syslog

Assim, você visualiza as novas linhas à medida que são gravadas, sem precisar abrir e atualizar o arquivo manualmente.

Quer visualizar apenas as mensagens que contenham a palavra error?

tail -f /var/log/syslog | grep -i error

A opção -i ignora diferenças entre letras maiúsculas e minúsculas.

Vale lembrar que o caminho /var/log/syslog é comum em sistemas Debian e Ubuntu. Em outras distribuições, os registros podem estar em arquivos diferentes ou disponíveis principalmente pelo journalctl.

Se você precisa acompanhar vários arquivos ao mesmo tempo, o multitail também pode ajudar, exibindo diferentes logs na mesma tela.

Aproveitando melhor o grep

O grep merece um capítulo à parte porque aparece em praticamente todo tipo de investigação.

Algumas opções bastante úteis são:

grep -c "error" arquivo.log

Conta quantas linhas correspondem ao padrão pesquisado.

grep -v "INFO" arquivo.log

Mostra as linhas que não contêm INFO.

grep -A 3 "ERROR" arquivo.log

Mostra três linhas depois de cada ocorrência encontrada.

grep -B 3 "ERROR" arquivo.log

Mostra três linhas antes de cada ocorrência.

Combinado com outros comandos por meio do caractere |, conhecido como pipe, o grep permite filtrar grandes volumes de informação rapidamente.

Em vez de ler milhares de linhas procurando um erro, você pode reduzir a saída para aquilo que realmente interessa.

5. journalctl, investigue os serviços do systemd

Em sistemas que utilizam o systemd, o journalctl é essencial para consultar os registros do sistema e dos serviços.

Para acompanhar os logs de um serviço em tempo real:

journalctl -u nome-do-servico -f

Substitua nome-do-servico pelo nome real da unidade, como ssh, cron ou outro serviço instalado no servidor.

Para consultar os registros da última hora:

journalctl --since "1 hour ago"

E, para visualizar mensagens de erro ou níveis mais críticos:

journalctl -p err

Esses filtros ajudam a reduzir o volume de informações durante uma investigação.

Imagine que uma aplicação parou de funcionar há poucos minutos. Em vez de analisar registros de vários dias, você pode limitar a busca ao período em que o problema começou e concentrar a atenção nos eventos mais relevantes.

É uma maneira simples de economizar tempo e evitar que a investigação vire uma caça ao tesouro sem mapa.

6. chmod e chown, organize as permissões corretamente

Permissões de arquivos são um assunto básico no Linux, mas continuam causando problemas até em ambientes experientes.

O comando chmod altera as permissões, enquanto o chown modifica o proprietário e o grupo associados aos arquivos.

Veja um exemplo:

chmod 755 script.sh

Nesse caso, o proprietário recebe permissão de leitura, escrita e execução. O grupo e os demais usuários recebem leitura e execução.

Já o comando abaixo altera o proprietário e o grupo de um arquivo:

sudo chown usuario:grupo arquivo.txt

Entender a notação octal ajuda bastante. Cada número representa a soma dos valores das permissões:

Valor Permissão
4 Leitura
2 Escrita
1 Execução
7 Leitura, escrita e execução
5 Leitura e execução
6 Leitura e escrita

Por isso, 755 significa rwxr-xr-x, enquanto 644 significa rw-r--r--.

E aqui vai um conselho que vale ouro: evite usar chmod 777 como solução universal para problemas de acesso.

Embora possa fazer o erro desaparecer, também pode permitir que usuários que não deveriam tenham permissão para modificar arquivos importantes.

É como deixar a chave da sala do servidor na recepção e torcer para que ninguém se interesse por ela.

O correto é identificar qual usuário ou serviço precisa de acesso e conceder somente as permissões necessárias.

7. rsync, sincronize arquivos sem transferir tudo novamente

O rsync é uma ferramenta muito utilizada para sincronização de arquivos, cópias de segurança e transferências entre servidores.

Sua principal vantagem é conseguir identificar diferenças entre a origem e o destino e evitar a retransmissão desnecessária de dados que já estão sincronizados.

Um exemplo de uso:

rsync -avz /origem/ usuario@servidor:/destino/

Nesse caso, as opções indicam o seguinte:

  1. -a preserva atributos importantes, incluindo permissões e datas, conforme as condições da transferência.

  2. -v apresenta informações detalhadas da operação.

  3. -z comprime os dados durante a transferência.

Para visualizar o progresso de arquivos individuais, você pode adicionar --progress:

rsync -avz --progress /origem/ usuario@servidor:/destino/

Essa ferramenta é especialmente útil para rotinas recorrentes de backup e sincronização remota, principalmente quando a quantidade de dados é grande.

Mas atenção: sincronização não é automaticamente sinônimo de backup seguro. Se arquivos forem excluídos ou corrompidos na origem, determinadas configurações de sincronização podem propagar essas alterações ao destino.

Por isso, backups importantes também precisam de retenção, proteção contra exclusão e testes de restauração.

8. ping, traceroute, mtr e curl, descubra onde a conexão falha

Quando alguém informa que “a rede está fora”, a primeira missão é descobrir o que realmente está acontecendo.

O comando ping verifica se um destino responde a solicitações ICMP e permite observar a latência e possíveis perdas de pacotes.

ping -c 4 8.8.8.8

Se houver perda de pacotes ou tempos de resposta muito altos, já temos uma pista. Porém, a ausência de resposta não significa necessariamente que o equipamento esteja fora do ar, pois o tráfego ICMP pode estar bloqueado.

Para investigar o caminho até um destino, temos o traceroute:

traceroute exemplo.com

Outra opção é o mtr, que combina informações de rota com medições contínuas, ajudando a observar a qualidade do caminho ao longo do tempo.

Já o curl é excelente para testar serviços HTTP e APIs diretamente pelo terminal.

curl -v https://exemplo.com

Com a opção -v, o comando apresenta detalhes da comunicação, incluindo etapas da conexão e informações relevantes para investigar problemas de TLS e HTTP.

O curl também permite enviar requisições com cabeçalhos personalizados, testar métodos HTTP e verificar respostas de APIs sem precisar abrir um navegador.

Quando o problema envolve conectividade, DNS, certificados ou comunicação com uma aplicação, essas ferramentas ajudam a separar uma falha de rede de uma falha do próprio serviço.

9. history, encontre aquele comando que você esqueceu

Todo administrador de sistemas já passou por isso: você executa um comando complicado, resolve um problema e pensa que vai se lembrar dele para sempre.

Duas semanas depois, precisa fazer a mesma coisa e não lembra nem por onde começar.

É aí que entra o history.

history

Ele exibe o histórico de comandos da sessão ou do histórico armazenado pelo shell.

Para procurar uma palavra específica:

history | grep rsync

Se você utilizou recentemente um comando com rsync, essa busca pode ajudar a recuperá lo sem precisar reconstruir toda a sintaxe na memória.

Vale lembrar que o histórico depende da configuração do shell e pode não registrar todos os comandos executados.

Ainda assim, é uma ferramenta bastante útil.

Um bom administrador não é necessariamente aquele que decora centenas de comandos. É aquele que sabe consultar a documentação, recuperar procedimentos anteriores e registrar o que aprendeu para não precisar resolver o mesmo problema do zero.

Especialmente às 17h de sexta feira, quando até a memória parece ter solicitado encerramento de expediente.

10. find, localize arquivos e automatize tarefas

O find permite procurar arquivos e diretórios utilizando critérios como nome, tamanho, permissões e data de modificação.

Por exemplo, para localizar arquivos com extensão .log modificados há mais de 30 dias:

find /var/log -type f -name "*.log" -mtime +30 -print

Esse comando apenas apresenta os arquivos encontrados, sem excluí los.

Se a intenção for remover arquivos antigos, existe a opção -delete:

find /var/log -type f -name "*.log" -mtime +30 -delete

Mas aqui é necessário ter bastante cuidado.

Antes de executar uma exclusão, confira o caminho, os critérios da pesquisa e a lista de arquivos que serão afetados. O ideal é começar com -print, validar os resultados e somente depois considerar a remoção.

Também é importante verificar se a aplicação ou o sistema de rotação de logs depende daqueles arquivos.

Um comando de limpeza mal planejado pode liberar espaço rapidamente, mas também pode apagar informações necessárias para auditorias ou investigações de incidentes.

O find é poderoso. E, como toda ferramenta poderosa, merece ser utilizado com atenção.

11. awk, transforme saídas complicadas em informações úteis

O awk é uma ferramenta de processamento de texto que permite selecionar colunas, filtrar linhas e realizar operações sobre dados estruturados.

Para extrair a primeira coluna de uma saída:

awk '{print $1}' arquivo.txt

Para utilizar dois pontos como separador e listar os nomes de usuários registrados em /etc/passwd:

awk -F':' '{print $1}' /etc/passwd

A opção -F':' informa que os campos são separados pelo caractere :.

O awk também pode combinar condições, fazer cálculos e produzir relatórios simples. Isso o torna bastante útil para analisar logs, extrair endereços IP, contar ocorrências e organizar resultados de outros comandos.

No começo, a sintaxe pode parecer estranha. Mas, depois de aprender o básico, você percebe que muitas tarefas que exigiriam um script maior podem ser resolvidas em uma única linha.

E isso não significa que todo script precisa caber em uma linha. Às vezes, deixar o código legível é a melhor forma de garantir que outra pessoa consiga mantê lo depois.

12. apt, dnf, yum e pacman, conheça o gerenciador de pacotes

Cada família de distribuições Linux possui suas próprias ferramentas para instalar, atualizar e remover programas.

No Debian e no Ubuntu, o mais comum é o apt.

sudo apt update
sudo apt list --installed

Em distribuições que utilizam DNF, como Rocky Linux e versões recentes do Fedora:

sudo dnf check-update
sudo dnf list installed

Em sistemas mais antigos, o yum ainda pode estar presente. Já no Arch Linux, o gerenciador de pacotes tradicional é o pacman.

Conhecer essas ferramentas ajuda a verificar quais programas estão instalados, identificar atualizações disponíveis e investigar problemas relacionados a dependências.

Também é importante saber como consultar o histórico de atualizações e quais mecanismos de recuperação estão disponíveis na distribuição utilizada.

Uma atualização aparentemente simples pode alterar bibliotecas, modificar dependências ou afetar um serviço importante. Por isso, em ambientes de produção, atualizações precisam seguir um processo controlado, com testes, planejamento e possibilidade de recuperação.

Atualizar é necessário. Fazer isso sem entender o impacto é outra história.

13. strace, descubra o que um processo está fazendo de verdade

Quando os logs não explicam por que uma aplicação está travada, pode ser necessário investigar o comportamento do processo em um nível mais baixo.

É aí que entra o strace.

Essa ferramenta permite acompanhar chamadas de sistema, mostrando como um processo interage com o sistema operacional.

Para observar um processo em execução:

sudo strace -p PID

Substitua PID pelo identificador do processo que deseja investigar.

O resultado pode revelar tentativas repetidas de abrir arquivos, erros de acesso, operações de leitura e escrita ou chamadas relacionadas à comunicação de rede.

Isso ajuda a identificar situações que não ficam claras nos logs da aplicação.

Por exemplo, um programa pode estar tentando acessar repetidamente um arquivo inexistente ou aguardando uma operação que não termina como esperado.

O strace exige um pouco mais de experiência para interpretar corretamente sua saída, mas pode ser extremamente útil quando as ferramentas mais comuns não são suficientes.

Vale lembrar que rastrear processos em produção pode gerar bastante saída e acrescentar alguma sobrecarga. Portanto, utilize a ferramenta com critério, principalmente em sistemas críticos.

14. lsof, descubra quem está mantendo um arquivo aberto

O nome lsof vem de List Open Files, ou seja, listar arquivos abertos.

No Linux, o conceito de arquivo é bastante amplo. Além de arquivos comuns, a ferramenta também pode mostrar diretórios, sockets de rede, pipes e outros recursos utilizados pelos processos.

Para descobrir quais processos estão utilizando um determinado arquivo:

sudo lsof /caminho/do/arquivo

Para verificar quem está utilizando um ponto de montagem:

sudo lsof +D /caminho/do/diretorio

A segunda opção pode ser mais custosa em diretórios grandes, pois percorre a árvore de arquivos.

O lsof é especialmente útil quando você tenta desmontar um volume e recebe uma mensagem informando que ele está ocupado, ou quando um arquivo aparentemente excluído continua consumindo espaço em disco porque algum processo ainda o mantém aberto.

Nesses casos, a ferramenta ajuda a identificar o responsável sem precisar reiniciar serviços às cegas.

Antes de encerrar o processo encontrado, investigue sua função. Descobrir o culpado é apenas metade do trabalho, a outra metade é resolver o problema sem criar mais dois.

15. Scripts Bash, automatize as verificações repetitivas

Nem toda automação precisa começar com uma plataforma completa de monitoramento.

Em ambientes menores, um script simples em Bash pode verificar o espaço em disco, a memória disponível e o estado de serviços importantes, registrando os resultados ou enviando alertas quando algo sair do esperado.

Por exemplo:

#!/bin/bash

echo "Verificação iniciada em $(date)"

echo
echo "Uso de disco:"
df -h

echo
echo "Memória:"
free -h

echo
echo "Serviços:"
systemctl --failed

Salve o conteúdo em um arquivo, como verifica_servidor.sh, e conceda permissão de execução:

chmod +x verifica_servidor.sh

Depois, execute o script:

./verifica_servidor.sh

Essa é uma base simples que pode ser ampliada para verificar serviços específicos, registrar resultados em arquivos e gerar alertas.

Também é possível agendar sua execução pelo cron.

No entanto, se o objetivo for monitorar um ambiente de produção de forma confiável, vale considerar ferramentas de monitoramento e observabilidade que ofereçam histórico, alertas, dashboards e acompanhamento centralizado.

Um script ajuda bastante, mas não substitui uma estratégia completa quando a infraestrutura cresce.

O importante é não depender exclusivamente de alguém perceber que o servidor está com problemas olhando para a tela.

Conclusão, não precisa decorar tudo, precisa saber investigar

Conhecer os comandos Linux é importante, mas saber combiná los para investigar um problema é o que realmente faz diferença.

O df mostra se falta espaço. O du ajuda a encontrar quem está consumindo o disco. O top revela processos que estão exigindo recursos demais. O ss mostra as portas em escuta. O grep, o tail e o journalctl ajudam a encontrar pistas nos logs.

Quando isso não é suficiente, ferramentas como find, awk, lsof e strace permitem aprofundar a investigação. E, com Bash e o agendamento de tarefas, boa parte das verificações repetitivas pode ser automatizada.

Não é necessário saber todos os comandos de cabeça. O mais importante é entender o que cada ferramenta faz, conhecer suas opções principais e saber consultar a documentação quando surgir uma situação diferente.

Também vale uma regra simples: antes de executar qualquer comando que altere ou exclua alguma coisa, entenda exatamente o que ele fará. Em especial nos servidores de produção, testar antes e conferir os resultados costuma ser muito mais rápido do que tentar recuperar algo depois.

No fim das contas, um bom administrador de sistemas não é aquele que nunca enfrenta problemas. É aquele que consegue investigar com método, encontrar a causa e resolver a situação sem transformar um incidente pequeno em uma crise de grandes proporções.

E, se tudo der certo, você termina o expediente sem precisar reiniciar o servidor, sem receber uma ligação urgente e sem descobrir que o backup estava falhando há três meses.

Convenhamos, isso já seria uma excelente sexta feira.

Qual é a Sua Reação?

Curtir Curtir 0
Não Curtir Não Curtir 0
Amei Amei 0
Divertido Divertido 0
Uau Uau 0
Triste Triste 0
Bravo Bravo 0
Misael Reis

Oi, eu sou o Misael Reis Analista de TI que trocou o "você já tentou reiniciar?" por respostas um pouco mais sofisticadas (mas nem sempre). Aqui você vai encontrar tudo que aprendo (e às vezes sofro) no dia a dia como sysadmin: Linux, redes, hardening, automações e aquela dose diária de "funciona, mas eu não sei por quê". Sem enrolação, sem PowerPoint corporativo — só terminal, prompt e curiosidade nerd de sobrevivência. Se você também acredita que sudo resolve 90% dos problemas (e o outro 10% é firewall), já é da família. 🐧

Comentários (0)

User