6 - Configuração de Rede e Conectividade

Conceitos Básicos de Rede Modelo TCP/IP A T I E p r n n l a t l i n e a c s r c a p n e ç o e ã r t o t e → → → → H T I E T C P t T P , h P , e , I r U C n S D M e S P P t H , , W F i T - P F , i D N S Endereçamento IP IPv4: 192.168.1.100 ...

February 2, 2026 · Fabrício Machado

7 - Uso Avançado do Terminal e Scripts

Bash Scripting Básico Primeiro Script 1 2 3 4 5 6 7 #!/bin/bash # meu_script.sh echo "Olá, mundo!" echo "Usuário: $USER" echo "Diretório: $PWD" echo "Data: $(date)" Tornar executável: 1 2 chmod +x meu_script.sh ./meu_script.sh Shebang 1 2 3 4 #!/bin/bash # Bash #!/bin/sh # Shell POSIX #!/usr/bin/env bash # Bash (portável) #!/usr/bin/python3 # Python Variáveis 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #!/bin/bash # Definir variável NOME="João" IDADE=30 # Usar variável echo "Nome: $NOME" echo "Idade: ${IDADE}" # Variáveis de ambiente echo "Home: $HOME" echo "Path: $PATH" # Comando em variável DATA=$(date +%Y-%m-%d) ARQUIVOS=$(ls -1 | wc -l) echo "Data: $DATA" echo "Arquivos: $ARQUIVOS" Argumentos 1 2 3 4 5 6 7 #!/bin/bash echo "Script: $0" echo "Primeiro argumento: $1" echo "Segundo argumento: $2" echo "Todos argumentos: $@" echo "Número de argumentos: $#" Uso: ...

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

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 # / U d U < e I d v D e / = s x i d x c b x e 1 > < / / m d b o a a u d c n o k t s u > p < e e t x x y t t p 4 4 e > d d o e e p f f t a a i u u o l l n t t s s s > , n o a t i m e < 0 d 0 u m p > < 2 2 p a s s > 1 2 3 4 5 # Montar tudo do fstab sudo mount -a # Ver UUID sudo blkid LVM - Logical Volume Manager 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 # Criar Physical Volume sudo pvcreate /dev/sdb1 # Criar Volume Group sudo vgcreate vg_dados /dev/sdb1 # Criar Logical Volume sudo lvcreate -L 10G -n lv_dados vg_dados # Formatar sudo mkfs.ext4 /dev/vg_dados/lv_dados # Montar sudo mount /dev/vg_dados/lv_dados /dados # Estender LV sudo lvextend -L +5G /dev/vg_dados/lv_dados sudo resize2fs /dev/vg_dados/lv_dados # Ver informações sudo pvdisplay sudo vgdisplay sudo lvdisplay RAID 1 2 3 4 5 6 7 8 9 # Criar RAID 1 (espelhamento) sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 # Ver status cat /proc/mdstat sudo mdadm --detail /dev/md0 # Salvar configuração sudo mdadm --detail --scan >> /etc/mdadm/mdadm.conf Monitoramento de Performance vmstat - Virtual Memory Statistics 1 2 3 4 5 # Estatísticas a cada 2 segundos vmstat 2 # 10 amostras vmstat 2 10 iostat - I/O Statistics 1 2 3 4 5 6 7 8 9 10 11 # Instalar sudo apt install sysstat # Estatísticas de I/O iostat # Detalhado iostat -x # A cada 2 segundos iostat -x 2 iotop - I/O por Processo 1 2 3 4 5 # Instalar sudo apt install iotop # Executar sudo iotop sar - System Activity Reporter 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # CPU sar -u 2 10 # Memória sar -r 2 10 # I/O sar -b 2 10 # Rede sar -n DEV 2 10 # Histórico (requer sysstat habilitado) sar -u -f /var/log/sysstat/sa01 free - Memória 1 2 3 4 5 # Uso de memória free -h # Atualizar a cada 2 segundos free -h -s 2 uptime - Tempo de Atividade 1 2 3 4 5 # Uptime e load average uptime # Load average: 1min, 5min, 15min # Ideal: < número de CPUs Troubleshooting Comum Sistema Lento 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 1. Verificar load average uptime # 2. Verificar CPU top htop # 3. Verificar memória free -h # 4. Verificar disco df -h iostat -x # 5. Verificar processos ps aux --sort=-%cpu | head ps aux --sort=-%mem | head # 6. Verificar I/O sudo iotop Disco Cheio 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 # 1. Verificar uso df -h # 2. Encontrar maiores diretórios sudo du -h / | sort -rh | head -20 # 3. Encontrar arquivos grandes sudo find / -type f -size +100M -exec ls -lh {} \; # 4. Limpar logs sudo journalctl --vacuum-time=7d sudo find /var/log -name "*.log" -mtime +30 -delete # 5. Limpar cache de pacotes sudo apt clean sudo dnf clean all # 6. Remover pacotes órfãos sudo apt autoremove Processo Travado 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # 1. Identificar PID ps aux | grep processo # 2. Ver detalhes sudo lsof -p PID sudo strace -p PID # 3. Tentar término gracioso kill PID # 4. Forçar término kill -9 PID # 5. Se não funcionar, verificar estado ps aux | grep PID # Estado D (uninterruptible sleep) = problema de I/O Rede não Funciona 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # 1. Verificar interface ip link show # 2. Verificar IP ip addr show # 3. Verificar rota ip route show # 4. Testar gateway ping 192.168.1.1 # 5. Testar DNS ping 8.8.8.8 ping google.com # 6. Verificar DNS cat /etc/resolv.conf # 7. Reiniciar rede sudo systemctl restart NetworkManager Serviço não Inicia 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 1. Ver status sudo systemctl status servico # 2. Ver logs sudo journalctl -u servico -n 50 # 3. Verificar configuração sudo servico -t # nginx, apache sudo servico configtest # 4. Verificar permissões ls -l /etc/servico/ ls -l /var/log/servico/ # 5. Verificar porta sudo ss -tlnp | grep :80 # 6. Verificar SELinux/AppArmor sudo ausearch -m avc -ts recent sudo aa-status Boot Lento 1 2 3 4 5 6 7 8 9 10 11 # Analisar tempo de boot systemd-analyze # Serviços mais lentos systemd-analyze blame # Gráfico de boot systemd-analyze plot > boot.svg # Verificar serviços habilitados systemctl list-unit-files --type=service --state=enabled Memória Alta 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 # 1. Ver uso free -h # 2. Processos por memória ps aux --sort=-%mem | head # 3. Limpar cache (seguro) sudo sync sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches' # 4. Verificar swap swapon --show # 5. Ver OOM killer logs sudo dmesg | grep -i "out of memory" sudo journalctl -k | grep -i "out of memory" Logs e Diagnóstico dmesg - Kernel Ring Buffer 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Ver mensagens do kernel dmesg # Últimas mensagens dmesg | tail # Buscar erros dmesg | grep -i error # Tempo legível dmesg -T # Seguir em tempo real dmesg -w strace - Rastrear System Calls 1 2 3 4 5 6 7 8 9 10 11 # Rastrear comando strace ls # Rastrear processo em execução sudo strace -p PID # Salvar em arquivo strace -o trace.txt comando # Estatísticas strace -c comando lsof - List Open Files 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # Arquivos abertos por processo sudo lsof -p PID # Processos usando arquivo sudo lsof /var/log/syslog # Processos usando porta sudo lsof -i :80 # Arquivos abertos por usuário sudo lsof -u usuario # Conexões de rede sudo lsof -i Backup e Recuperação Backup do Sistema 1 2 3 4 5 6 7 8 9 10 11 12 13 # Backup completo (excluindo temporários) sudo tar czf backup_sistema_$(date +%Y%m%d).tar.gz \ --exclude=/proc \ --exclude=/sys \ --exclude=/dev \ --exclude=/tmp \ --exclude=/run \ --exclude=/mnt \ --exclude=/media \ / # Restaurar sudo tar xzf backup_sistema.tar.gz -C /mnt/restauracao/ Timeshift - Snapshots 1 2 3 4 5 6 7 8 9 10 11 # Instalar sudo apt install timeshift # Criar snapshot sudo timeshift --create --comments "Antes da atualização" # Listar snapshots sudo timeshift --list # Restaurar sudo timeshift --restore rsnapshot - Backups Incrementais 1 2 3 4 5 6 7 8 # Instalar sudo apt install rsnapshot # Configurar sudo vim /etc/rsnapshot.conf # Executar backup sudo rsnapshot daily Performance Tuning Swappiness 1 2 3 4 5 6 7 8 # Ver valor atual (0-100, padrão 60) cat /proc/sys/vm/swappiness # Definir temporário sudo sysctl vm.swappiness=10 # Permanente echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf I/O Scheduler 1 2 3 4 5 6 7 8 # Ver scheduler atual cat /sys/block/sda/queue/scheduler # Mudar (temporário) echo deadline | sudo tee /sys/block/sda/queue/scheduler # Permanente (udev rule) sudo vim /etc/udev/rules.d/60-scheduler.rules A C T I O N = = " a d d | c h a n g e " , K E R N E L = = " s d [ a - z ] " , A T T R { q u e u e / s c h e d u l e r } = " d e a d l i n e " Limites de Recursos 1 2 3 4 5 6 7 8 # Ver limites ulimit -a # Aumentar arquivos abertos ulimit -n 65536 # Permanente sudo vim /etc/security/limits.conf s h o a f r t d n n o o f f i i l l e e 6 6 5 5 5 5 3 3 6 6 Comandos de Referência Rápida 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 # Processos ps aux top htop kill PID # Serviços systemctl status servico sudo systemctl restart servico # Disco df -h du -sh /var lsblk # Performance vmstat 2 iostat -x free -h uptime # Logs journalctl -u servico dmesg | tail tail -f /var/log/syslog # Rede ip addr show ss -tlnp ping google.com Recursos Adicionais Documentação 1 2 3 man comando info comando comando --help Comunidades Stack Overflow Unix & Linux Stack Exchange Reddit r/linuxadmin Linux Questions Livros Recomendados “The Linux Command Line” - William Shotts “Linux System Administration” - Tom Adelstein “UNIX and Linux System Administration Handbook” - Evi Nemeth Certificações LPIC-1: Linux Professional Institute Certification RHCSA: Red Hat Certified System Administrator Linux Foundation Certified System Administrator Conclusão do Curso Parabéns por completar o curso de Linux! Você agora tem conhecimento sobre: ...

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

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: ...

March 9, 2024 · 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 ...

May 9, 2023 · 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: ...

May 3, 2023 · Fabrício Machado

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: ...

May 1, 2023 · Fabrício Machado