0 - Curso de Linux - Índice

Bem-vindo ao Curso de Linux Este é um guia prático e direto para quem quer aprender Linux do zero ou aprimorar seus conhecimentos. O conteúdo é baseado em experiência real de produção, com foco em uso prático e resolução de problemas. 📚 Conteúdo do Curso Fundamentos 1 - Introdução ao Linux e histórico 2 - Instalação 3 - Comandos de terminal e navegação de diretórios Em Desenvolvimento Gerenciamento de arquivos e permissões Gerenciamento de pacotes e software Configuração de rede e conectividade Uso avançado do terminal e scripts Segurança no Linux Administração de sistemas Troubleshooting e resolução de problemas 🎯 Para Quem é Este Curso? Iniciantes que querem aprender Linux Profissionais de TI migrando para Linux Sysadmins buscando referência rápida Estudantes de tecnologia Entusiastas de software livre 💡 Metodologia O curso segue uma abordagem prática: ...

February 2, 2026 · Fabrício Machado

1 - Introdução ao Linux e Histórico

O Que é Linux? Linux é um kernel de sistema operacional de código aberto, criado por Linus Torvalds em 1991. Quando combinado com ferramentas GNU e outros componentes, forma um sistema operacional completo usado em bilhões de dispositivos ao redor do mundo. Por Que Linux? Código Aberto: Qualquer pessoa pode ver, modificar e distribuir o código Gratuito: Sem custos de licenciamento Seguro: Arquitetura robusta com permissões granulares Estável: Servidores rodando por anos sem reinicialização Flexível: Do smartphone ao supercomputador Comunidade Ativa: Milhões de desenvolvedores contribuindo A História 1969-1991: Os Primórdios 1969: Ken Thompson e Dennis Ritchie criam o UNIX nos laboratórios Bell 1983: Richard Stallman inicia o projeto GNU (GNU’s Not Unix) 1987: Andrew Tanenbaum cria o MINIX para fins educacionais 1991: O Nascimento do Linux Em 25 de agosto de 1991, Linus Torvalds, um estudante finlandês de 21 anos, enviou uma mensagem histórica para o grupo de discussão comp.os.minix: ...

February 2, 2026 · Fabrício Machado

2 - Instalação do Linux

Antes de Começar Antes de instalar o Linux, você precisa decidir como vai usá-lo: Opções de Instalação Máquina Virtual (Recomendado para iniciantes) Roda Linux dentro do seu sistema atual Seguro para testar sem riscos Fácil de remover Consome mais recursos Dual Boot Linux e Windows no mesmo computador Escolhe qual sistema usar ao ligar Melhor performance Requer particionamento de disco Instalação Completa Linux como único sistema Máximo desempenho Requer backup de dados importantes Live USB ...

February 2, 2026 · Fabrício Machado

3 - Comandos de Terminal e Navegação de Diretórios

Por Que Usar o Terminal? O terminal (ou shell) é uma das ferramentas mais poderosas do Linux. Enquanto interfaces gráficas são limitadas ao que os desenvolvedores implementaram, o terminal oferece: Automação: Scripts para tarefas repetitivas Eficiência: Comandos mais rápidos que cliques Poder: Acesso a todas as funcionalidades do sistema Administração remota: SSH para gerenciar servidores Troubleshooting: Diagnóstico preciso de problemas Estrutura do Sistema de Arquivos Linux Diferente do Windows (C:, D:), Linux usa uma estrutura hierárquica única: ...

February 2, 2026 · Fabrício Machado

4 - Gerenciamento de Arquivos e Permissões

Sistema de Permissões do Linux Linux é um sistema multiusuário. Cada arquivo e diretório tem permissões que controlam quem pode ler, escrever ou executar. Estrutura de Permissões 1 2 3 4 5 6 7 8 9 10 11 12 ls -l arquivo.txt -rw-r--r-- 1 usuario grupo 1024 fev 2 10:30 arquivo.txt │││││││││ │ │ │ │ │ │││││││││ │ │ │ │ └─ nome do arquivo │││││││││ │ │ │ └────── data de modificação │││││││││ │ │ └──────────── tamanho (bytes) │││││││││ │ └──────────────────── grupo │││││││││ └────────────────────── dono ││││││││└─ outros (r--) │││││└──── grupo (r--) ││└────── dono (rw-) │└─────── tipo (- = arquivo, d = diretório, l = link) Tipos de Permissões r (read): Ler conteúdo ...

