📁 Navegação e Filesystem
| Comando |
O que faz |
| ls -la |
Lista com permissões, tamanho, dono (inclui ocultos) |
| ls -lh |
Lista com tamanhos legíveis (K, M, G) |
| ls -lt |
Lista ordenada por data de modificação |
| cd ~ |
Vai para o diretório home |
| cd - |
Volta para o diretório anterior |
| pwd |
Mostra o diretório atual (print working directory) |
| mkdir -p a/b/c |
Cria diretório e todos os pais necessários |
| rm -rf dir/ |
Remove diretório e conteúdo recursivamente (sem confirmação)
|
| cp -r orig/ dest/ |
Copia diretório recursivamente |
| mv arq novo_nome |
Move ou renomeia arquivo/diretório |
| find / -name "*.log" |
Busca arquivos por nome recursivamente |
| find . -type f -size +50M |
Arquivos maiores que 50MB no diretório atual |
| find . -mtime -7 |
Arquivos modificados nos últimos 7 dias |
| find . -user joao |
Arquivos pertencentes ao usuário joao |
| stat arquivo.txt |
Mostra inode, permissões, timestamps, tamanho |
| file arquivo |
Detecta tipo real do arquivo (ignora extensão) |
| du -sh pasta/ |
Uso de disco da pasta (human-readable) |
| du -sh /* 2>/dev/null | sort -rh |
Maiores consumidores na raiz |
| df -h |
Uso de disco por partição montada |
| ln -s /orig /link |
Cria symbolic link |
| readlink -f link |
Resolve caminho real de um symlink |
| lsof | grep arquivo |
Verifica se arquivo está em uso por algum processo |
Diretórios importantes
| Diretório |
Conteúdo |
| /etc |
Arquivos de configuração do sistema |
| /var/log |
Logs do sistema e dos serviços |
| /tmp |
Arquivos temporários (limpos no boot ou periodicamente) |
| /proc |
Sistema virtual: informações de processos e kernel |
| /dev |
Arquivos de dispositivo (discos, terminais, null, zero) |
| /usr/bin |
Executáveis dos programas instalados |
| /usr/lib |
Bibliotecas compartilhadas (.so) |
| /home/user |
Diretório home dos usuários |
| /root |
Home do usuário root |
| /opt |
Software instalado manualmente (não pelo gerenciador) |
| /mnt, /media |
Pontos de montagem para dispositivos externos |
| /dev/null |
Buraco negro — descarta qualquer dado escrito |
| /dev/zero |
Fonte infinita de bytes zero |
🔐 Permissões
| Comando |
O que faz |
| chmod 755 arq |
rwxr-xr-x — executável público |
| chmod 644 arq |
rw-r--r-- — arquivo padrão (texto, config) |
| chmod 700 arq |
rwx------ — privado do dono |
| chmod 600 arq |
rw------- — chave SSH privada, etc |
| chmod 777 arq |
rwxrwxrwx — todos podem tudo (evite!) |
| chmod u+x arq |
Adiciona execute para o dono |
| chmod g-w arq |
Remove escrita do grupo |
| chmod o= arq |
Remove todas as permissões de others |
| chmod a+r arq |
Adiciona leitura para todos (ugo) |
| chmod -R 755 dir/ |
Aplica recursivamente em todo o diretório |
| chown joao arq |
Muda o dono para joao |
| chown joao:devs arq |
Muda dono e grupo |
| chown -R joao:devs dir/ |
Muda dono e grupo recursivamente |
| chgrp devs arq |
Muda apenas o grupo |
| chmod u+s arq |
Ativa SUID (executa com permissões do dono) |
| chmod g+s dir/ |
Ativa SGID no diretório (herança de grupo) |
| chmod +t dir/ |
Ativa sticky bit (só dono deleta) |
| umask |
Mostra máscara de permissão padrão |
| umask 022 |
Define umask: arquivos→644, dirs→755 |
Tabela octal de permissões
| Octal |
Binário |
Permissão |
| 0 |
000 |
--- |
| 1 |
001 |
--x |
| 2 |
010 |
-w- |
| 3 |
011 |
-wx |
| 4 |
100 |
r-- |
| 5 |
101 |
r-x |
| 6 |
110 |
rw- |
| 7 |
111 |
rwx |
⚙️ Processos e Jobs
| Comando |
O que faz |
| ps aux |
Lista todos os processos com CPU e memória |
| ps aux --sort=-%cpu | head |
Top processos por CPU |
| ps aux --sort=-%mem | head |
Top processos por memória |
| top |
Monitor interativo de processos (q=sair, P=sort CPU, M=sort
mem)
|
| htop |
Monitor colorido (mais amigável que top) |
| pstree -p |
Árvore de processos com PIDs |
| kill PID |
Envia SIGTERM (15) — pede encerramento limpo |
| kill -9 PID |
SIGKILL — mata imediatamente (último recurso) |
| kill -l |
Lista todos os sinais disponíveis |
| killall nginx |
Mata todos os processos com esse nome |
| pkill -f "script.py" |
Mata processos cujo comando completo contém o padrão |
| jobs |
Lista jobs do shell atual |
| comando & |
Inicia em background |
| Ctrl+Z |
Para (pausa) processo em foreground |
| bg %1 |
Manda job 1 para background |
| fg %1 |
Traz job 1 para foreground |
| nohup cmd > log & |
Roda sem ser morto quando terminal fechar |
| disown %1 |
Remove job da lista do shell |
| cat /proc/PID/status |
Status detalhado do processo |
| ls /proc/PID/fd/ |
Arquivos abertos pelo processo |
Sinais principais
| Sinal |
Número |
Significado |
| SIGTERM |
15 |
Pedido de encerramento (padrão de kill) — pode ser capturado
|
| SIGKILL |
9 |
Encerramento forçado — NÃO pode ser capturado ou ignorado
|
| SIGHUP |
1 |
Terminal fechou / recarregar configuração (em daemons) |
| SIGINT |
2 |
Ctrl+C — interrupção do teclado |
| SIGQUIT |
3 |
Ctrl+\ — encerra com core dump |
| SIGSTOP |
19 |
Pausa processo — NÃO pode ser capturado |
| SIGTSTP |
20 |
Ctrl+Z — pausa (pode ser capturado) |
| SIGCONT |
18 |
Continua processo parado |
| SIGUSR1/2 |
10/12 |
Sinais definidos pelo usuário (depende do programa) |
>_ Shell e Linha de Comando
| Comando / Símbolo |
O que faz |
| cmd1 | cmd2 |
Conecta stdout de cmd1 ao stdin de cmd2 |
| cmd > arq |
Redireciona stdout para arquivo (sobrescreve) |
| cmd >> arq |
Redireciona stdout para arquivo (append) |
| cmd 2> arq |
Redireciona stderr para arquivo |
| cmd 2>&1 |
Redireciona stderr para onde stdout está |
| cmd &> arq |
Redireciona stdout e stderr para arquivo |
| cmd > /dev/null 2>&1 |
Silencia completamente stdout e stderr |
| cmd < arq |
Redireciona arquivo para stdin do comando |
| echo $VAR |
Exibe valor da variável |
| export VAR=val |
Define variável de ambiente (herdada por filhos) |
| unset VAR |
Remove variável do ambiente |
| history |
Histórico de comandos |
| !! |
Re-executa o último comando |
| !42 |
Re-executa o comando número 42 do histórico |
| Ctrl+R |
Busca reversa no histórico |
| alias ll='ls -la' |
Cria atalho de comando |
| which python3 |
Mostra caminho do executável no $PATH |
| type comando |
Diz se é builtin, alias ou executável |
| source ~/.bashrc |
Recarrega configuração do bash sem abrir novo terminal |
Variáveis de ambiente importantes
| Variável |
Conteúdo |
| $PATH |
Diretórios onde o shell busca executáveis |
| $HOME |
Diretório home do usuário (~) |
| $USER |
Nome do usuário atual |
| $SHELL |
Caminho do shell atual |
| $PWD |
Diretório atual |
| $EDITOR |
Editor padrão (vim, nano, etc) |
| $? |
Exit code do último comando (0=sucesso) |
| $$ |
PID do shell atual |
| $! |
PID do último processo em background |
Ferramentas de texto
| Comando |
O que faz |
| grep padrão arq |
Busca linhas que contêm o padrão |
| grep -r padrão dir/ |
Busca recursiva em diretório |
| grep -i padrão |
Case-insensitive |
| grep -v padrão |
Inverte — mostra linhas que NÃO contêm |
| grep -n padrão |
Mostra número de linha |
| awk '{print $2}' arq |
Imprime segundo campo (separado por espaço) |
| awk -F',' '{print $1}' arq |
Primeiro campo separado por vírgula |
| sed 's/old/new/g' arq |
Substitui todas as ocorrências de old por new |
| sed -i 's/old/new/g' arq |
Edita in-place (modifica o arquivo) |
| cut -d',' -f2 |
Extrai segundo campo de CSV |
| sort arq |
Ordena linhas alfabeticamente |
| sort -n arq |
Ordena numericamente |
| sort -rn arq |
Ordena numericamente decrescente |
| uniq arq |
Remove linhas duplicadas consecutivas |
| uniq -c arq |
Conta ocorrências de cada linha única |
| wc -l arq |
Conta linhas |
| wc -w arq |
Conta palavras |
| head -20 arq |
Mostra as 20 primeiras linhas |
| tail -20 arq |
Mostra as 20 últimas linhas |
| tail -f arq |
Acompanha arquivo em tempo real |
| cat arq1 arq2 |
Concatena e imprime arquivos |
| tee arq |
Lê stdin, escreve em stdout E em arquivo |
| xargs |
Constrói comandos a partir do stdin |
| tr 'a-z' 'A-Z' |
Translação de caracteres (minúsculo → maiúsculo) |
👤 Usuários e Grupos
| Comando |
O que faz |
| whoami |
Mostra o usuário atual |
| id |
UID, GID e grupos do usuário atual |
| id joao |
UID, GID e grupos do usuário joao |
| groups |
Lista grupos do usuário atual |
| sudo comando |
Executa comando como root (1 comando) |
| sudo -i |
Shell root interativo |
| sudo -u joao cmd |
Executa como outro usuário |
| sudo !! |
Re-executa último comando como root |
| su - joao |
Abre shell como joao (login completo) |
| useradd -m -s /bin/bash joao |
Cria usuário com home e bash |
| passwd joao |
Define/altera senha do usuário |
| usermod -aG docker joao |
Adiciona joao ao grupo docker (mantém outros) |
| usermod -s /bin/bash joao |
Muda o shell do usuário |
| userdel -r joao |
Deleta usuário e seu diretório home |
| groupadd devs |
Cria novo grupo |
| groupdel devs |
Deleta grupo |
| last |
Histórico de logins |
| lastb |
Tentativas de login falhas |
| who |
Quem está logado agora |
| w |
Quem está logado e o que está fazendo |
📦 Gerenciadores de Pacotes
| APT (Debian/Ubuntu) |
DNF (Fedora/RHEL) |
Pacman (Arch) |
| apt update |
dnf check-update |
pacman -Sy |
| apt upgrade |
dnf upgrade |
pacman -Syu |
| apt install pacote |
dnf install pacote |
pacman -S pacote |
| apt remove pacote |
dnf remove pacote |
pacman -R pacote |
| apt purge pacote |
dnf remove + manual |
pacman -Rns pacote |
| apt autoremove |
dnf autoremove |
pacman -Qdtq | pacman -Rs - |
| apt search texto |
dnf search texto |
pacman -Ss texto |
| apt show pacote |
dnf info pacote |
pacman -Si pacote |
| dpkg -l | grep nginx |
rpm -qa | grep nginx |
pacman -Qs nginx |
| dpkg -L nginx |
rpm -ql nginx |
pacman -Ql nginx |
| dpkg -S /usr/bin/python3 |
rpm -qf /usr/bin/python3 |
pacman -Qo /usr/bin/python3 |
🌐 Rede
| Comando |
O que faz |
| ip addr show |
Lista interfaces e endereços IP |
| ip addr show eth0 |
Interface específica |
| ip route show |
Tabela de roteamento |
| ip route get 8.8.8.8 |
Qual rota usaria para este IP |
| ss -tulnp |
Portas TCP/UDP abertas com processo (recomendado) |
| netstat -tulnp |
Equivalente (depreciado, mas comum) |
| lsof -i :80 |
Qual processo usa a porta 80 |
| ping -c4 google.com |
Testa conectividade (4 pacotes) |
| traceroute google.com |
Rastreia rota até destino |
| mtr google.com |
ping + traceroute contínuo |
| nslookup domain |
Consulta DNS simples |
| dig domain |
Consulta DNS detalhada |
| dig +short domain |
Apenas o IP |
| curl -I https://site |
Só os cabeçalhos HTTP |
| curl -v https://site |
Verbose — vê toda a transação |
| wget URL |
Baixa arquivo |
| ssh user@host |
Login SSH |
| ssh -p 2222 user@host |
SSH em porta não-padrão |
| ssh -L 8080:localhost:80 host |
Túnel SSH (port forward local) |
| scp arq user@host:/dest |
Copia arquivo via SSH |
| rsync -avz src/ user@host:/dest/ |
Sincroniza (somente diferenças) |
| ufw allow 22/tcp |
Abre porta 22 TCP no firewall |
| ufw status verbose |
Mostra regras do firewall |
| ufw deny from IP |
Bloqueia IP específico |
📜 Shell Scripting
| Elemento |
Significado / Exemplo |
| #!/bin/bash |
Shebang — define o interpretador |
| set -euo pipefail |
Sai em erros, erro em var indefinida, propaga erros em pipe
|
| VAR="valor" |
Define variável local |
| export VAR="valor" |
Define variável exportada para processos filhos |
| ${VAR:-padrão} |
Usa "padrão" se VAR não definida |
| ${#VAR} |
Comprimento da string |
| $(comando) |
Substituição de comando — captura output |
| $1, $2, ...$9 |
Argumentos posicionais do script |
| $@ |
Todos os argumentos (preserva espaços com aspas) |
| $# |
Número de argumentos |
| $? |
Exit code do último comando |
| if [[ -f arq ]]; then |
Condicional: arquivo existe |
| if [[ -d dir ]]; then |
Condicional: diretório existe |
| if [[ -z "$VAR" ]]; then |
Condicional: string vazia |
| if [[ $n -gt 5 ]]; then |
Condicional: n maior que 5 |
| for f in *.txt; do |
Loop sobre arquivos |
| for i in {1..10}; do |
Loop de 1 a 10 |
| while read -r linha; do |
Lê arquivo linha por linha |
| minha_func() { ... } |
Define função |
| local var="val" |
Variável com escopo local à função |
| trap 'cmd' ERR |
Executa cmd quando qualquer erro ocorre |
| trap 'cmd' EXIT |
Executa cmd quando o script termina |