Skip to main content

Bash Cheat Sheet

·1589 words·8 mins
timEU
Author
timEU

Aqui tem um monte de coisa que em sua maioria exige uma página de cheat sheet específica... Aos poucos vou fazendo...

Navegação de Arquivos e Diretórios #

pwd                                              # Mostrar diretório atual
ls                                               # Listar arquivos do diretório atual
ls -la                                           # Listar todos os arquivos com detalhes
ls -lh                                           # Listar com tamanhos legíveis
ls -R                                            # Listar recursivamente
cd /caminho/para/diretorio                       # Ir para diretório específico
cd ..                                            # Ir para diretório pai
cd ~                                             # Ir para home do usuário
cd -                                             # Voltar ao diretório anterior
mkdir nome_diretorio                             # Criar diretório
mkdir -p caminho/completo/diretorio              # Criar diretórios recursivamente
rmdir nome_diretorio                             # Remover diretório vazio

Manipulação de Arquivos
#

touch arquivo.txt                               # Criar arquivo vazio
cp arquivo.txt destino.txt                      # Copiar arquivo
cp -r diretorio/ novo_diretorio/                # Copiar diretório recursivamente
mv arquivo.txt novo_nome.txt                    # Renomear/mover arquivo
rm arquivo.txt                                  # Remover arquivo
rm -r diretorio/                                # Remover diretório recursivamente
rm -f arquivo.txt                               # Forçar remoção
rm -rf diretorio/                               # Forçar remoção recursiva
ln -s /caminho/original /caminho/link           # Criar link simbólico

Visualização de Conteúdo
#

cat arquivo.txt                                 # Mostrar conteúdo do arquivo
less arquivo.txt                                # Visualizar arquivo com paginação
more arquivo.txt                                # Visualizar arquivo (básico)
head arquivo.txt                                # Mostrar primeiras 10 linhas
head -n 5 arquivo.txt                           # Mostrar primeiras 5 linhas
tail arquivo.txt                                # Mostrar últimas 10 linhas
tail -n 5 arquivo.txt                           # Mostrar últimas 5 linhas
tail -f arquivo.txt                             # Monitorar arquivo em tempo real
wc arquivo.txt                                  # Contar linhas, palavras e caracteres
wc -l arquivo.txt                               # Contar apenas linhas

Busca e Filtragem
#

grep "padrão" arquivo.txt                       # Buscar padrão em arquivo
grep -i "padrão" arquivo.txt                    # Busca case-insensitive
grep -r "padrão" diretorio/                     # Busca recursiva em diretório
grep -v "padrão" arquivo.txt                    # Busca inversa (excluir padrão)
grep -n "padrão" arquivo.txt                    # Mostrar números das linhas
find /caminho -name "*.txt"                     # Encontrar arquivos por nome
find /caminho -type f                           # Encontrar apenas arquivos
find /caminho -type d                           # Encontrar apenas diretórios
which comando                                   # Localizar comando executável
whereis comando                                 # Localizar binário, fonte e manual

Redirecionamento e Pipes
#

comando > arquivo.txt                           # Redirecionar saída para arquivo
comando >> arquivo.txt                          # Anexar saída ao arquivo
comando < arquivo.txt                           # Usar arquivo como entrada
comando 2> erro.txt                             # Redirecionar erro para arquivo
comando > saida.txt 2>&1                       # Redirecionar saída e erro
comando1 | comando2                             # Pipe: saída do cmd1 para cmd2
comando | tee arquivo.txt                       # Mostrar na tela e salvar

Variáveis e Ambiente
#

export VARIAVEL=valor                           # Definir variável de ambiente
echo $VARIAVEL                                  # Mostrar valor da variável
echo $HOME                                      # Diretório home do usuário
echo $PATH                                      # Caminho dos executáveis
echo $USER                                      # Nome do usuário atual
echo $PWD                                       # Diretório atual
unset VARIAVEL                                  # Remover variável
env                                             # Listar todas as variáveis de ambiente
printenv                                        # Mostrar variáveis de ambiente

Histórico de Comandos
#

history                                         # Mostrar histórico de comandos
!!                                              # Executar último comando
!n                                              # Executar comando n do histórico
!string                                         # Executar último comando que inicia com string
history -c                                      # Limpar histórico

