Cheatsheet

← Voltar para página principal
Bash Cheatsheet

Guia completo de Bash para automação e administração de sistemas

💻 O que é Bash?

📖 Definição

Bash (Bourne Again Shell) é o shell mais popular em sistemas Unix/Linux. É uma interface de linha de comando poderosa que permite executar comandos, automatizar tarefas e gerenciar sistemas operacionais.

💪 Por que aprender?

• Interface de linha de comando
• Scripting e automação
• Compatibilidade com POSIX
• Extensível com plugins
• Padrão da maioria das distribuições Linux

🚀 O que você pode fazer?

• Automação de tarefas
• Administração de sistemas
• Desenvolvimento de scripts
• Processamento de dados
• DevOps e CI/CD

💡 Onde você vai usar:
🖥️ Terminal
Linux, macOS, WSL
🔧 Scripts
Automação, Deploy
DevOps
CI/CD, Docker
🤖 Modern
Cloud, Containers
Filtro ativo:Todos
Total: 15 categoriasBásico: 4Intermediário: 5Avançado: 6

🟢 Navegação & Sistema

Use quando: Começando, setup inicial, navegação básica

📋Onde estou?

Básico
pwd

# Print Working Directory

Básico
whoami

# Mostra usuário atual

Básico
hostname

# Nome do servidor

Básico
uname -a

# Info do sistema

📋Listando arquivos

Básico
ls

# Lista arquivos

Básico
ls -l

# Lista detalhada

Básico
ls -la

# Inclui ocultos

Básico
ls -lh

# Tamanhos legíveis

Básico
ls -ltr

# Ordena por data

Básico
ls -R

# Lista recursivo

📋Navegando

Básico
cd pasta/

# Entra na pasta

Básico
cd ..

# Volta 1 nível

Básico
cd ~

# Vai para home

Básico
cd -

# Volta pasta anterior

Básico
cd /

# Vai para raiz

🟢 Arquivos & Diretórios

Use quando: Gerenciamento diário de arquivos e pastas

📋Criar

Básico
touch arquivo.txt

# Cria arquivo vazio

Básico
mkdir pasta

# Cria diretório

Básico
mkdir -p a/b/c

# Cria hierarquia

Básico
echo "texto" > file

# Cria com conteúdo

📋Copiar & Mover

Básico
cp origem destino

# Copia arquivo

Básico
cp -r pasta/ dest/

# Copia pasta

Básico
cp -v file dest

# Copia verbose

Básico
mv antigo novo

# Move/Renomeia

Básico
mv *.txt pasta/

# Move múltiplos

📋Deletar

Básico
rm arquivo

# Deleta arquivo

Básico
rm -i arquivo

# Pede confirmação

Básico
rm -f arquivo

# Força deletar

Básico
rm -rf pasta/

# Deleta pasta ⚠️

Básico
rmdir pasta

# Remove pasta vazia

📋Links

Básico
ln -s origem link

# Link simbólico

Básico
ln origem link

# Hard link

Básico
readlink link

# Mostra destino do link

Básico
find . -type l

# Lista links simbólicos

Básico
ls -l link

# Verifica tipo de link

🟢 Visualização & Busca

💡 💡 Ctrl+R busca histórico | !! repete último comando

📋Ver conteúdo

Básico
cat arquivo.txt

# Mostra tudo

Básico
cat -n file

# Com números

Básico
more arquivo

# Página por página

Básico
less arquivo

# Melhor navegação

Básico
head file

# Primeiras 10 linhas

Básico
head -n 20 file

# Primeiras 20

Básico
tail file

# Últimas 10 linhas

Básico
tail -f log.txt

# Monitora tempo real

Básico
tail -n 50 file

# Últimas 50

📋Buscar

Básico
grep "texto" file

# Busca string

Básico
grep -i "TEXT" file

# Case insensitive

Básico
grep -r "texto" ./

# Busca recursiva

Básico
grep -v "texto" file

# Inverte (não contém)

Básico
grep -n "texto" file

# Mostra números linha

Básico
find . -name "*.js"

# Busca arquivos

Básico
find . -type f

# Só arquivos

Básico
find . -type d

# Só diretórios

Básico
find . -name "*.txt" -size +1M

# Arquivos > 1MB

Básico
find . -mtime -7

# Modificados nos últimos 7 dias

Básico
find . -empty

# Arquivos vazios

Básico
find . -exec rm {} \;

# Remove arquivos encontrados

