Trilha

Como aprender Linux do zero: plano do primeiro comando à administração de servidores

Atualizado: · Skillaria.Top

O melhor jeito de aprender Linux do zero é por camadas: primeiro o terminal e o sistema de arquivos, depois usuários e permissões, scripts Bash, pacotes, processos e systemd e, por fim, discos, logs, rede, SSH e segurança do servidor. Cada etapa exige prática em uma máquina virtual ou em um VPS barato, e o objetivo final é montar e proteger sozinho um servidor com um serviço no ar.

Aprender Linux do zero é mais simples do que parece, desde que você siga a ordem certa e pratique desde o começo. O erro mais comum de quem está começando é ler sobre comandos sem digitá-los, ou pular direto para Docker e Kubernetes sem entender processos e permissões. A seguir está um plano em nove etapas: o que estudar, o que praticar e como saber que a etapa está concluída.

Como referência de tempo, de duas a quatro meses com uma hora de estudo por dia, mas o ritmo varia de pessoa para pessoa. O mais importante não é a velocidade, e sim ser capaz, ao final de cada etapa, de fazer algo na prática.

Etapa 0: prepare seu ambiente

Linux se aprende dentro do Linux. Estas são as opções, da mais simples à mais realista:

  • WSL2 no Windows: um terminal Ubuntu em poucos minutos. É bom para comandos e scripts, mas o systemd e a rede não se comportam como em um servidor de verdade.
  • Máquina virtual (VirtualBox, VMware, UTM no Mac) com Ubuntu Server ou Debian. Você pode quebrar tudo sem consequências e voltar a um snapshot.
  • VPS barato de um provedor de nuvem: um servidor real, com IP público, o melhor campo de prática para as etapas de rede e segurança.

Para começar, o Ubuntu Server ou o Debian são as melhores escolhas, porque têm a maior quantidade de documentação e de respostas. Não é preciso interface gráfica: servidores são administrados pelo terminal, então acostume-se a ele desde o primeiro dia.

Etapa 1: terminal e sistema de arquivos

Objetivo: circular pelo sistema com segurança e trabalhar com arquivos sem usar o mouse.

  • Navegação: pwd, ls -la, cd, caminhos absolutos e relativos, ~, . e ...
  • Arquivos: cp, mv, rm, mkdir -p, touch, visualização com cat, less, head, tail -f.
  • Busca: find, which, locate.
  • Ajuda: man e --help. Saber ler o manual é uma habilidade que compensa a vida inteira.
  • Estrutura de diretórios: o que há em /etc, /var/log, /home, /usr, /proc e /dev; o que são montagem e inode.
  • Editor de texto no terminal: nano no começo e, depois, os comandos básicos do vim, que existe em praticamente todos os servidores.

Prática: encontre todos os arquivos .conf em /etc modificados na última semana (find /etc -name "*.conf" -mtime -7). Abra /etc/os-release e descubra a versão do sistema. Veja o que o sistema registra em /var/log.

Etapa 2: usuários, grupos e permissões

As permissões são a base da segurança do Linux e a origem de metade dos erros «Permission denied».

  • Leitura da saída de ls -l: tipo, permissões, dono, grupo.
  • chmod na forma simbólica e na numérica, chown e umask.
  • Bits especiais: SUID, SGID e sticky bit, e por que /tmp é gravável por todos, mas ninguém consegue apagar arquivos alheios ali.
  • Usuários e grupos: useradd, usermod -aG, passwd, os arquivos /etc/passwd, /etc/shadow e /etc/group.
  • sudo, as regras do sudoers e a edição com visudo.

Prática: crie dois usuários e uma pasta de projeto compartilhada, na qual os dois possam criar arquivos, mas os demais não vejam nada. Dica: use um grupo, chmod 2770 e SGID para herdar o grupo.

Etapa 3: Bash e ferramentas de texto

