🐧 Linha de Comando Linux

Multilingual DevOps cheat sheet: Linux, Docker, Git, Kubernetes, Helm, Terraform, practical scenarios & templates.
Data de Publicação

31 de agosto de 2025

Comandos básicos e avançados para navegação, arquivos, processos, rede, monitoramento, pacotes e automação. Adequado para fluxos de trabalho DevOps.

🔹 Comandos básicos

Comando

Exemplo

Descrição

cat Mostrar conteúdo de arquivo ou concatenar múltiplos arquivos
cat file.txt

Ver conteúdo de arquivo

cat file1 file2

Concatenar e exibir dois arquivos

cat file1 file2 > merged.txt

Concatenar arquivos e salvar em um novo arquivo

cd Alterar o diretório de trabalho atual
cd /etc

Ir para o caminho absoluto /etc

cd ~

Ir para o diretório pessoal

cd ..

Subir um nível

cd -

Voltar ao diretório anterior

clear Limpar a tela do terminal
cp Copiar arquivos e diretórios
cp file1.txt file2.txt

Copiar um arquivo com um novo nome

cp -r dir1 dir2

Copiar um diretório recursivamente

cp -i file.txt /tmp/

Copiar com confirmação antes de sobrescrever

echo Imprimir uma string ou variável de ambiente
echo "Hello, World!"

Imprimir uma string simples

echo $HOME

Mostrar o caminho do diretório pessoal

echo -e "1\t2\n3"

Interpretar sequências de escape ( )

history Exibir o histórico de comandos
id Mostrar UID, GID e grupos do usuário atual
ls Listar arquivos e diretórios
ls -l

Listagem detalhada com permissões e donos

ls -a

Mostrar arquivos ocultos

ls -lh

Tamanhos legíveis para humanos

mkdir Criar diretórios
mkdir folder

Criar um único diretório

mkdir -p a/b/c

Criar diretórios aninhados

mkdir dir{1,2,3}

Criar múltiplos diretórios de uma vez

mv Mover ou renomear arquivos/diretórios
mv oldname.txt newname.txt

Renomear um arquivo

mv file.txt /path/to/dir/

Mover um arquivo para outro diretório

mv *.txt archive/

Mover todos os arquivos .txt para a pasta archive

pwd Exibir o diretório de trabalho atual
pwd -P

Mostrar o caminho físico (sem links simbólicos)

cd /tmp && pwd

Mostrar o caminho após mudar para /tmp

rm Remover arquivos ou diretórios
rm file.txt

Excluir um arquivo

rm -i file.txt

Excluir um arquivo com confirmação

rm -r folder/

Excluir um diretório recursivamente

rm -rf folder/

Forçar exclusão sem confirmação

rmdir Remover um diretório vazio
rmdir emptydir

Remover o diretório emptydir

touch Criar arquivos vazios ou atualizar o horário de modificação
touch newfile.txt

Criar um novo arquivo vazio se não existir

touch a b c

Criar múltiplos arquivos de uma vez

touch -c file.txt

Atualizar horário sem criar arquivo se ausente

whereis Localizar o binário, código-fonte e man pages de um comando
whereis ls

Encontrar localizações para ls

whereis bash

Mostrar caminhos para o binário e documentação do Bash

whereis -b bash

Buscar apenas o binário

which Mostrar o caminho do executável do comando
which python3

Caminho para python3

which grep

Caminho para grep

which --skip-alias ls

Ignorar aliases na busca

whoami Exibir o nome efetivo do usuário

🔸 Nível intermediário

Comando

Exemplo

Descrição

chmod Alterar permissões de arquivo ou diretório
chmod 755 file

Definir permissões com notação octal (ex.: 755)

chmod +x script.sh

Adicionar permissão de execução a um script

chmod -R 644 dir/

Definir permissões recursivamente em um diretório

chown Alterar dono e grupo de um arquivo
chown user file

Alterar o dono de um arquivo

chown user:group file

Alterar dono e grupo

chown -R user:group dir/

Alterar dono e grupo recursivamente

curl Transferir dados de/para um servidor (HTTP, HTTPS, etc.)
curl -I https://example.com

Enviar um pedido HEAD (apenas cabeçalhos)

curl -O https://example.com/file.txt

Baixar um arquivo e manter seu nome