February 2, 2026 · Fabrício Machado

5 - Gerenciamento de Pacotes e Software

Gerenciadores de Pacotes Diferente do Windows (baixar .exe), Linux usa gerenciadores de pacotes centralizados que: Instalam software de repositórios confiáveis Resolvem dependências automaticamente Mantêm sistema atualizado Removem software completamente Principais Gerenciadores por Distribuição Distribuição Gerenciador Formato Comando Ubuntu/Debian APT .deb apt, apt-get, dpkg Fedora/RHEL DNF .rpm dnf, yum Arch Linux Pacman .pkg.tar.zst pacman openSUSE Zypper .rpm zypper APT - Debian/Ubuntu Comandos Essenciais 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 # Atualizar lista de pacotes sudo apt update # Atualizar sistema sudo apt upgrade # Atualizar com remoção de pacotes obsoletos sudo apt full-upgrade # Instalar pacote sudo apt install nginx # Instalar múltiplos pacotes sudo apt install vim git curl # Remover pacote (mantém configurações) sudo apt remove nginx # Remover completamente (inclui configurações) sudo apt purge nginx # Remover pacotes não utilizados sudo apt autoremove # Buscar pacote apt search nginx # Informações sobre pacote apt show nginx # Listar pacotes instalados apt list --installed # Listar pacotes atualizáveis apt list --upgradable # Limpar cache de pacotes sudo apt clean sudo apt autoclean apt vs apt-get apt é mais moderno e user-friendly: ...

February 2, 2026 · Fabrício Machado

6 - Configuração de Rede e Conectividade

Conceitos Básicos de Rede Modelo TCP/IP Camada Protocolos Aplicação HTTP, SSH, FTP, DNS Transporte TCP, UDP Internet IP, ICMP Enlace Ethernet, Wi-Fi Endereçamento IP IPv4: 192.168.1.100 Classes: A, B, C (privadas) Máscara de sub-rede: 255.255.255.0 (/24) IPv6: 2001:0db8:85a3::8a2e:0370:7334 Endereços de 128 bits Futuro da internet Portas Comuns Porta Serviço 22 SSH 80 HTTP 443 HTTPS 21 FTP 25 SMTP (email) 53 DNS 3306 MySQL 5432 PostgreSQL Comandos de Diagnóstico ip - Gerenciamento de Rede Moderno 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # Ver todas interfaces ip addr show ip a # Ver interface específica ip addr show eth0 # Ver rotas ip route show ip r # Ver tabela ARP ip neigh show # Estatísticas de interface ip -s link show eth0 ifconfig - Comando Legado (ainda útil) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Ver todas interfaces ifconfig # Ver interface específica ifconfig eth0 # Ativar interface sudo ifconfig eth0 up # Desativar interface sudo ifconfig eth0 down # Configurar IP temporário sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0 ping - Testar Conectividade 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Ping básico ping google.com # Limitar número de pacotes ping -c 4 google.com # Intervalo entre pacotes ping -i 2 google.com # Ping IPv6 ping6 google.com # Ping com timestamp ping -D google.com traceroute - Rastrear Rota 1 2 3 4 5 6 7 8 9 10 11 # Instalar sudo apt install traceroute # Rastrear rota traceroute google.com # Usar ICMP em vez de UDP sudo traceroute -I google.com # Limitar hops traceroute -m 15 google.com netstat - Estatísticas de Rede 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # Todas conexões netstat -a # Portas em escuta netstat -l # Portas TCP em escuta netstat -lt # Portas UDP em escuta netstat -lu # Mostrar PIDs sudo netstat -tulpn # Estatísticas de interface netstat -i # Tabela de roteamento netstat -r ss - Socket Statistics (substitui netstat) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # Todas conexões ss -a # Portas em escuta ss -l # TCP em escuta com PIDs sudo ss -tlnp # UDP em escuta sudo ss -ulnp # Conexões estabelecidas ss -t state established # Estatísticas resumidas ss -s nmap - Network Scanner 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # Instalar sudo apt install nmap # Scan básico nmap 192.168.1.1 # Scan de rede nmap 192.168.1.0/24 # Scan de portas específicas nmap -p 22,80,443 192.168.1.1 # Scan completo sudo nmap -A 192.168.1.1 # Detectar SO sudo nmap -O 192.168.1.1 # Scan rápido nmap -F 192.168.1.1 dig - DNS Lookup 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # Query DNS dig google.com # Query específico (A, MX, NS) dig google.com A dig google.com MX dig google.com NS # Servidor DNS específico dig @8.8.8.8 google.com # Resposta curta dig +short google.com # Reverse DNS dig -x 8.8.8.8 nslookup - DNS Query 1 2 3 4 5 6 7 8 9 10 11 # Query básico nslookup google.com # Servidor DNS específico nslookup google.com 8.8.8.8 # Modo interativo nslookup > server 8.8.8.8 > google.com > exit host - DNS Lookup Simples 1 2 3 4 5 6 7 8 9 # Query básico host google.com # Tipo específico host -t MX google.com host -t NS google.com # Reverse lookup host 8.8.8.8 Configuração de Rede NetworkManager (Desktop) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 # Status nmcli general status # Ver conexões nmcli connection show # Ver dispositivos nmcli device status # Conectar Wi-Fi nmcli device wifi list nmcli device wifi connect SSID password SENHA # Configurar IP estático nmcli connection modify eth0 \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "8.8.8.8 8.8.4.4" \ ipv4.method manual # Aplicar mudanças nmcli connection up eth0 # DHCP nmcli connection modify eth0 ipv4.method auto nmcli connection up eth0 nmtui - Interface Gráfica no Terminal O nmtui (NetworkManager Text User Interface) é uma interface interativa para configurar rede sem precisar decorar comandos do nmcli: ...