Administrar um sistema é, em grande parte, processar texto: logs, configurações, saídas de comandos. Nesta etapa o terminal deixa de ser um conjunto de comandos e vira uma ferramenta de trabalho.

  • Redirecionamentos e pipes: >, >>, 2>&1, |, xargs.
  • Filtros: grep (com expressões regulares), sort, uniq -c, wc, cut, sed, awk.
  • JSON e HTTP no console: curl e jq.
  • Scripts: shebang, variáveis, aspas, condições if e [[ ]], laços, funções, códigos de retorno, set -euo pipefail.

Prática: conte, em uma linha, os dez endereços IP com mais requisições no log do servidor web:

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head

Depois escreva um script de backup de um diretório em um arquivo com a data no nome, que apague os arquivos com mais de sete dias e retorne código de erro diferente de zero em caso de falha.

Etapa 4: pacotes, ambiente e agendamento

  • Gerenciador de pacotes: apt update, apt install, apt remove, apt search, dpkg -l. Nas distribuições RHEL, use dnf. Entenda o que é um repositório e para que servem as chaves de assinatura.
  • Variáveis de ambiente: env, export, PATH, os arquivos ~/.bashrc, ~/.profile, /etc/environment e quando cada um é lido.
  • Agendamento: crontab -e, a sintaxe dos cinco campos e por que um comando que funciona no terminal «não funciona» no cron (ambiente e PATH são diferentes).

Prática: instale o nginx pelo repositório, adicione sua pasta de scripts ao PATH e configure o script de backup da etapa 3 para rodar todas as noites pelo cron, gravando a saída em um log.

Etapa 5: processos e systemd

Aqui você começa a entender o que realmente acontece dentro do sistema.

  • Processos: ps aux, top/htop, PID e PPID, estados, prioridades (nice), sinais e kill.
  • Carga: load average, memória e swap (free -h), o que significa um processo no estado D.
  • Depuração: lsof, para ver quais arquivos e portas um processo abriu; strace, para ver as chamadas de sistema e onde ele travou.
  • systemd: unidades, systemctl status/start/enable, uma unidade própria com Restart=on-failure, temporizadores no lugar do cron.
  • Logs: journalctl -u, -f, -b, -p err, rotação, rsyslog; estatísticas de desempenho com o sysstat (sar, iostat).

Prática: transforme uma pequena aplicação (pelo menos o python3 -m http.server) em um serviço systemd executado por um usuário próprio. Encerre o processo com kill -9, confirme que o systemd o levantou de novo e encontre o registro do reinício no journal.

Etapa 6: discos, LVM e RAID

  • Dispositivos e partições: lsblk, blkid, fdisk ou parted, os sistemas de arquivos ext4 e XFS, mkfs.
  • Montagem: mount, /etc/fstab com UUID, verificação com mount -a.
  • Espaço: df -h, df -i, du -sh, a busca pelo que está ocupando o disco.
  • LVM: volumes físicos, grupos de volumes, volumes lógicos e a expansão de partições sem parar o sistema.
  • RAID por software com mdadm: entender os níveis 0, 1, 5 e 10, e que RAID não é backup.

Prática: adicione dois discos à máquina virtual, monte um LVM com eles, crie um volume, monte-o pelo fstab e depois aumente-o com lvextend -r.

Etapa 7: rede

  • TCP/IP no nível necessário para diagnóstico: IP, máscara, gateway, porta, TCP e UDP.
  • Comandos: ip a, ip r, ss -tlnp, ping, traceroute/mtr, curl -v, nc.
  • DNS: como funciona a resolução, /etc/hosts, /etc/resolv.conf, dig, resolvectl.
  • Configuração de rede na sua distribuição (netplan no Ubuntu, NetworkManager em outras).
  • Captura de tráfego: tcpdump, para quando nada mais resolve.

Prática: descubra qual processo escuta em cada porta aberta do seu servidor. Analise por que um serviço que escuta em 127.0.0.1 não está acessível de fora e corrija isso.

Etapa 8: trabalho remoto: SSH e transferência de arquivos

  • SSH: chaves (ssh-keygen -t ed25519, ssh-copy-id), o arquivo ~/.ssh/config, ssh-agent, encaminhamento de portas (ssh -L), bastião com ProxyJump.
  • Cópia: scp e rsync -avz --delete, e por que o rsync é melhor para sincronização.
  • Sistemas de arquivos em rede: NFS entre servidores Linux, SMB (Samba) para trocar arquivos com Windows.