curl -d "a=1&b=2" -X POST URL

Enviar um POST com dados de formulário

df Relatar uso de espaço em disco do sistema de arquivos
df -h

Tamanhos legíveis para humanos

df /home

Uso de um ponto de montagem específico

df -T

Mostrar tipos de sistemas de arquivos

diff Comparar arquivos ou diretórios
diff file1 file2

Comparar dois arquivos

diff -u old.c new.c

Diff unificado (estilo patch)

diff -r dir1 dir2

Comparação recursiva de diretórios

du Estimar uso de espaço de arquivos e diretórios
du -sh *

Mostrar tamanho dos itens no diretório atual

du -h file.txt

Mostrar tamanho de um único arquivo

du -sh --max-depth=1 /var

Resumir tamanhos dos subdiretórios de nível superior

find Procurar arquivos/diretórios por nome, tamanho, tempo, etc.
find . -name "*.log"

Encontrar todos os arquivos .log no diretório atual

find / -type f -size +100M

Encontrar arquivos maiores que 100 MB

find . -mtime -1

Arquivos modificados no último dia

free Exibir quantidade de memória livre e usada
free -h

Unidades de memória legíveis para humanos

free -m

Mostrar valores em MB

watch -n 2 free -h

Atualizar a saída a cada 2 segundos

grep Buscar texto usando padrões (expressões regulares)
grep "error" logfile

Encontrar linhas contendo error

grep -r "error" /var/log

Busca recursiva em um diretório

grep -i "fail" file

Busca sem diferenciar maiúsculas/minúsculas

head Exibir as primeiras linhas de um arquivo
head -n 10 file

Primeiras 10 linhas

head -n 20 file.txt

Primeiras 20 linhas

head -c 100 file

Primeiros 100 bytes

hostname Mostrar ou definir o nome do host do sistema
hostname newname

Definir temporariamente o hostname até reiniciar

hostname -I

Mostrar endereços IP

kill Enviar sinais a processos
kill -9 1234

Forçar encerramento de um processo por PID

kill -TERM 1234

Encerrar graciosamente com SIGTERM

pkill -f python

Matar processos correspondentes a um padrão

ping Verificar conectividade de rede usando pacotes ICMP
ping 8.8.8.8

Ping em um endereço

ping -c 4 ya.ru

Enviar 4 pacotes

ping -i 2 1.1.1.1

Definir intervalo de 2 segundos

ps Exibir status dos processos
ps aux

Listar todos os processos

ps -ef | grep nginx

Filtrar por nome usando grep

ps -u $USER

Processos do usuário atual

rsync Transferência rápida e incremental de arquivos
rsync -av src/ dst/

Sincronizar diretórios localmente

rsync -avz user@host:/src /dst

Sincronizar com host remoto via SSH

rsync --delete src/ dst/

Excluir arquivos no destino ausentes na origem

scp Cópia segura (programa de cópia de arquivos remotos)
scp file user@host:/path

Copiar um arquivo para um host remoto

scp user@host:/file.txt .

Copiar um arquivo de um host remoto

scp -r dir user@host:/path

Copiar recursivamente um diretório

sort Ordenar linhas de texto
sort file.txt

Ordenação alfabética

sort -r file.txt

Ordem reversa

sort -n numbers.txt

Ordenação numérica

tail Exibir a última parte de arquivos; seguir mudanças
tail -f logfile.log

Seguir um log em tempo real

tail -n 20 file.txt

Mostrar as últimas 20 linhas

tail -c 100 file.txt

Mostrar os últimos 100 bytes

tar Criar, listar ou extrair arquivos tar
tar -czf archive.tgz dir/

Criar um arquivo .tgz compactado

tar -xzf archive.tgz

Extrair um arquivo .tgz

tar -tf archive.tgz

Listar conteúdo do arquivo

tee Ler da entrada padrão e escrever na saída padrão e em arquivos
echo "test" | tee out.txt

Gravar saída em out.txt e exibir

ls | tee list.txt

Salvar saída de ls em arquivo e exibir

command | tee -a log.txt

Anexar saída ao final de log.txt

top Exibir tarefas do Linux (visualizador interativo de processos)
top

Iniciar top

htop

Visualizador alternativo interativo (htop)

top -o %MEM

