A grande maioria dos servidores web opera em ambientes Linux. Independentemente de você usar macOS ou Windows (via WSL) durante o desenvolvimento, o momento do deploy exigirá familiaridade com o terminal. Dominar a interface de linha de comando (CLI) não é apenas um diferencial técnico, é a competência que separa um desenvolvedor que perde horas em problemas de servidor de um profissional que resolve gargalos em poucos segundos.
Navegação no Sistema de Arquivos
# Exibir o diretório de trabalho atual pwd # Listar arquivos (formato detalhado, tamanhos legíveis, arquivos ocultos) ls -lah # Navegar entre diretórios cd /var/www/html cd ~ # Retornar ao diretório home cd - # Voltar ao diretório anterior # Criar estruturas de diretórios completas mkdir -p projetos/meu-app/src # Localizar arquivos com critérios de tempo find /var/log -name "*.log" -mtime -7 # Logs modificados na última semana
Manipulação de Arquivos e Logs
# Visualizar conteúdo cat config.json # Exibe tudo head -n 20 access.log # Primeiras 20 linhas tail -n 50 error.log # Últimas 50 linhas tail -f error.log # Monitoramento em tempo real (debug) less large-file.log # Leitor otimizado para arquivos grandes # Gestão de arquivos cp file.txt backup/file.txt cp -r src/ src-backup/ # Cópia recursiva de pastas mv antigo.txt novo.txt rm file.txt rm -rf node_modules/ # Remoção recursiva (CUIDADO!) # Espaço em disco du -sh node_modules/ # Tamanho de um diretório df -h # Resumo do uso do disco
Processamento de Texto: grep, sed e awk
Estes três utilitários formam o canivete suíço para análise de logs e automação de textos no terminal.
# Localizar termo em arquivos grep "ERROR" /var/log/app.log # Busca recursiva em uma árvore de diretórios grep -r "TODO" src/ # Buscar ignorando maiúsculas e exibindo o número da linha grep -in "database" config.php # Exibir contexto (linhas antes e depois da ocorrência) grep -B3 -A3 "Exception" error.log # Contar ocorrências grep -c "404" access.log
# Substituir a primeira ocorrência por linha sed 's/http:/https:/' urls.txt # Substituir TODAS as ocorrências (global) sed 's/http:/https:/g' urls.txt # Editar arquivo diretamente (in-place) sed -i 's/localhost/producao.exemplo.com/g' .env
# Exibir colunas específicas de um arquivo formatado
awk '{print $1, $4}' access.log
# Somar valores em uma coluna numérica
awk '{sum += $5} END {print sum}' dados.csv
Permissões e Propriedade de Arquivos
# Tornar um script executável chmod +x deploy.sh # Definir permissões granulares (dono: rwx, grupo: r-x, outros: r--) chmod 754 app.js # Alterar o dono de diretórios recursivamente chown -R www-data:www-data /var/www/html
SSH e Conexões Remotas
# Conexão via SSH ssh [email protected] # Conectar usando chave privada específica ssh -i ~/.ssh/minha-chave.pem [email protected] # Transferir arquivos (SCP) scp -r ./dist [email protected]:/var/www/html/ # Executar comandos remotos sem login interativo ssh [email protected] "sudo systemctl restart nginx"
Gerenciamento de Processos
# Listar processos em execução ps aux | grep node # Identificar qual serviço está usando uma porta lsof -i :3000 # ou ss -tulnp | grep 3000 # Finalizar processos pelo PID kill 12345 kill -9 12345 # Encerramento forçado # Monitoramento de recursos em tempo real htop
Pipes e Redirecionamento
O operador pipe (|) canaliza a saída de um comando para a entrada de outro. É a base da versatilidade na linha de comando.
# Listar os 10 arquivos mais pesados
du -ah /var/log | sort -rh | head -10
# Contar IPs únicos nos logs de acesso
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head -20
# Gravar saída em log com timestamp
echo "Deploy executado em $(date)" >> deploy.log
# Redirecionar erros de build para um arquivo
npm run build 2> erros.log
Experimente Nossas Ferramentas Gratuitas
Codifique, decodifique e formate seus dados instantaneamente.