🟢 Ajuda & Histórico

Use quando: Precisa de ajuda, documentação ou referência

📋Documentação

Básico
man ls

# Manual do comando

Básico
ls --help

# Ajuda rápida

Básico
which python

# Onde está instalado

Básico
whereis python

# Todos caminhos

Básico
type python

# Tipo do comando

Básico
apropos search

# Busca comandos

📋Histórico

Básico
history

# Lista histórico

Básico
history 20

# Últimos 20

Básico
history | grep git

# Busca no histórico

Básico
!123

# Executa comando #123

Básico
!!

# Repete último

Básico
!git

# Último que começa com git

Básico
history -c

# Limpa histórico

Básico
history -d 123

# Remove linha específica

Básico
fc -l

# Lista últimos comandos

Básico
Ctrl+R

# Busca interativa no histórico

📋Informações

Básico
date

# Data e hora

Básico
cal

# Calendário

Básico
uptime

# Tempo ligado

Básico
w

# Quem está logado

Básico
who

# Usuários logados

Básico
last

# Últimos logins

Básico
id

# ID do usuário e grupos

Básico
groups

# Grupos do usuário

🟡 Processamento de Texto

Use quando: Processar logs, ETL, limpeza de dados

📋Pipes & Filtros

Intermediário
cat file | grep "error"

# Filtra linhas

Intermediário
cat file | sort

# Ordena

Intermediário
cat file | sort | uniq

# Remove duplicatas

Intermediário
cat file | wc -l

# Conta linhas

Intermediário
cat file | wc -w

# Conta palavras

Intermediário
cat file | wc -c

# Conta caracteres

📋Sed (Stream Editor)

Intermediário
sed 's/old/new/' file

# Substitui 1ª ocorrência

Intermediário
sed 's/old/new/g' file

# Substitui todas

Intermediário
sed -i 's/old/new/g' file

# Edita arquivo

Intermediário
sed '5d' file

# Deleta linha 5

Intermediário
sed -n '10,20p' file

# Imprime linhas 10-20

📋Awk (Pattern Processing)

Intermediário
awk '{print $1}' file

# Imprime coluna 1

Intermediário
awk '{print $1,$3}' file

# Colunas 1 e 3

Intermediário
awk '/error/ {print}' file

# Filtra por padrão

Intermediário
awk '{sum+=$1} END {print sum}'

# Soma coluna

📋Cut & Paste

Intermediário
cut -d',' -f1 file.csv

# Corta por delimitador

Intermediário
cut -c1-10 file

# Primeiros 10 chars

Intermediário
paste file1 file2

# Junta linhas de arquivos

Intermediário
join file1 file2

# Junta por campo comum

Intermediário
tr 'a-z' 'A-Z' < file

# Converte para maiúsculas

Intermediário
tr -d '\n' < file

# Remove quebras de linha

🟡 Redirecionamento & Pipes

Use quando: Scripts, automação, processamento de dados

📋Redirecionamento básico

Intermediário
comando > arquivo

# Sobrescreve

Intermediário
comando >> arquivo

# Adiciona no final

Intermediário
comando < arquivo

# Input de arquivo

Intermediário
comando 2> erro.log

# Só erros (stderr)

Intermediário
comando 1> saida.log

# Só output (stdout)

Intermediário
comando &> tudo.log

# Stdout + stderr

Intermediário
comando 2>&1

# stderr → stdout

📋Pipes avançados

Intermediário
cmd1 | cmd2

# Output cmd1 → input cmd2

Intermediário
cmd | tee file

# Mostra E salva

Intermediário
cmd | tee -a file

# Append

📋Here Documents

Intermediário
cat << EOF > file texto EOF

# Múltiplas linhas

📋Combinações úteis

Intermediário
ls -la | grep ".js"

# Filtra listagem

Intermediário
ps aux | grep node

# Busca processos

Intermediário
history | tail -20

# Últimos 20 comandos

Intermediário
cat log | sort | uniq -c

# Conta únicas

📋Descarte output

Intermediário
comando > /dev/null

# Descarta output

Intermediário
comando 2> /dev/null

# Descarta erros

Intermediário
comando &> /dev/null

# Descarta tudo

Intermediário
comando 2>&1 | tee file

# Salva stdout+stderr

Intermediário
comando > >(stdout) 2> >(stderr)

# Redireciona separado

Intermediário
cmd1 && cmd2 || cmd3

# Encadeamento condicional