February 2, 2026 · Fabrício Machado

7 - Uso Avançado do Terminal e Scripts

Arquivos de Inicialização do Bash Quando você abre um terminal, o Bash lê uma sequência de arquivos de configuração. Entender quais são e quando são lidos é fundamental para configurar variáveis de ambiente, aliases e PATH corretamente. Login Shell vs Non-Login Shell Tipo Quando Arquivos lidos Login shell SSH, console, su - /etc/profile → ~/.bash_profile → ~/.bash_login → ~/.profile Non-login shell Abrir terminal no desktop /etc/bash.bashrc → ~/.bashrc Arquivos Principais 1 2 3 4 5 6 # /etc/profile — Global, executado em login shells (todos os usuários) # /etc/bash.bashrc — Global, executado em non-login shells # ~/.bash_profile — Pessoal, login shell (lê ~/.bashrc geralmente) # ~/.bashrc — Pessoal, non-login shell (aliases, funções, prompt) # ~/.bash_logout — Executado ao sair de login shell Onde colocar o quê O que configurar Onde colocar Variáveis de ambiente (PATH, EDITOR) ~/.bash_profile ou ~/.profile Aliases e funções ~/.bashrc Configurações globais /etc/profile.d/*.sh Prompt (PS1) ~/.bashrc Exemplo prático 1 2 3 4 5 6 7 8 9 10 # ~/.bashrc — carregado em todo terminal novo export EDITOR=vim export PATH="$HOME/.local/bin:$PATH" alias ll='ls -lah' alias gs='git status' alias k='kubectl' # Prompt colorido PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' 1 2 3 4 # ~/.bash_profile — garante que .bashrc é lido em login shells if [ -f ~/.bashrc ]; then source ~/.bashrc fi Recarregar sem fechar o terminal 1 2 3 source ~/.bashrc # ou . ~/.bashrc Aspas Simples e Duplas A diferença entre aspas simples e duplas é uma das fontes mais comuns de bugs em shell scripts. ...

February 2, 2026 · Fabrício Machado

8 - Segurança no Linux