Atalhos de Teclado
#

Ctrl-A                                          # Ir para início da linha
Ctrl-E                                          # Ir para fim da linha
Ctrl-B                                          # Mover cursor uma posição à esquerda
Ctrl-F                                          # Mover cursor uma posição à direita
Alt-B                                           # Mover cursor uma palavra à esquerda
Alt-F                                           # Mover cursor uma palavra à direita
Ctrl-L                                          # Limpar tela
Ctrl-C                                          # Cancelar comando atual
Ctrl-D                                          # Logout ou EOF
Ctrl-Z                                          # Suspender processo

Edição de Linha de Comando
#

Ctrl-U                                          # Apagar do cursor ao início da linha
Ctrl-K                                          # Apagar do cursor ao fim da linha
Ctrl-W                                          # Apagar palavra à esquerda do cursor
Alt-D                                           # Apagar palavra à direita do cursor
Ctrl-Y                                          # Colar último texto apagado
Ctrl-T                                          # Trocar caracteres de posição
Alt-T                                           # Trocar palavras de posição

Processos e Jobs
#

ps                                              # Listar processos do usuário atual
ps aux                                          # Listar todos os processos detalhados
ps -ef                                          # Listar todos os processos (formato Unix)
top                                             # Monitor interativo de processos
htop                                            # Monitor interativo melhorado (se instalado)
kill PID                                        # Terminar processo por PID
killall nome_processo                           # Terminar processo por nome
jobs                                            # Listar jobs ativos
bg                                              # Colocar job em background
fg                                              # Trazer job para foreground
nohup comando &                                 # Executar comando em background persistente

Permissões e Propriedade
#

chmod 755 arquivo                               # Alterar permissões (rwxr-xr-x)
chmod +x script.sh                              # Tornar arquivo executável
chmod -R 644 diretorio/                         # Alterar permissões recursivamente
chown usuario:grupo arquivo                     # Alterar proprietário e grupo
chown -R usuario arquivo                        # Alterar proprietário recursivamente
umask 022                                       # Definir máscara de permissões padrão

Compressão e Arquivamento
#

tar -czf arquivo.tar.gz diretorio/              # Criar arquivo tar.gz
tar -xzf arquivo.tar.gz                         # Extrair arquivo tar.gz
tar -tzf arquivo.tar.gz                         # Listar conteúdo do tar.gz
zip -r arquivo.zip diretorio/                   # Criar arquivo zip
unzip arquivo.zip                               # Extrair arquivo zip
gzip arquivo.txt                                # Comprimir arquivo
gunzip arquivo.txt.gz                           # Descomprimir arquivo

Sintaxe de Scripting
#

Shebang e Estrutura Básica
#

#!/bin/bash                                     # Shebang para scripts Bash
# Comentário de linha
set -e                                          # Parar script em caso de erro
set -u                                          # Erro se usar variável não definida
set -x                                          # Mostrar comandos sendo executados

Variáveis em Scripts
#

nome="valor"                                    # Definir variável (sem espaços)
readonly CONSTANTE="valor"                      # Variável somente leitura
echo "Olá $nome"                               # Usar variável
echo "Olá ${nome}!"                            # Uso seguro de variável

Argumentos de Script
#

echo $0                                         # Nome do script
echo $1                                         # Primeiro argumento
echo $2                                         # Segundo argumento
echo $#                                         # Número de argumentos
echo $@                                         # Todos os argumentos
echo $*                                         # Todos os argumentos (string única)
echo $?                                         # Código de saída do último comando

Estruturas Condicionais
#

# If/Else
if [ condição ]; then
    echo "verdadeiro"
elif [ outra_condição ]; then
    echo "outra condição"
else
    echo "falso"
fi

# Teste de arquivo
if [ -f arquivo.txt ]; then
    echo "arquivo existe"
fi

# Teste de diretório
if [ -d diretorio ]; then
    echo "diretório existe"
fi

# Comparação de strings
if [ "$string1" = "$string2" ]; then
    echo "strings iguais"
fi

# Comparação numérica
if [ $num1 -eq $num2 ]; then
    echo "números iguais"
fi

Estruturas de Repetição
#

# For loop
for i in {1..10}; do
    echo $i
done

# For com array
for item in item1 item2 item3; do
    echo $item
