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