🟡 Processos & Monitoramento

Use quando: Debug produção, otimização, gerenciar serviços

📋Listar processos

Intermediário
ps

# Processos do terminal

Intermediário
ps aux

# Todos processos

Intermediário
ps aux | grep node

# Busca específico

Intermediário
pgrep node

# PIDs do processo

Intermediário
pidof node

# PID do programa

📋Monitoramento em tempo real

Intermediário
top

# Monitor interativo

Intermediário
htop

# Top melhorado

Intermediário
top -u user

# Processos do usuário

📋Gerenciar processos

Intermediário
kill PID

# Mata processo (TERM)

Intermediário
kill -9 PID

# Mata forçado (KILL)

Intermediário
killall node

# Mata todos node

Intermediário
pkill -f "script.js"

# Mata por nome

📋Background & Foreground

Intermediário
comando &

# Executa em background

Intermediário
Ctrl+Z

# Pausa processo

Intermediário
bg

# Continua em background

Intermediário
fg

# Traz para foreground

Intermediário
jobs

# Lista jobs

Intermediário
nohup cmd &

# Roda desconectado

Intermediário
disown

# Desvincula do terminal

Intermediário
kill -l

# Lista sinais disponíveis

Intermediário
kill -USR1 PID

# Envia sinal específico

Intermediário
renice 10 PID

# Altera prioridade

Intermediário
ionice -c 3 cmd

# Prioridade de I/O

🟡 Sistema & Recursos

Use quando: Monitoramento, troubleshooting, capacity planning

📋Disco

Intermediário
df -h

# Espaço em disco

Intermediário
df -i

# Inodes

Intermediário
du -sh pasta/

# Tamanho da pasta

Intermediário
du -sh *

# Tamanho de tudo

Intermediário
du -h --max-depth=1

# Só 1 nível

Intermediário
ncdu

# Análise interativa

📋Memória

Intermediário
free -h

# Uso de RAM

Intermediário
free -m

# Em megabytes

Intermediário
vmstat

# Estatísticas VM

Intermediário
vmstat 5

# A cada 5 segundos

📋CPU & Load

Intermediário
uptime

# Load average

Intermediário
lscpu

# Info da CPU

Intermediário
cat /proc/cpuinfo

# Detalhes CPU

📋Sistema

Intermediário
uname -a

# Info do sistema

Intermediário
lsb_release -a

# Versão distro

Intermediário
hostname

# Nome do host

Intermediário
dmesg | tail

# Logs do kernel

Intermediário
lshw

# Hardware do sistema

Intermediário
lsblk

# Dispositivos de bloco

Intermediário
lsusb

# Dispositivos USB

Intermediário
lspci

# Dispositivos PCI

🟡 Rede & Conectividade

Use quando: Deploy, troubleshooting, integrações, APIs

📋Testes de conexão

Intermediário
ping google.com

# Testa conectividade

Intermediário
ping -c 4 host

# 4 pacotes

Intermediário
traceroute google.com

# Traça rota

Intermediário
mtr google.com

# Ping + traceroute

📋HTTP & Downloads

Intermediário
curl https://api.com

# HTTP GET

Intermediário
curl -I https://site.com

# Só headers

Intermediário
curl -X POST -d "data"

# POST request

Intermediário
curl -o file url

# Download

Intermediário
wget https://file.zip

# Download arquivo

Intermediário
wget -c url

# Continua download

📋SSH & SCP

Intermediário
ssh user@servidor

# Conecta remoto

Intermediário
ssh -p 2222 user@host

# Porta diferente

Intermediário
ssh -i key.pem user@host

# Usa chave

Intermediário
scp file user@host:/path

# Copia via SSH

Intermediário
scp -r pasta/ user@host:/

# Copia pasta

Intermediário
rsync -avz src/ dest/

# Sync eficiente

📋Portas & Conexões

Intermediário
netstat -tuln

# Portas escutando

Intermediário
netstat -an | grep ESTABLISHED

# Conexões ativas

Intermediário
ss -tuln

# Netstat moderno

Intermediário
lsof -i :3000

# Quem usa porta 3000

Intermediário
lsof -i -P

# Todas conexões

Intermediário
nc -zv host 80

# Testa porta aberta

📋DNS & IP

Intermediário
nslookup google.com

# DNS lookup

Intermediário
dig google.com

# DNS detalhado

Intermediário
host google.com

# DNS simples

Intermediário
ifconfig

# Config rede (legado)