done

# While loop
while [ condição ]; do
    echo "executando"
done

# Until loop
until [ condição ]; do
    echo "executando"
done

Funções
#

# Definir função
minhaFuncao() {
    echo "Olá $1"
    return 0
}

# Chamar função
minhaFuncao "mundo"

Arrays
#

# Definir array
frutas=("maçã" "banana" "laranja")

# Acessar elementos
echo ${frutas[0]}                               # Primeiro elemento
echo ${frutas[@]}                               # Todos os elementos
echo ${#frutas[@]}                              # Número de elementos

# Adicionar elemento
frutas+=("uva")

Operadores de Teste
#

# Arquivos
-f arquivo      # Arquivo regular existe
-d diretorio    # Diretório existe
-r arquivo      # Arquivo é legível
-w arquivo      # Arquivo é gravável
-x arquivo      # Arquivo é executável
-s arquivo      # Arquivo não está vazio

# Strings
-z string       # String está vazia
-n string       # String não está vazia
str1 = str2     # Strings são iguais
str1 != str2    # Strings são diferentes

# Números
num1 -eq num2   # Números são iguais
num1 -ne num2   # Números são diferentes
num1 -lt num2   # num1 menor que num2
num1 -le num2   # num1 menor ou igual a num2
num1 -gt num2   # num1 maior que num2
num1 -ge num2   # num1 maior ou igual a num2

Manipulação de Strings
#

string="Hello World"
echo ${string}                                  # Mostrar string completa
echo ${#string}                                 # Comprimento da string
echo ${string:6:5}                             # Substring (posição 6, 5 caracteres)
echo ${string,,}                               # Converter para minúsculas
echo ${string^^}                               # Converter para maiúsculas
echo ${string/World/Universe}                  # Substituir primeira ocorrência
echo ${string//o/0}                            # Substituir todas as ocorrências

Comando Condicional e Lógico
#

comando1 && comando2                            # Executar comando2 se comando1 suceder
comando1 || comando2                            # Executar comando2 se comando1 falhar
[ condição ] && echo "verdadeiro"              # Execução condicional
test condição && echo "verdadeiro"             # Alternativa ao [ ]

Expansões Úteis
#

echo {a..z}                                     # Expandir sequência a-z
echo {1..10}                                    # Expandir números 1-10
echo arquivo{1,2,3}.txt                        # Expandir múltiplas opções
mkdir projeto/{src,docs,tests}                  # Criar múltiplos diretórios
echo ~                                          # Expandir para home
echo file*.txt                                  # Glob pattern

Debugging de Scripts
#

bash -x script.sh                               # Executar script com debug
bash -n script.sh                               # Verificar sintaxe sem executar
set -x                                          # Ativar modo debug
set +x                                          # Desativar modo debug

Comandos de Sistema
#

date                                            # Data e hora atual
uptime                                          # Tempo de atividade do sistema
whoami                                          # Nome do usuário atual
id                                              # ID do usuário e grupos
uname -a                                        # Informações do sistema
df -h                                           # Espaço em disco
du -sh diretorio/                               # Tamanho do diretório
free -h                                         # Uso de memória

Rede e Conectividade
#

ping host                                       # Testar conectividade
wget URL                                        # Baixar arquivo da web
curl URL                                        # Fazer requisição HTTP
ssh usuario@servidor                            # Conectar via SSH
scp arquivo usuario@servidor:/caminho           # Copiar arquivo via SSH

Dicas e Truques
#

Tab Completion
#

  • Pressione Tab para autocompletar comandos e nomes de arquivos
  • Pressione Tab duas vezes para ver opções disponíveis

Wildcards
#

  • * - corresponde a qualquer string
  • ? - corresponde a um único caractere
  • [abc] - corresponde a qualquer caractere entre colchetes

Substituição de Comandos
#

resultado=$(comando)                            # Capturar saída de comando
resultado=`comando`                             # Sintaxe alternativa (menos recomendada)
echo "Data: $(date)"                           # Usar resultado em string

Escape de Caracteres
#

echo "String com \"aspas\""                    # Escapar aspas duplas
echo 'String literal $variavel'                # Aspas simples preservam literalmente
echo "Quebra de linha\nSegunda linha"          # Caracteres de escape