Ordenar por uso de memória

uptime Mostrar há quanto tempo o sistema está em execução
uptime -p

Tempo de atividade em formato amigável

uptime -s

Hora de inicialização do sistema

wget Baixador de rede não interativo
wget https://site.com/file.zip

Baixar um arquivo por URL

wget -c file.zip

Retomar um download interrompido

wget -O saved.txt URL

Salvar com um nome de arquivo diferente

wc Exibir contagem de linhas, palavras e bytes em arquivos
wc -l file

Contar linhas

wc -w file

Contar palavras

wc -m file

Contar caracteres

uniq Relatar ou filtrar linhas repetidas (duplicatas adjacentes)
uniq file.txt

Remover duplicatas adjacentes

sort file | uniq

Remover duplicatas após ordenação

sort file | uniq -c

Contar ocorrências de cada linha

yes Exibir uma string repetidamente até ser interrompido; útil para scripts
yes "y" | command

Responder sempre “y” a prompts

yes | rm -i *

Auto-confirmar exclusões interativas

yes no | command

Responder “não” a prompts

🔧 Comandos avançados

Comando

Exemplo

Descrição

at Agendar a execução única de um comando em um horário definido
at now + 1 minute

Executar um comando daqui a um minuto

atq

Listar tarefas pendentes

atrm

Remover uma tarefa pendente

awk Linguagem de varredura e processamento de padrões
awk '{print $1}' file

Imprimir a primeira coluna

ps aux | awk '$3 > 50'

Filtrar processos pelo uso de CPU

cat file.txt | awk '{print $2}'

Imprimir o segundo campo de cada linha

awk '/error/ {print $0}' logfile

Imprimir linhas que correspondem a um padrão

crontab Instalar, listar ou remover tarefas cron por usuário
crontab -e

Editar o crontab do usuário atual

crontab -l

Listar tarefas do cron

crontab -r

Remover o crontab do usuário atual

cut Remover ou selecionar seções de cada linha de arquivos
cut -d':' -f1 /etc/passwd

Imprimir nomes de usuário de /etc/passwd

echo "a:b:c" | cut -d':' -f2

Cortar o segundo campo usando ‘:’ como delimitador

cut -c1-5 filename

Selecionar caracteres por posição

df Relatar uso de espaço em disco do sistema de arquivos
df -h

Tamanhos legíveis para humanos

df -T

Mostrar tipos de sistemas de arquivos

df /home

Uso do diretório pessoal

env Executar um comando em ambiente modificado ou imprimir variáveis
env | grep PATH

Mostrar entradas do PATH

env -i bash

Iniciar um shell limpo com ambiente vazio

export Definir variáveis de ambiente para o shell/sessão atual
export VAR=value

Definir uma variável para este shell

export PATH=$PATH:/new/path

Adicionar um diretório ao PATH

export -p

Listar variáveis exportadas

free Exibir uso da memória
free -m

Mostrar em MB

free -h

Unidades legíveis para humanos

free -s 5

Amostragem a cada 5 segundos

hostnamectl Consultar e alterar o nome do host do sistema e configurações relacionadas
hostnamectl status

Mostrar status do host

hostnamectl set-hostname newname

Definir um novo nome de host estático

ifconfig / ip Ferramentas IP para visualizar/gerenciar interfaces e endereços
ifconfig

Mostrar interfaces de rede (legado)

ip a

Mostrar endereços com ip

ip link set eth0 up

Ativar uma interface

iostat Relatar estatísticas de CPU e I/O
iostat -x 2

Estatísticas detalhadas a cada 2 segundos

iostat -d 5 3

Estatísticas de dispositivos (intervalo 5s, 3 relatórios)

iptables Ferramenta de administração para filtragem de pacotes IPv4 e NAT
iptables -L

Listar regras atuais

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Permitir conexões SSH na porta 22

iptables -F

Limpar todas as regras

journalctl Consultar o journal do systemd
journalctl -xe

Mostrar erros recentes com contexto

journalctl -u nginx.service

Mostrar logs de um serviço

journalctl --since "2 hours ago"

Mostrar logs desde um tempo relativo

ln Criar links entre arquivos
ln -s target link

Criar um link simbólico

ln file.txt backup.txt

Criar um link físico

ln -sf target link