Intermediário
ip addr

# IP addresses

Intermediário
ip route

# Tabela de rotas

Intermediário
ip neigh

# Tabela ARP

Intermediário
ss -ltp

# Portas com processos

Intermediário
tcpdump -i eth0

# Captura pacotes

Intermediário
dig +trace google.com

# Traçado DNS

🔴 Scripts & Variáveis

Use quando: Automação, scripts complexos, CI/CD

📋Variáveis

Avançado
nome="João"

# Define variável

Avançado
echo $nome

# Usa variável

Avançado
echo "${nome}"

# Forma segura

Avançado
readonly VAR="fix"

# Constante

Avançado
unset nome

# Remove variável

📋Variáveis especiais

Avançado
$0

# Nome do script

Avançado
$1, $2, $3...

# Argumentos

Avançado
$#

# Número de args

Avançado
$@

# Todos args

Avançado
$?

# Exit code anterior

Avançado
$$

# PID do script

📋Arrays

Avançado
arr=(a b c)

# Define array

Avançado
echo ${arr[0]}

# Acessa elemento

Avançado
echo ${arr[@]}

# Todos elementos

Avançado
echo ${#arr[@]}

# Tamanho

Avançado
arr+=(novo)

# Adiciona elemento

Avançado
unset arr[0]

# Remove elemento

Avançado
declare -p arr

# Mostra definição

📋Command substitution

Avançado
hoje=$(date)

# Resultado em var

Avançado
files=$(ls *.txt)

# Lista em var

🔴 Condições & Loops

Use quando: Scripts de deploy, automação condicional

📋If/Else

Avançado
if [ -f "file" ]; then echo "Existe" fi
Avançado
if [ $x -eq 10 ]; then echo "É 10" else echo "Não é" fi

📋Operadores de teste

Avançado
-f file

# Arquivo existe

Avançado
-d dir

# Diretório existe

Avançado
-z "$str"

# String vazia

Avançado
-n "$str"

# String não vazia

Avançado
$a -eq $b

# Igual (números)

Avançado
$a -ne $b

# Diferente

Avançado
$a -lt $b

# Menor que

Avançado
$a -gt $b

# Maior que

Avançado
"$a" = "$b"

# Igual (strings)

📋For Loop

Avançado
for i in {1..5}; do echo $i done
Avançado
for file in *.txt; do echo $file done
Avançado
for ((i=0; i<10; i++)); do echo $i done

📋While Loop

Avançado
while [ $x -lt 10 ]; do echo $x ((x++)) done
Avançado
while read line; do echo $line done < file
Avançado
while true; do echo "Loop infinito" sleep 1 done
Avançado
until [ $x -eq 10 ]; do echo $x ((x++)) done

📋Case

Avançado
case $1 in start) echo "Start" stop) echo "Stop" *) echo "?" esac

🔴 Funções & Debugging

Use quando: Scripts de produção, automação crítica

📋Funções

Avançado
funcao() { echo "Olá $1" return 0 }
Avançado
funcao "Mundo"

# Chama função

Avançado
local var="local"

# Variável local

📋Debugging

Avançado
bash -x script.sh

# Debug mode

Avançado
set -x

# Ativa debug

Avançado
set +x

# Desativa debug

Avançado
set -e

# Exit on error

Avançado
set -u

# Error on undefined

Avançado
set -o pipefail

# Pipe error handling

Avançado
set -o nounset

# Error on undefined vars

Avançado
set -o errexit

# Exit on error

Avançado
shopt -s globstar

# Ativa ** globbing

📋Error handling

Avançado
comando || echo "Erro"

# Se falhar

Avançado
comando && echo "OK"

# Se sucesso

Avançado
trap "echo Erro" ERR

# Captura erros

Avançado
trap "cleanup" EXIT

# Executa ao sair

📋Best practices

Avançado
#!/bin/bash

# Shebang

Avançado
set -euo pipefail

# Strict mode

Avançado
"$var"

# Sempre quote vars

🔴 Power Combos

Use quando: Data analysis, bulk operations, otimização

📋Logs em tempo real

Avançado
tail -f app.log | grep ERROR

# Filtra ao vivo

Avançado
tail -f log | awk '{print $1,$5}'

# Extrai colunas

📋Top IPs de acesso

Avançado
cat access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -10

📋Busca e substitui em lote

Avançado
find . -name "*.js" -exec sed -i 's/var/const/g' {} \;
Avançado
grep -rl "old" . | xargs sed -i 's/old/new/g'

