Qui 23.04.2026
FreeBSD Cheat Page
FreeBSD Cheat Page for Commands
MODELO TCP/IP — CAMADAS, PROTOCOLOS E UNIDADES DE DADOS
========================================================
CAMADA PROTOCOLOS COMUNS UNIDADE O QUE CONTEM
---------------------------------------------------------------------------
APLICACAO HTTP, HTTPS, FTP MENSAGEM dados do usuario
SSH, TELNET, SMTP "GET /index.html"
DNS, SNMP, NTP comandos, respostas
IMAP, POP3, SIP
TRANSPORTE TCP, UDP SEGMENTO porta origem
SCTP (TCP) porta destino
DATAGRAMA numero de sequencia
(UDP) checksum
dados da aplicacao
REDE/INTERNET IP (v4, v6) PACOTE IP origem
ICMP (ping, traceroute) (IP) IP destino
IGMP (multicast) TTL
IPsec protocolo (TCP=6)
dados do segmento
ENLACE/ Ethernet FRAME MAC origem
DATALINK WiFi (802.11) (Ethernet) MAC destino
PPP, VLAN (802.1q) ethertype (IPv4=0x0800)
ARP * dados do pacote IP
FCS (checksum)
FISICA Cabo par trancado BITS sinais eletricos
Fibra optica (fisico) sinais de luz
Sinal radio WiFi frequencias de radio
Coaxial
* ARP opera entre enlace e rede — traduz IP para MAC
===========================================================================
RELACAO ENTRE MAC, IP, ARP E FRAMES
===========================================================================
MAC = endereco fisico da placa de rede. nao muda. gravado em hardware.
formato: 00:1b:b9:c2:82:8c (6 bytes, hexadecimal)
escopo: so vale dentro do segmento local (nao roteia)
IP = endereco logico do host na rede. pode mudar (DHCP).
formato: 192.168.0.10 (IPv4, 4 bytes)
2001:db8::1 (IPv6, 16 bytes)
escopo: global, roteia pela internet inteira
ARP = protocolo que traduz IP em MAC dentro da rede local
pergunta: "quem tem 192.168.0.1? me diga seu MAC"
resposta: "sou eu, MAC 54:47:cc:c9:3f:92"
cache: tabela temporaria, expira (FreeBSD: ~20min)
comando: arp -a
FRAME = envelope da camada enlace. contem o pacote IP dentro.
descartado e recriado a cada salto de roteador.
PACOTE = envelope da camada rede. contem o segmento TCP dentro.
viaja inalterado de ponta a ponta.
SEGMENTO = envelope da camada transporte. contem os dados.
TCP garante entrega e ordem. UDP nao garante.
===========================================================================
COMO UM PACOTE HTTP VIAJA: FreeBSD → Google
===========================================================================
APLICACAO cria: "GET /index.html HTTP/1.1"
TRANSPORTE adiciona: porta origem 54321, porta destino 80
REDE adiciona: IP src 192.168.0.10, IP dst 142.250.79.46
ENLACE adiciona: MAC src 00:1b:b9:c2:82:8c
MAC dst 54:47:cc:c9:3f:92 (MAC do gateway)
[FreeBSD] --------frame 1--------> [roteador] ------frame 2------> [Google]
MAC:seu→gateway MAC:gateway→proximo_salto
IP: 192.168.0.10→142.250.79.46 IP: inalterado o tempo todo
TCP: porta 54321→80 TCP: inalterado o tempo todo
a cada roteador:
- frame Ethernet e DESCARTADO
- pacote IP e LIDO para decidir proximo salto
- frame NOVO e criado com MACs do proximo trecho
- pacote IP segue INTACTO ate o destino
===========================================================================
ENCAPSULAMENTO — BONECA RUSSA
===========================================================================
+------------------------------------------------+
| FRAME ETHERNET |
| MAC src | MAC dst | ethertype |
| +------------------------------------------+ |
| | PACOTE IP | |
| | IP src | IP dst | TTL | protocolo | |
| | +------------------------------------+ | |
| | | SEGMENTO TCP | | |
| | | porta src | porta dst | seq | ck | | |
| | | +------------------------------+ | | |
| | | | DADOS DA APLICACAO | | | |
| | | | "GET /index.html HTTP/1.1" | | | |
| | | +------------------------------+ | | |
| | +------------------------------------+ | |
| +------------------------------------------+ |
+------------------------------------------------+
| FCS (checksum do frame) |
+------------------------------------------------+
===========================================================================
ICMP — O PROTOCOLO DO PING E TRACEROUTE
===========================================================================
ICMP vive na camada de rede, junto com IP.
nao tem portas. usado para diagnostico e controle.
ping: envia ICMP Echo Request, espera Echo Reply
traceroute: envia pacotes com TTL crescente (1,2,3...)
cada roteador decrementa TTL
quando TTL=0 o roteador descarta e manda ICMP
Time Exceeded de volta — revelando seu IP
TTL (Time To Live): contador de saltos. evita loops infinitos.
cada roteador subtrai 1. chegou a 0: pacote descartado.
valor tipico de saida: 64 (Linux/BSD) ou 128 (Windows)
===========================================================================
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ENDERECAMENTO IP — IPV4 E CIDR
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
################
ESTRUTURA DO ENDERECO IPV4
################
32 bits divididos em 4 octetos de 8 bits cada
formato: xxx.xxx.xxx.xxx
exemplo: 203.0.113.100
cada octeto: 2^8 = 256 valores possiveis (0 a 255)
total de enderecos IPv4: 2^32 = 4.294.967.296 (~4,3 bilhoes)
################
CIDR — CLASSLESS INTER-DOMAIN ROUTING
################
notacao: endereco/prefixo
exemplo: 203.0.113.100/26
o numero apos a barra indica quantos bits sao fixos (parte de rede)
a barra nao significa divisao — e apenas um separador de notacao
surgiu nos anos 90 para substituir a notacao verbosa de mascara:
notacao antiga: 203.0.113.100 255.255.255.192
notacao CIDR: 203.0.113.100/26 (equivalente)
################
CALCULO DE HOSTS E MASCARA
################
bits livres = 32 - prefixo
hosts = 2 ^ bits livres
mascara = 256 - hosts (no ultimo octeto)
exemplo /26:
bits fixos: 26
bits livres: 32 - 26 = 6
hosts: 2^6 = 64
ultimo octeto em binario: 11000000 = 128+64 = 192
mascara: 255.255.255.192
exemplo /24:
bits fixos: 24 (tres octetos completos reservados a rede)
bits livres: 32 - 24 = 8
hosts: 2^8 = 256 (o octeto inteiro e seu)
mascara: 255.255.255.0
################
MASCARA EM BINARIO
################
/24 → 11111111.11111111.11111111.00000000 → 255.255.255.0
/25 → 11111111.11111111.11111111.10000000 → 255.255.255.128
/26 → 11111111.11111111.11111111.11000000 → 255.255.255.192
/27 → 11111111.11111111.11111111.11100000 → 255.255.255.224
/28 → 11111111.11111111.11111111.11110000 → 255.255.255.240
/29 → 11111111.11111111.11111111.11111000 → 255.255.255.248
/30 → 11111111.11111111.11111111.11111100 → 255.255.255.252
/31 → 11111111.11111111.11111111.11111110 → 255.255.255.254
/32 → 11111111.11111111.11111111.11111111 → 255.255.255.255
################
TABELA DE PREFIXOS
################
prefixo bits livres hosts blocos mascara
------- ----------- ----- ------ ---------------
/24 8 256 1 255.255.255.0
/25 7 128 2 255.255.255.128
/26 6 64 4 255.255.255.192
/27 5 32 8 255.255.255.224
/28 4 16 16 255.255.255.240
/29 3 8 32 255.255.255.248
/30 2 4 64 255.255.255.252
/31 1 2 128 255.255.255.254
/32 0 1 256 255.255.255.255
################
BLOCOS DO ULTIMO OCTETO — EXEMPLO /26
################
/26 divide o octeto em 4 blocos de 64 enderecos:
0 – 63 → rede 203.0.113.0/26
64 – 127 → rede 203.0.113.64/26 ← .100 cai aqui
128 – 191 → rede 203.0.113.128/26
192 – 255 → rede 203.0.113.192/26
para achar o bloco de um IP:
divida o ultimo octeto pelo tamanho do bloco, arredonde para baixo
exemplo: 100 / 64 = 1 (resto 36) → bloco comeca em 1x64 = 64
################
ENDERECOS RESERVADOS EM CADA BLOCO
################
primeiro endereco = endereco da rede (nao atribuivel a hosts)
ultimo endereco = broadcast (nao atribuivel a hosts)
hosts uteis = total - 2
/30 → 4 enderecos, 2 uteis (link ponto-a-ponto)
/29 → 8 enderecos, 6 uteis
/26 → 64 enderecos, 62 uteis
excecao /31: RFC 3021 permite uso em links ponto-a-ponto
excecao /32: host route — representa uma unica maquina na tabela de rotas
################
OBSERVACOES
################
- o sistema binario usa base 2 (digitos 0 e 1)
n bits = 2^n combinacoes possiveis
- IPv4 esgotado desde 2011 (IANA) / 2019 (RIPE Europa)
- IPv6 usa 128 bits: 2^128 = 340 undecilhoes de enderecos
- NAT permite multiplos hosts compartilharem um IP publico
e o principal motivo do IPv4 ainda estar em uso
- CGNAT: NAT feito pela operadora em escala — seu roteador
recebe um IP privado em vez de um IP publico
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
COMANDOS DE REDE - DIAGNOSTICO E DISCOVERY
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
################
INTERFACES E ENDERECOS
################
ifconfig # mostra todas as interfaces e IPs
ifconfig em0 # mostra interface especifica
ifconfig | grep inet # filtra so enderecos IPv4
ifconfig | grep inet6 # filtra so enderecos IPv6
prefixos de interfaces
ifconfig interface-name inet IP-address netmask
ifconfig em0 inet 203.0.113.250 255.255.255.0
ifconfig em0 inet 203.0.113.250/24
ifconfig em0 inet6 2001:db8::bad:c0de:cafe/64
:: sao zeros seguidos mas so pode usar 1 vez
################
CONECTIVIDADE
################
ping -c 4 8.8.8.8 # ping com 4 pacotes
ping -c 1 -W 1 192.168.0.1 # ping rapido com timeout de 1s
traceroute 8.8.8.8 # rota ate o destino
traceroute6 ipv6.google.com # traceroute via IPv6
################
DNS
################
host google.com # resolucao DNS simples
host 8.8.8.8 # DNS reverso (IP -> nome)
nslookup google.com # consulta DNS interativa
drill google.com # alternativa ao dig no FreeBSD
drill MX google.com # consulta registro especifico
################
PORTAS E SERVICOS LOCAIS
################
sockstat -l # todas as portas abertas e processos
sockstat -l -p 80 # filtra porta especifica
netstat -an # todas conexoes e portas
netstat -an | grep LISTEN # so portas escutando
netstat -rn # tabela de rotas
netstat -w 5 -d # displays how many packets and bytes
your system is processing
################
TABELA ARP- ARP (Address Resolution Protocol) é o mecanismo que traduz IP para MAC e a tabela é um cache temporário dessa tradução.
IPv6 uses Neighbor Discovery Protocol (NDP) to map IPv6 addresses
to MAC addresses. IPv6-only hosts will not show up in your ARP table,
and IPv4-only hosts will not appear in the NDP table
################
(Criar tabela via Ping ou Nmap Antes)
arp -a # todos os MACs conhecidos na rede
arp -d 192.168.0.112 # remove entrada especifica do cache
################
NMAP - DISCOVERY
################
nmap -sn -PE --send-ip 192.168.0.0/24 # acha todos os hosts (ping)
nmap -sn 192.168.0.0/24 # acha hosts via ARP
nmap -Pn -F 192.168.0.1 # scan rapido sem ping
################
NMAP - PORT SCAN
################
nmap 192.168.0.1 # portas comuns
nmap -p- 192.168.0.1 # todas as 65535 portas
nmap -F 192.168.0.1 # 100 portas mais comuns
nmap -p 80,443,22,21 192.168.0.1 # portas especificas
nmap -Pn -p 8082,8083,8084,8085 192.168.0.112-115 # range de IPs
################
NMAP - IDENTIFICACAO
################
nmap -sV 192.168.0.1 # versao dos servicos
nmap -O 192.168.0.1 # sistema operacional
nmap -A 192.168.0.1 # tudo: OS, versao, scripts
nmap -sV -oN resultado.txt 192.168.0.0/24 # salva resultado em arquivo
################
IP PUBLICO
################
curl ifconfig.me # mostra seu IP publico real
curl -6 ifconfig.me # IP publico via IPv6
################
FUNCOES NO ~/.shrc
################
# varre subnet e lista hosts com MAC e fabricante
netscan() {
SUBNET=${1:-192.168.0.0/24}
nmap -sn -PE --send-ip --host-timeout 10s $SUBNET
}
alias www='cd /usr/local/www/apache24/data' #Alias para cd no diretorio web do Apache
alias ll='CLICOLOR_FORCE=1 /bin/ls -AGlhiF | less -FR' #Alias para ls com cores e scroll
alias la='CLICOLOR_FORCE=1 /bin/ls -AGlahiF | less -FR' #O mesmo mostrando ocultos
trap 'fc -W' EXIT HUP TERM #Salva comandos do shell sh fechando abruptamente ou usar Ctrl+D
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ FIREWALL @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Comandos do dia a dia
pfctl -sr Ver regras ativas
pfctl -ss Ver conexões abertas (states)
pfctl -si Status e estatísticas gerais
pfctl -f /etc/pf.conf Recarregar regras sem reiniciar
pfctl -nf /etc/pf.conf Testar sintaxe sem aplicar
pfctl -d ⚠ Desativar PF imediatamente (emergência)
Gerenciar IPs bloqueados (brute force)
pfctl -t bruteforce -T show Ver IPs bloqueados
pfctl -t bruteforce -T delete 1.2.3.4 Desbloquear um IP específico
pfctl -t bruteforce -T flush Limpar toda a tabela
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ SHELL SH — ATALHOS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Ctrl+A vai para o inicio da linha
Ctrl+C interrompe o processo
Ctrl+D EOF — encerra entrada ou sessao
Ctrl+E vai para o fim da linha
Ctrl+G bell — bipe do terminal (ASCII 7)
Ctrl+H backspace (ASCII 8)
Ctrl+I tab (ASCII 9)
Ctrl+J linefeed
Ctrl+L limpa a tela (igual a clear)
Ctrl+R busca no historico — digita parte do comando
Ctrl+U apaga a linha inteira
Ctrl+W apaga a palavra anterior
Ctrl+Z suspende o processo atual
Alt+. repete o ultimo argumento do comando anterior
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ NAVEGACAO @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
cd / vai para a raiz do sistema
cd ou cd ~ vai para o home do usuario
cd /caminho caminho absoluto
cd .. sobe um nivel
cd ../.. sobe dois niveis
cd - volta ao diretorio anterior (muito util!)
pwd mostra o diretorio atual
#### Tab — autocompletar
#### ctrl + seta pro lado pula palavra
cd /usr/lo<Tab> completa para /usr/local/
cd /usr/local/w<Tab> completa para /usr/local/www/
#### Historico
history lista os ultimos comandos digitados
!! repete o ultimo comando
!ls repete o ultimo comando que comecou com "ls"
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ COMANDOS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#### cat
Le e exibe o conteudo de um arquivo.
cat /var/log/messages mostra o arquivo inteiro
cat arquivo.txt | grep "erro" filtra linhas (pode usar grep direto no arquivo)
#### chfn
Edita informacoes do usuario exibidas pelo finger.
chfn celso
~/.plan e ~/.project tambem aparecem no finger
#### cp / mv
Copia ou move arquivos.
cp arquivo.txt ../.. copia dois niveis acima
cp arquivo.txt ../outra/ copia para pasta irma
mv arquivo .. move para o diretorio pai
mv arquivo arquivo2 renomeia arquivo ou pasta
#### crontab
Agenda tarefas recorrentes. NAO editar /var/cron/tabs/root diretamente.
crontab -l lista as tarefas
crontab -e edita
Sintaxe: minuto hora dia mes dia_semana comando
O * * * final significa "todo dia, todo mes, todo dia da semana".
0 */8 * * * /script.sh a cada 8h (0h, 8h, 16h)
0 */12 * * * /script.sh 2x por dia (0h e 12h)
0 */6 * * * /script.sh 4x por dia (0h, 6h, 12h, 18h)
0 3 * * 1 /script.sh toda segunda-feira as 3h
Dias da semana: 0=dom 1=seg 2=ter 3=qua 4=qui 5=sex 6=sab
#### dmesg
Exibe mensagens do kernel geradas no boot.
dmesg | less navega com espaco/q
dmesg > /tmp/boot.log salva em arquivo
#### export
Define variavel de ambiente para a sessao.
export EDITOR=ee define ee como editor padrao (em vez do vi)
Para persistir, adicionar ao ~/.profile:
EDITOR=ee; export EDITOR
#### find
Busca arquivos por nome, inode, etc.
find / -inum 5 2>/dev/null acha arquivo pelo numero de inode
find /home -inum 8138 -delete apaga pelo inode (util para nomes corrompidos)
#### freebsd-update
Atualiza o sistema base do FreeBSD.
freebsd-update fetch baixa as atualizacoes
freebsd-update install instala
reboot
freebsd-version confirma a versao apos reboot
Versao atual: 14.3-RELEASE-p10
#### fsck
Verifica e repara o filesystem. Usar em Single User Mode.
No boot: escolher Single User, pressionar Enter no prompt do shell
fsck -fy / verifica e corrige automaticamente
#### grep
Filtra linhas de texto por padrao.
grep "erro" /var/log/messages busca em arquivo
grep -i "erro" arquivo.txt ignora maiusculas/minusculas
grep -r "palavra" /etc/ busca recursiva em diretorio
grep -n "palavra" arquivo.txt mostra numero da linha
grep -v "palavra" arquivo.txt mostra o que NAO tem a palavra
grep -c "palavra" arquivo.txt conta quantas linhas encontrou
#### htpasswd
Cria ou atualiza senha do HTTP Basic Auth do Apache.
htpasswd -B -c /usr/local/etc/apache24/.htpasswd Protegido
-B = bcrypt (mais seguro) -c = cria arquivo novo
#### locate
The locate program searches a database for all pathnames which
match the specified pattern.
locate -i ignora case
#### ls
Lista arquivos e diretorios.
ls -la listagem detalhada com arquivos ocultos
ls -li inclui numero de inode (util com find -inum)
ls .. lista o diretorio pai
ll list customizado
la list customizado mostra ocultos
#### mail
Le e-mails do sistema.
mail abre caixa de entrada (/var/mail/root)
mail -f le /root/mbox (e-mails ja lidos)
Dentro do mail:
h lista headers
z / z- avanca/volta pagina de headers
h5 vai direto ao header 5
U5 marca mensagem 5 como nao lida
#### pkg
Gerenciador de pacotes do FreeBSD.
pkg update atualiza indice de pacotes
pkg upgrade atualiza pacotes instalados
pkg info dynamic_motd info de pacote ja instalado
pkg search dynamic_motd busca no repositorio remoto
#### ps
Lista processos em execucao.
ps aux | grep apache verifica se o Apache esta rodando
#### smartctl
Verifica saude do disco (SMART).
smartctl -A /dev/ada0 | grep UDMA_CRC
Monitora erros CRC — indica problema de cabo ou energia. Contador atual: 540.
#### sockstat
Mostra todas as portas abertas e conexoes ativas.
sockstat -4 -l lista portas IPv4 em escuta
#### su
Muda para root no ambiente completo dele.
su -
#### tail
Monitora o final de um arquivo em tempo real.
tail -f -n 20 /var/log/messages ultimas 20 linhas, atualiza ao vivo
tail -f /var/log/messages | grep "error" filtra so linhas com "error"
#### talk / write
Comunicacao entre usuarios logados no sistema.
talk root chat interativo (requer que o outro aceite)
write root envia mensagem diretamente no prompt do outro
#### yes
Ocupa o processador gerando carga (teste de CPU).
yes > /dev/null imprime "y" infinitamente e descarta — usa 100% de um core
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ PIPES @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
O pipe | passa a saida de um comando como entrada do proximo.
grep "error" /var/log/messages busca direta (sem cat)
cat arquivo | grep "erro" equivalente, mas desnecessario aqui
tail -f /var/log/messages | grep "error" monitora log ao vivo filtrando por "error"
ps aux | grep apache verifica se o Apache esta rodando
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ FIGLET @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
figlet -c -f doom "FREEBSD" centralizado, fonte doom
Fontes recomendadas: big, doom, slant, small, smslant, standard
Loop para testar todas as fontes instaladas:
for f in /usr/local/share/figlet/*.flf; do
echo "=== $(basename $f .flf) ==="
figlet -f "$f" "FREEBSD"
done | less
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ TAREFAS ESPECIAIS @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#### Apagar arquivo/diretorio por inode (nome corrompido)
ls -li /usr/local/www/apache24/data/home descobre o inode
find /usr/local/www/apache24/data/home -inum 8138 -delete
#### Consertar filesystem (Single User Mode)
No boot: escolher Single User, pressionar Enter no prompt do shell
fsck -fy /
#### Definir editor padrao permanentemente
ee ~/.profile
Adicionar a linha:
EDITOR=ee; export EDITOR
#### Monitorar erros de disco
smartctl -A /dev/ada0 | grep UDMA_CRC