Como aprender Linux do zero: plano do primeiro comando à administração de servidores
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 comcat,less,head,tail -f. - Busca:
find,which,locate. - Ajuda:
mane--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,/proce/dev; o que são montagem e inode. - Editor de texto no terminal:
nanono começo e, depois, os comandos básicos dovim, 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. chmodna forma simbólica e na numérica,chowneumask.- 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/shadowe/etc/group. sudo, as regras do sudoers e a edição comvisudo.
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:
curlejq. - Scripts: shebang, variáveis, aspas, condições
ife[[ ]], 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, usednf. 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/environmente 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 ePATHsã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 ekill. - 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 comRestart=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,fdiskouparted, os sistemas de arquivos ext4 e XFS,mkfs. - Montagem:
mount,/etc/fstabcom UUID, verificação commount -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 comProxyJump. - Cópia:
scpersync -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
ufwpara casos simples e onftablespara entender o que acontece por baixo. fail2ban: bloqueio de IPs após uma série de tentativas de login falhas, verificado comfail2ban-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:
- Um VPS novo, um usuário próprio com sudo, login por chave SSH, senhas e root desativados.
- Firewall e fail2ban, atualizações automáticas de segurança.
- Servidor web e aplicação como serviço systemd com reinício automático.
- Um disco ou volume separado para os dados, montado pelo fstab.
- Backup agendado (cron ou temporizador do systemd) para outra máquina via rsync, com log e teste de restauração.
- 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
~/.sshna 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.
Este tema é abordado em profundidade, com prática, no curso “Linux: с нуля до уверенного администрирования”.
- Linux: с нуля до уверенного администрирования
- Финал: собираем защищённый и автоматизированный сервер целиком