Princípios de Segurança Defesa em Profundidade Múltiplas camadas de segurança: Firewall Autenticação forte Permissões adequadas Atualizações regulares Monitoramento Backup Princípio do Menor Privilégio Usuários e processos devem ter apenas as permissões necessárias. Gerenciamento de Usuários Criar Usuário 1 2 3 4 5 6 7 8 9 10 11 # Criar usuário sudo useradd -m -s /bin/bash usuario # Definir senha sudo passwd usuario # Criar com home e grupos sudo useradd -m -G sudo,docker -s /bin/bash usuario # Criar usuário de sistema (sem login) sudo useradd -r -s /usr/sbin/nologin servico Modificar Usuário 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Adicionar a grupo sudo usermod -aG sudo usuario # Mudar shell sudo usermod -s /bin/zsh usuario # Bloquear usuário sudo usermod -L usuario # Desbloquear sudo usermod -U usuario # Expirar senha sudo passwd -e usuario Deletar Usuário 1 2 3 4 5 # Deletar usuário (mantém home) sudo userdel usuario # Deletar com home sudo userdel -r usuario Gerenciar Grupos 1 2 3 4 5 6 7 8 9 10 11 # Criar grupo sudo groupadd developers # Adicionar usuário a grupo sudo usermod -aG developers usuario # Ver grupos do usuário groups usuario # Deletar grupo sudo groupdel developers Arquivos Importantes 1 2 3 4 5 6 7 8 9 10 11 12 # Usuários /etc/passwd # Senhas (hash) /etc/shadow # Grupos /etc/group # Configuração padrão /etc/login.defs /etc/default/useradd Sudo - Privilégios Administrativos Configurar sudo 1 2 # Editar sudoers (SEMPRE use visudo) sudo visudo Exemplos: ...

February 2, 2026 · Fabrício Machado

9 - Administração Avançada e Troubleshooting