Recriar forçadamente um link simbólico

sed Editor de fluxo para filtrar e transformar texto
sed 's/old/new/g' file

Substituir uma string globalmente

sed -n '1,5p' file

Imprimir apenas um intervalo de linhas

sed '/pattern/d' file

Excluir linhas correspondentes

systemctl Controlar o sistema e gerenciador de serviços systemd
systemctl status nginx

Mostrar status de um serviço

systemctl start nginx

Iniciar um serviço

systemctl enable nginx

Habilitar um serviço na inicialização

tr Traduzir ou excluir caracteres
tr a-z A-Z

Converter minúsculas em maiúsculas

echo "hello" | tr 'h' 'H'

Substituir um caractere

echo "abc123" | tr -d '0-9'

Excluir dígitos

type Descrever como um nome seria interpretado no shell
type ls

Mostrar como ls é resolvido

type cd

Mostrar como cd é resolvido

type python3

Mostrar como python3 é resolvido

ulimit Obter ou definir limites de recursos de processos de usuário
ulimit -n

Mostrar máximo de arquivos abertos

ulimit -c unlimited

Habilitar dumps de memória

ulimit -u 4096

Limitar o número de processos do usuário

uptime Mostrar tempo de atividade do sistema e carga média
uptime -p

Tempo de atividade em formato amigável

uptime -s

Mostrar horário de inicialização

xargs Construir e executar linhas de comando a partir da entrada padrão
xargs -n 1 echo

Exibir cada argumento em uma linha separada

echo "a b c" | xargs -n 1

Dividir palavras em argumentos separados

find . -name '*.txt' | xargs rm

Encontrar arquivos e removê-los com xargs

🌐 Comandos de rede

Comando

Exemplo

Descrição

curl Transferir dados para/de servidores
curl -X POST -d "a=1" URL

Requisição POST com dados de formulário

curl -I URL

Buscar apenas cabeçalhos

curl -o file.html URL

Baixar e salvar em um arquivo

dig Utilitário de consulta DNS
dig openai.com

Consultar registros A

dig +short openai.com

Resposta curta

dig @8.8.8.8 openai.com

Usar um servidor DNS específico

ftp Cliente de protocolo de transferência de arquivos
ftp host

Conectar a um servidor FTP

ftp -n host

Conectar sem login automático

ftp> get file.txt

Baixar um arquivo em uma sessão FTP

ip address Exibir/manipular endereços IP
ip addr show eth0

Mostrar informações de endereço para eth0

ip addr

Listar todos os endereços

ip link Exibir/manipular dispositivos de rede
ip link show

Mostrar links de rede

ip link set eth0 up

Ativar uma interface

ip route Exibir/manipular a tabela de roteamento IP
ip route list

Listar tabela de rotas

ip route add default via 192.168.1.1

Adicionar rota padrão

nc Conexões e escutas arbitrárias TCP/UDP
nc -zv host 22

Escanear portas de um host

nc -l 1234

Escutar em uma porta TCP

nc host 1234 < file

Enviar um arquivo para uma porta remota

nmap Ferramenta de exploração de rede e scanner de portas/segurança
nmap -sP 192.168.1.0/24

Escaneamento de ping em uma sub-rede

nmap -sV 192.168.1.1

Detecção de serviço/versão

nmap -O 192.168.1.1

Detecção de SO

nslookup Consultar servidores de nomes de domínio da Internet
nslookup google.com

Consultar um nome de domínio

nslookup 8.8.8.8

Consulta reversa para um IP

ssh Cliente de login remoto OpenSSH
ssh user@host

Conectar a um host

ssh -p 2222 user@host

Conectar usando uma porta diferente da padrão

ssh -i ~/.ssh/id_rsa user@host

Login com uma chave privada específica

ss Utilitário para investigar sockets
ss -tuln

Listar portas TCP/UDP em escuta

ss -s

Estatísticas resumidas

ss -l

Listar sockets em escuta

telnet Interface de usuário para o protocolo TELNET
telnet host 80

Conectar a um host na porta 80

telnet example.com 443

Conectar na porta 443

telnet localhost 25

Conectar ao SMTP local

traceroute Rastrear a rota até um host de rede
traceroute 8.8.8.8

Rastrear caminho até um IP

traceroute -m 15 8.8.8.8