Prática: configure o acesso ao seu VPS apenas por chave, descreva-o no ~/.ssh/config com um nome curto e sincronize diariamente uma pasta para o servidor com o rsync.

Etapa 9: segurança do servidor

  • Firewall: o princípio de «negado tudo o que não for permitido», o ufw para casos simples e o nftables para entender o que acontece por baixo.
  • fail2ban: bloqueio de IPs após uma série de tentativas de login falhas, verificado com fail2ban-client status sshd.
  • Configuração do sshd: proibir login por senha e login como root.
  • Atualizações de segurança e sua instalação automática (unattended-upgrades no Debian e no Ubuntu).
  • GPG: verificação de assinaturas de pacotes e arquivos, criptografia de backups.

Prática: libere no firewall apenas as portas 22, 80 e 443, ative o fail2ban e, depois de um dia, veja o status dele para descobrir quantos endereços já foram bloqueados.

Projeto final: monte um servidor completo

A melhor prova de que você aprendeu Linux é montar um servidor do zero, sem ajuda:

  1. Um VPS novo, um usuário próprio com sudo, login por chave SSH, senhas e root desativados.
  2. Firewall e fail2ban, atualizações automáticas de segurança.
  3. Servidor web e aplicação como serviço systemd com reinício automático.
  4. Um disco ou volume separado para os dados, montado pelo fstab.
  5. Backup agendado (cron ou temporizador do systemd) para outra máquina via rsync, com log e teste de restauração.
  6. Um roteiro curto de como recriar tudo isso do zero.

Se você conseguir cumprir essa lista e explicar cada passo, terá a base para trabalhar como administrador de sistemas ou engenheiro DevOps. O próximo passo natural são contêineres, automação de configuração e monitoramento.

Como estudar com mais eficiência

  • Digite os comandos você mesmo.Copiar e colar do artigo não fixa nada; digitar e errar, sim.
  • Quebre e conserte.Estrague o fstab ou as permissões de ~/.ssh na máquina virtual e recupere o sistema. Essa experiência é valorizada em entrevistas.
  • Tenha um caderno de anotações.Um resumo pessoal de comandos, com exemplos, é mais útil do que qualquer cola de outra pessoa.
  • Leia os logs.Quase qualquer problema no Linux é explicado pelo log; acostume-se a olhar para lá primeiro.

Conclusão

A resposta para como aprender Linux do zero é avançar por camadas: terminal e arquivos, permissões, Bash, pacotes, processos e systemd, discos, rede, SSH e segurança, resolvendo em cada etapa um problema prático no seu próprio ambiente. O objetivo final é montar e proteger sozinho um servidor com um serviço em funcionamento. É exatamente por esse caminho, da aula introdutória ao projeto final, que o curso de Linux da plataforma está organizado.

Perguntas frequentes

Quanto tempo leva para aprender Linux do zero?

Com uma hora de estudo por dia, a maioria das pessoas adquire em alguns meses a base para operar um servidor no dia a dia. A confiança vem da prática com tarefas reais, por isso a regularidade vale mais do que o total de horas.

Preciso saber programar para aprender Linux?

Não é necessário para começar. Mas, na etapa de scripts Bash, você já estará programando na prática, e essas habilidades serão úteis depois para automação.

É possível aprender Linux no Windows?

Sim, usando WSL2 ou uma máquina virtual. Para os temas de systemd, discos e rede, o ideal é uma máquina virtual completa ou um VPS.

Vale a pena usar Linux como sistema principal no computador?

Ajuda, mas não é obrigatório. Para administração, o mais importante é trabalhar com um servidor Linux pelo terminal, e não usar a área de trabalho gráfica.

Qual distribuição escolher como iniciante?

Ubuntu Server ou Debian: têm muita documentação, e as habilidades se transferem facilmente para outras distribuições. A diferença principal das distribuições da família RHEL é o gerenciador de pacotes dnf.

Aprenda este tema em vídeo

Este tema é abordado em profundidade, com prática, no curso “Linux: с нуля до уверенного администрирования”.

Ir para o curso