Processo de Boot do Linux Entender o processo de boot é essencial para troubleshooting de servidores que não iniciam corretamente. Sequência de Boot Etapa Componente Função 1 BIOS/UEFI Testa hardware (POST), encontra dispositivo de boot 2 Bootloader (GRUB2) Carrega o kernel e initramfs na memória 3 Kernel Inicializa hardware, monta root filesystem 4 initramfs Sistema de arquivos temporário para carregar drivers 5 systemd (PID 1) Primeiro processo, inicia todos os serviços 6 Target Estado final (multi-user, graphical) Analisar o Boot 1 2 3 4 5 6 7 8 9 10 11 # Tempo total de boot systemd-analyze # Tempo de cada serviço (mais lentos primeiro) systemd-analyze blame # Gráfico de boot (gera SVG) systemd-analyze plot > boot.svg # Cadeia crítica (o que atrasou o boot) systemd-analyze critical-chain Logs de Boot 1 2 3 4 5 6 7 8 9 10 11 # Logs do boot atual journalctl -b # Logs do boot anterior (útil após crash) journalctl -b -1 # Apenas erros do boot journalctl -b -p err # Mensagens do kernel dmesg -T | head -50 Targets (antigos Runlevels) Target Runlevel Descrição poweroff.target 0 Desligar rescue.target 1 Modo de recuperação (single user) multi-user.target 3 Modo texto com rede graphical.target 5 Modo gráfico reboot.target 6 Reiniciar 1 2 3 4 5 6 7 8 # Ver target atual systemctl get-default # Mudar target padrão sudo systemctl set-default multi-user.target # Mudar target agora (sem reiniciar) sudo systemctl isolate rescue.target Gerenciamento de Processos ps - Process Status 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # Todos processos ps aux # Processos do usuário ps -u usuario # Árvore de processos ps auxf pstree # Processos por CPU ps aux --sort=-%cpu | head # Processos por memória ps aux --sort=-%mem | head # Informações específicas ps -eo pid,user,cmd,%cpu,%mem top - Monitor em Tempo Real 1 2 3 4 5 6 7 8 9 10 # Iniciar top top # Comandos dentro do top: # h - ajuda # k - matar processo # r - renice processo # M - ordenar por memória # P - ordenar por CPU # q - sair htop - Top Melhorado 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Instalar sudo apt install htop # Executar htop # Recursos: # F2 - configuração # F3 - buscar # F4 - filtrar # F5 - árvore # F6 - ordenar # F9 - matar # F10 - sair kill - Terminar Processos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # Matar por PID kill 1234 # Forçar término kill -9 1234 kill -SIGKILL 1234 # Término gracioso kill -15 1234 kill -SIGTERM 1234 # Matar por nome killall firefox pkill firefox # Matar processos do usuário pkill -u usuario nice e renice - Prioridade 1 2 3 4 5 6 7 8 # Iniciar com prioridade (-20 a 19, menor = maior prioridade) nice -n 10 comando # Alterar prioridade renice -n 5 -p 1234 # Prioridade por usuário renice -n 10 -u usuario Processos em Background 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # Executar em background comando & # Listar jobs jobs # Trazer para foreground fg %1 # Enviar para background bg %1 # Suspender processo (Ctrl+Z) # Depois: bg para continuar em background # Desassociar do terminal nohup comando & systemd - Gerenciamento de Serviços systemctl - Controle de Serviços 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 # Status do serviço systemctl status nginx # Iniciar serviço sudo systemctl start nginx # Parar serviço sudo systemctl stop nginx # Reiniciar serviço sudo systemctl restart nginx # Recarregar configuração sudo systemctl reload nginx # Habilitar no boot sudo systemctl enable nginx # Desabilitar no boot sudo systemctl disable nginx # Verificar se está habilitado systemctl is-enabled nginx # Verificar se está ativo systemctl is-active nginx Listar Serviços 1 2 3 4 5 6 7 8 9 10 11 # Todos serviços systemctl list-units --type=service # Serviços ativos systemctl list-units --type=service --state=active # Serviços que falharam systemctl list-units --type=service --state=failed # Serviços habilitados systemctl list-unit-files --type=service --state=enabled Criar Serviço Customizado 1 sudo vim /etc/systemd/system/meuapp.service 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [Unit] Description=Minha Aplicação After=network.target [Service] Type=simple User=usuario WorkingDirectory=/opt/meuapp ExecStart=/opt/meuapp/start.sh Restart=always RestartSec=10 [Install] WantedBy=multi-user.target 1 2 3 4 5 6 # Recarregar systemd sudo systemctl daemon-reload # Habilitar e iniciar sudo systemctl enable meuapp sudo systemctl start meuapp Targets (Runlevels) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 # Ver target atual systemctl get-default # Mudar target padrão sudo systemctl set-default multi-user.target # Targets comuns: # poweroff.target (runlevel 0) # rescue.target (runlevel 1) # multi-user.target (runlevel 3) # graphical.target (runlevel 5) # reboot.target (runlevel 6) # Mudar para target sudo systemctl isolate multi-user.target Gerenciamento de Disco df - Disk Free 1 2 3 4 5 6 7 8 # Espaço em disco df -h # Inodes df -i # Tipo de filesystem df -T du - Disk Usage 1 2 3 4 5 6 7 8 # Tamanho do diretório du -sh /var # Top 10 maiores diretórios du -h /var | sort -rh | head -10 # Tamanho de cada subdiretório du -h --max-depth=1 /var lsblk - Listar Dispositivos de Bloco 1 2 3 4 5 6 7 8 # Listar dispositivos lsblk # Com filesystem lsblk -f # Tamanhos em bytes lsblk -b fdisk - Particionar Disco 1 2 3 4 5 6 7 8 9 10 11 12 13 # Listar partições sudo fdisk -l # Particionar disco sudo fdisk /dev/sdb # Comandos dentro do fdisk: # m - ajuda # p - listar partições # n - nova partição # d - deletar partição # w - salvar e sair # q - sair sem salvar Formatar Partição 1 2 3 4 5 6 7 8 9 10 11 # ext4 sudo mkfs.ext4 /dev/sdb1 # xfs sudo mkfs.xfs /dev/sdb1 # btrfs sudo mkfs.btrfs /dev/sdb1 # Com label sudo mkfs.ext4 -L dados /dev/sdb1 Montar Filesystem 1 2 3 4 5 6 7 8 # Montar temporário sudo mount /dev/sdb1 /mnt # Desmontar sudo umount /mnt # Montar permanente (/etc/fstab) sudo vim /etc/fstab 1 2 3 # <device> <mount> <type> <options> <dump> <pass> /dev/sdb1 /dados ext4 defaults 0 2 UUID=xxx /backup ext4 defaults,noatime 0 2 1 2 3 4 5 # Montar tudo do fstab sudo mount -a # Ver UUID sudo blkid FSCK - Verificar e Reparar Sistemas de Arquivos O fsck (File System Check) verifica e repara inconsistências em sistemas de arquivos. Essencial quando o sistema não monta uma partição corretamente. ...

February 2, 2026 · Fabrício Machado