📋Paralelização

Avançado
cat urls.txt | xargs -P 10 -I {} curl -O {}

# 10 paralelos

Avançado
find . -name "*.jpg" | parallel convert {} {.}.png

📋Compara arquivos

Avançado
diff file1 file2

# Diferenças

Avançado
diff -u file1 file2

# Unified format

Avançado
diff <(sort file1) <(sort file2)

# Process substitution

Avançado
comm file1 file2

# Comum/diferente

Avançado
sd 'old' 'new' file

# Substituição rápida

Avançado
rg "pattern" --type-add 'web:*.{html,js,css}' -t web

# Ripgrep com tipos

Avançado
fd -e txt -x cat

# Find moderno

📋Processamento JSON

Avançado
cat api.json | jq '.data'

# Extrai campo

Avançado
curl api.com | jq -r '.[]'

# Raw output

🔴 Permissões & Segurança

Use quando: DevOps, deploy, configuração de servidores

📋Permissões (chmod)

Avançado
chmod 755 file

# rwxr-xr-x

Avançado
chmod 644 file

# rw-r--r--

Avançado
chmod +x script.sh

# Torna executável

Avançado
chmod -R 755 dir/

# Recursivo

Avançado
chmod u+x file

# User exec

Avançado
chmod g-w file

# Remove write grupo

📋Ownership (chown)

Avançado
chown user file

# Muda dono

Avançado
chown user:group file

# Dono e grupo

Avançado
chown -R user dir/

# Recursivo

Avançado
chgrp group file

# Só grupo

📋SSH Keys

Avançado
ssh-keygen -t rsa -b 4096

# Gera chave RSA

Avançado
ssh-keygen -t ed25519

# Ed25519 (melhor)

Avançado
ssh-copy-id user@host

# Copia chave pública

Avançado
ssh-add ~/.ssh/id_rsa

# Adiciona ao agent

Avançado
chmod 600 ~/.ssh/id_rsa

# Permissão chave

Avançado
chmod 644 ~/.ssh/id_rsa.pub

# Permissão pública

📋Sudo

Avançado
sudo comando

# Executa como root

Avançado
sudo -u user cmd

# Como outro user

Avançado
sudo -i

# Login como root

Avançado
sudo !!

# Repete com sudo

📋Variáveis de ambiente

Avançado
export VAR="value"

# Define e exporta

Avançado
echo $PATH

# Mostra PATH

Avançado
export PATH=$PATH:/new

# Adiciona ao PATH

Avançado
env

# Lista todas vars

Avançado
printenv VAR

# Mostra var específica

Avançado
unset VAR

# Remove variável

Avançado
declare -x VAR="value"

# Exporta variável

Avançado
source ~/.bashrc

# Recarrega configuração

🔴 Compressão & Arquivos

Use quando: Backups, transferências, deploy de arquivos

📋Tar

Avançado
tar -czf file.tar.gz dir/

# Compacta (gzip)

Avançado
tar -xzf file.tar.gz

# Extrai (gzip)

Avançado
tar -cjf file.tar.bz2 dir/

# Compacta (bzip2)

Avançado
tar -xjf file.tar.bz2

# Extrai (bzip2)

Avançado
tar -tzf file.tar.gz

# Lista conteúdo

Avançado
tar -xzf file.tar.gz -C /dest

# Extrai em dir

📋Zip/Unzip

Avançado
zip file.zip files

# Compacta

Avançado
zip -r dir.zip dir/

# Compacta pasta

Avançado
unzip file.zip

# Extrai

Avançado
unzip -l file.zip

# Lista

📋Gzip

Avançado
gzip file

# Compacta (remove orig)

Avançado
gzip -k file

# Mantém original

Avançado
gunzip file.gz

# Descompacta

Avançado
zcat file.gz

# Mostra sem extrair

Avançado
zip -r -9 archive.zip folder/

# Máxima compressão

Avançado
unzip -q file.zip

# Extrai silencioso

Avançado
tar -xjf file.tar.bz2 -C /dest

# Extrai bzip2

Avançado
7z a archive.7z folder/

# 7-Zip

🤝 Contribuindo

Encontrou um erro? Quer melhorar um cheatsheet? Tem uma sugestão? Adoraríamos suas contribuições! Abra uma issue ou submeta um PR.

Gostou do projeto? Apoie o desenvolvimento com um café e ajude a manter tudo open source ☕