Limitar saltos máximos

wget Recuperar arquivos da web
wget -O file.txt URL

Salvar saída em um arquivo

wget URL

Baixar no diretório atual

wget -c URL

Continuar um download parcial

🔍 Busca e gerenciamento de arquivos

Comando

Exemplo

Descrição

basename Remover diretório e sufixo de nomes de arquivos
basename /path/to/file

Imprimir o nome do arquivo de um caminho

basename /path/to/file .txt

Remover um sufixo do nome

dirname Remover o último componente de um caminho
dirname /path/to/file

Mostrar a parte do diretório do caminho

dirname /etc/passwd

Mostrar o pai de /etc/passwd

du Estimar uso de espaço de arquivos
du -sh folder/

Mostrar tamanho de um diretório

du -h *

Mostrar tamanho de itens no diretório atual

du -c folder1 folder2

Tamanho cumulativo de múltiplos diretórios

file Determinar o tipo de arquivo
file some.bin

Detectar tipo de arquivo

file *

Detectar tipos de todos os arquivos em um diretório

file -i file.txt

Mostrar tipo MIME

find Buscar arquivos
find /path -type f -name "*.sh"

Encontrar scripts shell por nome

find . -size +10M

Encontrar arquivos maiores que 10 MB

find /tmp -mtime -1

Encontrar arquivos modificados no último dia

locate Localizar arquivos por nome usando banco de dados
locate filename

Localizar um nome de arquivo

locate *.conf

Busca com curinga

locate -i README

Busca sem diferenciar maiúsculas/minúsculas

realpath Exibir o caminho absoluto resolvido
realpath file

Resolver caminho de um arquivo

realpath ../relative/path

Resolver um caminho relativo

stat Exibir status de arquivo ou sistema de arquivos
stat file

Mostrar status detalhado do arquivo

stat -c %s file

Imprimir apenas o tamanho do arquivo

stat -f file

Mostrar status do sistema de arquivos

tree Listar conteúdo de diretórios em formato de árvore
tree

Imprimir árvore de diretório

tree -L 2

Limitar profundidade de exibição

tree -a

Incluir arquivos ocultos

📊 Monitoramento do sistema

Comando

Exemplo

Descrição

dmesg Imprimir ou controlar o buffer de mensagens do kernel
dmesg | tail

Mostrar as últimas mensagens do kernel

dmesg | grep usb

Filtrar mensagens de USB

free Exibir uso da memória
free -h

Unidades legíveis para humanos

free -m

Mostrar em MB

htop Visualizador interativo de processos
htop

Executar htop

iotop Exibir uso de I/O por processos
iotop

Executar iotop

iotop -o

Mostrar apenas processos realizando I/O

lsof Listar arquivos abertos
lsof -i :80

Mostrar processos usando a porta 80

lsof -u username

Mostrar arquivos abertos por um usuário

uptime Exibir tempo de atividade do sistema e cargas médias
vmstat Relatar estatísticas de memória virtual
vmstat 1

Atualizar a cada 1 segundo

vmstat 5 3

Intervalo de 5 segundos, 3 relatórios

watch Executar um programa periodicamente e mostrar a saída
watch -n 1 df -h

Monitorar uso de disco

watch -d free -h

Destacar diferenças e monitorar memória

📦 Gerenciamento de pacotes

Comando

Exemplo

Descrição

apt Gerenciador de pacotes APT (Debian/Ubuntu)
apt install curl

Instalar um pacote

apt remove curl

Remover um pacote

apt update && apt upgrade

Atualizar listas de pacotes e atualizar

dnf Dandified YUM (família Fedora/RHEL)
dnf install curl

Instalar um pacote

dnf upgrade

Atualizar pacotes

rpm Gerenciador de pacotes RPM
rpm -ivh package.rpm

Instalar um pacote RPM

rpm -e package

Remover (desinstalar) um pacote

snap Gerenciador de pacotes Snappy
snap install app

Instalar um snap

snap remove app

Remover um snap

yum Yellowdog Updater Modified (RHEL/CentOS)
yum install curl

Instalar um pacote

yum remove curl

Remover um pacote

💽 Sistemas de arquivos

Comando

Exemplo

Descrição

blkid Localizar/imprimir atributos de dispositivos de bloco
blkid

