Linux
Tronco podado — o conteúdo virou galho atômico
Esta nota era um monólito de 1118 linhas sobre Linux. Em 2026-08-16 o assunto virou o galho Linux, com 16 notas em 3 fases e a lente o sistema como o processo o vê — o quarto e último galho do domínio, depois de Docker, Kubernetes e Nginx.
Nada foi perdido: cada seção foi absorvida e desenvolvida. O mapa está abaixo, e as seções de relato pessoal e de inglês seguem preservadas aqui, ao fim da nota.
Para onde foi cada seção
| O que havia aqui | Onde está agora |
|---|---|
| O que é, e por que Linux importa | 01 — O contrato de execução |
| Filesystem hierarchy | 02 — A hierarquia, que acrescenta /proc e /sys como sistemas de arquivos sintéticos |
| Shell básico, variáveis, redirecionamento | 03 — Descritores e redirecionamento · a ergonomia do shell fica em Terminal |
| Permissões, users e groups | 04 — Identidade e permissão |
| Processos e jobs, sinais, foreground/background | 05 — O processo como objeto administrável |
| Systemd: serviços e criação de unidade | 06 — O modelo de unidades · 07 — Escrever um serviço |
| journalctl | 08 — journald |
| Timers e cron | 09 — Agendamento |
| Networking, SSH, firewall, network namespaces | 10 — A máquina na rede · o protocolo em Redes |
| Package management (APT, DNF, Pacman, APK, Snap/Flatpak) | 11 — Software instalado |
| Monitoring e o checklist “o servidor está lento” | 12 — Os primeiros sessenta segundos · 13 — Os quatro eixos |
| strace, lsof, dmesg, perf | 15 — O que o processo pede ao kernel |
| Checklist de 60 segundos de Brendan Gregg | desenvolvido na nota 12, com o método USE |
O que não migrou, e por quê
As duas seções abaixo são material de entrevista — relato pessoal e articulação em inglês. O galho novo não incorpora experiência pessoal do autor, então elas ficam preservadas aqui. Mesmo tratamento dado a
Docker.md,Kubernetes.mdeNginx.md.
Na prática (da minha experiência)
Linux é meu ambiente principal de trabalho há 15+ anos. WSL2 hoje, Ubuntu em servidores, Alpine em containers. Entender Linux profundamente distingue um senior de alguém que só “usa bash”.
Patterns que uso todo dia:
1.
set -euo pipefailem todo script. Sem isso, bugs silenciosos são garantidos.2.
ripgrepefdem vez degrep -refind. 10x mais rápido, melhor UX.3.
htop/btopem vez detop. Visual superior.4.
journalctlem vez detail /var/log/.... Systemd centralizou logs — use.5. SSH config (
~/.ssh/config). Aliases para todos os servidores, key automaticamente, ProxyJump para bastion.6.
tmuxem servidores remotos. Sessão sobrevive a desconexão.7.
dotfilesversionados..bashrc,.tmux.conf,.vimrc,.gitconfigtudo no git. Máquina nova?./install.sh.8.
fzf— fuzzy finder. Ctrl+R para histórico de comandos,fzfpara arquivos. Produtividade enorme.Incidente memorável — disk cheio:
Servidor de produção parou de responder.
df -hmostrou/var/loga 100%. Causa: log de nginx não estava sendo rotacionado porquelogrotateestava quebrado. Remediação imediata:truncate -s 0 /var/log/nginx/access.log(não delete o arquivo — nginx ainda tem FD aberto). Fix definitivo: consertar logrotate.Outro — processo zumbi consumindo memory:
App Java tinha leak, consumia 2GB a cada 6 horas.
ps aux --sort=-%memidentificou. OOM killer matava, systemd reiniciava. Fix imediato: MemoryMax no unit file + alarme. Fix real: debug do leak no código (heap dump via jmap, análise em VisualVM).Outro — SSH travava após key-based auth:
Login via chave levava 30 segundos. Causa:
UseDNS yesem/etc/ssh/sshd_config— SSH tentava reverse DNS do cliente que não existia. Fix:UseDNS no. Login instantâneo.A lição principal: Linux é enorme, mas 20 comandos resolvem 80% dos problemas. Dominar
grep,awk,find,ssh,systemctl,journalctl,ps,top,netstat/ss,lsof,tcpdump,curl, e scripting bash básico é o que faz você produtivo. Para o resto, Google + man pages existem.
How to explain in English
“Linux has been my primary development and production environment for over 15 years. Understanding Linux deeply — not just using commands from memory — is what separates a senior from someone who just ‘knows bash’.
For day-to-day work, my essentials are the GNU coreutils plus modern replacements. I use
ripgrepinstead ofgrep -rbecause it’s orders of magnitude faster,fdinstead offind,htoporbtopinstead oftop. For text processing, grep, sed, awk, and jq are always there — the combination can solve almost any data transformation in a pipeline.I script in bash with
set -euo pipefailas the first line — fail fast, no silent errors. For scheduled tasks, I prefer systemd timers over cron because systemd centralizes logging via journalctl and handles dependencies properly.For server debugging, I follow Brendan Gregg’s 60-second checklist:
uptimefor load,vmstatandmpstatfor CPU and memory,iostatfor disk I/O,sarfor network, andtoporhtopfor processes. If something’s wrong, one of those usually shows where. For deeper investigation,stracefor syscalls,lsoffor open files and ports,tcpdumpfor packets, andjournalctlfor systemd logs.For SSH, I use key-based authentication with Ed25519 keys, disable password auth on servers, and keep a detailed
~/.ssh/configwith aliases and ProxyJump for bastion hosts. For remote sessions,tmuxkeeps my work persistent across disconnects.Understanding Linux primitives — namespaces, cgroups, systemd units, filesystems — makes containers and Kubernetes far less magical. When I see a Dockerfile or a Kubernetes Pod, I understand what’s actually happening at the kernel level: PID and network namespaces, cgroup limits, overlay filesystems, and capabilities. That foundation pays off when things break.”
Frases úteis em entrevista
- “
set -euo pipefailas the first line of any bash script.” - “ripgrep and fd replace grep and find for everything.”
- “systemd for services, journalctl for logs, systemctl for control.”
- “Brendan Gregg’s 60-second performance checklist catches most issues.”
- “strace for syscalls, lsof for open files, tcpdump for packets.”
- “SSH keys Ed25519, disable password auth, ssh config with ProxyJump.”
- “Containers are namespaces plus cgroups plus overlayfs — nothing magical.”
- “Prefer
tmuxovernohupfor long-running sessions.” - “
chmod 777is an answer, never the answer.” - “pkill and pgrep by pattern beat
ps aux | grep.”
Key vocabulary
- núcleo → kernel
- camada do usuário → userspace
- distribuição → distribution / distro
- interpretador de comandos → shell
- encadeamento → pipe
- redirecionamento → redirection
- processo → process
- thread → thread
- sinal → signal
- proprietário → owner
- permissão → permission
- propriedade → ownership
- privilégio → privilege
- primeiro plano → foreground
- segundo plano → background
- montagem → mount
- ponto de montagem → mount point
- sistema de arquivos → filesystem
- ligação → link (symbolic / hard)
- espaço de nomes → namespace
- grupo de controle → cgroup
- variável de ambiente → environment variable
- substituição de comando → command substitution
- heredoc → heredoc
- fluxo → stream (stdin, stdout, stderr)
Recursos
Documentação
- Linux man pages —
man <cmd>ouman -k keyword - tldr — versões resumidas do man (essencial)
- GNU Coreutils
- systemd docs
- Arch Wiki — melhor documentação Linux da internet, funciona para qualquer distro
Livros
- The Linux Command Line — William Shotts (gratuito, linuxcommand.org)
- Linux Bible — Christopher Negus
- How Linux Works — Brian Ward
- Systems Performance — Brendan Gregg (profundo, referência de performance)
- BPF Performance Tools — Brendan Gregg (avançado)
Blogs
- Julia Evans — Linux explained with comics
- Brendan Gregg — performance deep dives
- LWN.net — kernel news
Cursos
- Linux Foundation courses
- Linux Journey — interativo, gratuito
Ferramentas modernas (vale instalar)
- ripgrep (rg) — grep melhor
- fd — find melhor
- bat — cat com highlighting
- exa / eza — ls melhor
- htop, btop
- fzf — fuzzy finder
- jq, yq
- tmux
- zoxide — cd mais esperto
- direnv — env vars por diretório
- ncdu — du interativo
- iotop, iftop, nethogs
- dust — du moderno
- procs — ps moderno
- starship — prompt bonito e rápido
- delta — git diff melhor
Veja também
- Docker — containers (cgroups + namespaces)
- Kubernetes — orquestração
- Nginx — reverse proxy
- Terminal — shell customization
- Configurando Ambiente Linux no WSL — WSL setup
- Redes e Protocolos — networking básico
- Banco de Dados — administração de DBs
- CI-CD — build e deploy em Linux
- System Design — Linux em arquitetura