O Linux é essencial para desenvolvedores em 2026 – desde WSL2 no Windows até a base Unix do macOS e servidores em nuvem executando Ubuntu e Alpine. Compreender o Linux torna você um desenvolvedor melhor, permite o trabalho no servidor e é necessário para a maioria das funções de DevOps e back-end. Este guia cobre o que todo desenvolvedor precisa saber sobre Linux.
📋 Table of Contents
Por que o Linux é importante para os desenvolvedores
- Servidores rodam Linux: 96% dos principais 1 milhão de servidores web rodam Linux
- Contêineres Docker: Quase todas as imagens de contêiner são baseadas em Linux
- Computação em nuvem: AWS EC2, GCP, Azure padrão para instâncias Linux
- Ferramentas de desenvolvimento: gcc, git, bash, curl todos nativos no Linux
- WSL2: Execute Linux no Windows sem inicialização dupla
Guia de distribuições Linux
| Distribuição | Caso de uso | Gerenciador de pacotes |
|---|---|---|
| Ubuntu 24.04LTS | Servidores, iniciantes, WSL2 | apt |
| Debian | Servidores estáveis, sem frescuras | apt |
| Alpino Linux | Contêineres Docker (5 MB!) | apk |
| Arco Linux | Personalização, aprendizagem | pacman |
| Fluxo CentOS/RHEL | Empresa, conformidade | dnf/yum |
Conhecimento essencial de Linux para desenvolvedores
Estrutura do sistema de arquivos
# Key directories every developer should know
/ # root
/home/user/ # user home directory (~)
/etc/ # system configuration files
/var/log/ # log files
/var/lib/ # application data (databases, docker)
/opt/ # optional/third-party software
/usr/local/ # user-installed software
/tmp/ # temporary files (cleared on reboot)
/proc/ # virtual filesystem — kernel and process info
/dev/ # device files
# Navigation
cd ~ # go home
cd - # go back to previous directory
ls -la # list all with permissions
pwd # print working directory
find . -name "*.log" # find files
locate filename # fast find (uses index)
Gestão de Processos
# View processes
ps aux # all processes
ps aux | grep nginx # find nginx
top # interactive, real-time
htop # better interactive
pgrep -f "python" # find by name
# Kill processes
kill 1234 # graceful (SIGTERM)
kill -9 1234 # force kill (SIGKILL)
killall nginx # kill by name
pkill -f "python app.py" # kill by pattern
# Background jobs
./long_task.sh & # run in background
nohup ./task.sh & # persist after logout
jobs # list background jobs
fg %1 # bring job 1 to foreground
bg %1 # send to background
# System resources
free -h # memory usage
df -h # disk space
du -sh * # size of items in current dir
iostat -x 1 # I/O statistics
Rede para desenvolvedores
# Check connectivity
ping google.com
traceroute google.com
dig google.com # DNS lookup
nslookup google.com
# Ports and services
ss -tulnp # list open ports + process
netstat -tulnp # same (older)
lsof -i :8000 # what's using port 8000
curl -I https://example.com # HTTP headers only
# SSH
ssh user@server.com
ssh -i ~/.ssh/key.pem ubuntu@ec2-host.compute.amazonaws.com
scp file.txt user@server:/path/to/dest/
rsync -avz ./src/ user@server:/app/src/
# SSH config (~/.ssh/config)
Host myserver
HostName 203.0.113.1
User ubuntu
IdentityFile ~/.ssh/mykey.pem
# Now: ssh myserver
systemd — Gerenciamento de serviços
# Managing services
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx
sudo systemctl reload nginx # reload config without restart
sudo systemctl enable nginx # start on boot
sudo systemctl disable nginx
sudo systemctl status nginx
# View logs
journalctl -u nginx # nginx logs
journalctl -u nginx -f # follow nginx logs
journalctl -n 100 # last 100 system log entries
journalctl --since "1 hour ago"
# Create your own service
# /etc/systemd/system/myapp.service
[Unit]
Description=My App
After=network.target
[Service]
Type=simple
User=deploy
WorkingDirectory=/app
ExecStart=/usr/bin/python3 -m uvicorn main:app --host 0.0.0.0 --port 8000
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Cron Jobs – Tarefas Agendadas
# Edit crontab
crontab -e
crontab -l # list current crons
# Cron syntax:
# MIN HOUR DAY MONTH WEEKDAY command
# 0 2 * * * /usr/bin/backup.sh
# Examples:
0 * * * * /app/hourly_task.sh # every hour
0 2 * * * /app/daily_backup.sh # 2am daily
*/15 * * * * /app/health_check.sh # every 15 min
0 9 * * 1-5 /app/weekday_report.sh # 9am Mon-Fri
0 0 1 * * /app/monthly_report.sh # 1st of month
# Logging cron output
0 2 * * * /app/backup.sh >> /var/log/backup.log 2>&1
Linux para Docker e nuvem
# Docker on Linux
sudo apt install docker.io
sudo usermod -aG docker $USER # run docker without sudo
newgrp docker
# Docker-compose
sudo apt install docker-compose-plugin
docker compose up -d
# Cloud instances: most common tasks
# Connect
ssh -i key.pem ubuntu@your-server-ip
# Update and install
sudo apt update && sudo apt upgrade -y
sudo apt install -y nginx python3-pip git
# Firewall
sudo ufw enable
sudo ufw allow ssh
sudo ufw allow 80
sudo ufw allow 443
sudo ufw status
Linux para desenvolvedores em 2026: domine a linha de comando (nosso Guia de comandos do Linux cobre todos os comandos), entenda o gerenciamento de processos, ferramentas de rede e serviços systemd. Se estiver no Windows, o WSL2 oferece o Ubuntu diretamente no Terminal do Windows – altamente recomendado. O terminal é onde reside o verdadeiro poder do Linux, e investir tempo aqui traz dividendos ao longo de sua carreira.
🔗 Share this article
✍️ Leave a Comment