Listar dispositivos de bloco e atributos

df Relatar uso de espaço em disco do sistema de arquivos
df -Th

Tamanhos legíveis por tipo

fsck Verificar e reparar um sistema de arquivos Linux
fsck /dev/sda1

Verificar um dispositivo

lsblk Listar informações sobre dispositivos de bloco
lsblk

Listar dispositivos em formato de árvore

mkfs Construir um sistema de arquivos Linux
mkfs.ext4 /dev/sdb1

Criar um sistema de arquivos ext4

mount Montar um sistema de arquivos
mount /dev/sdb1 /mnt

Montar um dispositivo em /mnt

mount | grep /mnt

Mostrar sistemas montados filtrados por caminho

parted Programa de manipulação de partições
parted /dev/sdb

Abrir um disco para particionamento

umount Desmontar sistemas de arquivos
umount /mnt

Desmontar um ponto de montagem

🤖 Scripts e automação

Comando

Exemplo

Descrição

alias Definir ou exibir aliases do shell
alias ll='ls -la'

Criar um alias útil

alias

Listar aliases definidos

bash / sh Executar scripts de shell
bash script.sh

Executar um script com Bash

sh script.sh

Executar um script com sh

crontab Tabelas cron por usuário
crontab -e

Editar o crontab do usuário atual

read Solicitar entrada do usuário em scripts de shell
read name

Ler em uma variável

set Definir opções/parâmetros posicionais do shell
set -e

Sair no primeiro erro

source Ler e executar comandos de um arquivo no shell atual
source ~/.bashrc

Recarregar configuração do shell

trap Capturar sinais e executar comandos
trap "echo 'exit'" EXIT

Executar um comando ao sair do shell

🛠 Desenvolvimento e depuração

Comando

Exemplo

Descrição

gcc Compilador GNU C
gcc main.c -o app

Compilar um arquivo fonte em C

gdb Depurador GNU
gdb ./app

Depurar um binário compilado

git Sistema de controle de versão distribuído
git status

Mostrar status da árvore de trabalho

git commit -m "msg"

Commit com mensagem

ltrace Rastreador de chamadas de biblioteca
ltrace ./app

Rastrear chamadas de biblioteca de um binário

make Utilitário para manter grupos de programas
make

Compilar conforme Makefile

shellcheck Análise estática para scripts de shell
shellcheck script.sh

Analisar um script de shell

strace Rastrear chamadas de sistema e sinais
strace ./app

Rastrear syscalls de um programa

valgrind Framework de instrumentação para análises dinâmicas
valgrind ./app

Executar um programa sob Valgrind

vim / nano Editores de texto em linha de comando
vim file.sh

Editar com Vim

nano file.sh

Editar com Nano

📌 Diversos

Comando

Exemplo

Descrição

cal Exibir um calendário
cal 2025

Mostrar calendário do ano

cal 08 2025

Mostrar um mês específico

date Exibir ou definir a data e hora do sistema
date +%T

Imprimir hora atual (HH:MM:SS)

date -d "next friday"

Imprimir data de um dia relativo

factor Fatorar inteiros
factor 100

Fatorar um número

man Formatar e exibir páginas de manual online
man tar

Abrir uma página de manual

man -k copy

Pesquisar manuais por palavra-chave

man 5 passwd

Abrir uma seção específica do manual

seq Imprimir sequências de números
seq 1 5

Contar de 1 a 5

seq 1 2 9

Contar com incremento

seq -s ',' 1 5

Unir números com separador personalizado

yes Imprimir uma string repetidamente até ser interrompido
yes | rm -r dir

Auto-confirmar uma exclusão recursiva

📚 Recursos adicionais

📘 páginas man - manuais detalhados de comandos:

man ls
man rm

📙 TLDR - exemplos concisos de uso de comandos populares:

🧠 Dica: Instale tldr para ajuda em estilo de folha de referência:

sudo apt install tldr   # ou: npm install -g tldr
tldr tar                # exemplo de um resumo curto para o comando tar

🌐 Links úteis

Páginas man do Linux online — manuais oficiais, pesquisáveis por nome de comando:
https://man7.org/linux/man-pages/

Páginas man simplificadas e comunitárias — ajuda mantida pela comunidade com exemplos práticos:
https://tldr.sh/