O Cofre Definitivo de Comandos CLI

author-0
author-1
Nicolas & ChatGPT
18 de julho
6 min read

Mergulhe em um arsenal curado de comandos essenciais para Linux e MacOS, cada um documentado, etiquetado e pronto para potencializar seu fluxo de trabalho, desde criptografia com OpenSSL até produtividade com tmux.

O Cofre Definitivo de Comandos CLI

Uma referência viva de comandos essenciais para Linux e CLI, totalmente documentados, etiquetados e prontos para pesquisa ou inclusão na sua base de conhecimento Futurewise.

Índice

  1. OpenSSL (Criptografia Simétrica)
  2. Arquivamento e Compressão de Arquivos
  3. Processamento de Texto e Busca
  4. Fundamentos do Docker
  5. Fundamentos do Tailscale
  6. Produtividade com TMUX

1. OpenSSL (Criptografia Simétrica)

Tags: encryption security openssl aes symmetric

# Criptografar um arquivo com AES-256-CBC (chave de 256 bits) usando salt aleatório para derivação de chave PBKDF2
openssl enc -aes-256-cbc -salt \
  -in yourfile.txt \
  -out yourfile.txt.enc

Uso e Explicação

  • -aes-256-cbc: seleciona o algoritmo AES em modo CBC (seguro e amplamente compatível).
  • -salt: adiciona salt aleatório à derivação de chave, evitando ataques de rainbow tables.
  • Você será solicitado a informar uma senha forte e segura.

Referência: Documentação do OpenSSL enc

# Descriptografar um arquivo previamente criptografado usando a mesma senha
openssl enc -d -aes-256-cbc \
  -in yourfile.txt.enc \
  -out yourfile-decrypted.txt

Uso e Explicação

  • -d: modo decrypt (descriptografar).
  • A ferramenta detecta automaticamente a salt e solicita a mesma senha usada na criptografia.

2. Arquivamento e Compressão de Arquivos

Tags: archive compression tar gzip zip rsync

# Criar um tarball comprimido com gzip de um diretório, preservando permissões e links simbólicos
# -c: create, -z: gzip, -v: verbose, -f: file
tar -czvf archive.tar.gz /path/to/dir

Explicação

  • Ideal para backups ou agrupar vários arquivos.
  • Use -p com tar para preservar propriedade ao restaurar como root.

Referência: Manual do GNU tar

# Extrair um arquivo tar.gz no diretório atual
# -x: extract, -z: gzip, -v: verbose, -f: file
tar -xzvf archive.tar.gz
# Compactar um diretório em zip recursivamente
# -r: recursive
zip -r archive.zip /path/to/dir
# Descompactar um arquivo zip no diretório atual
unzip archive.zip
# Sincronizar dois diretórios via SSH eficientemente
# -a: archive mode, -v: verbose, -z: compress
rsync -avz /local/dir/ user@host:/remote/dir/

Dica

  • Use rsync --dry-run para simular antes de executar.
  • Adicione --delete para remover arquivos extras no destino.

3. Processamento de Texto e Busca

Tags: grep awk sed find xargs text

# Buscar recursivamente “TODO” em todos os arquivos, ignorando binários
grep -R --exclude-dir={.git,node_modules} "TODO" .
  • -R ou -r: recursivo
  • --exclude-dir: pula pastas grandes
# Imprimir a segunda coluna de um arquivo delimitado por espaços
awk '{print $2}' file.txt
  • Útil para extração de colunas
  • Ajuste separador com -F"," para CSV
# Substituir “foo” por “bar” em todas as linhas (in-place)
sed -i 's/foo/bar/g' file.txt
  • -i: edita o arquivo diretamente
  • Use -i.bak para criar backup (ex.: sed -i.bak …)
# Encontrar arquivos .log maiores que 10MB
find /var/log -type f -name "*.log" -size +10M
# Remover arquivos com mais de 7 dias em /tmp
find /tmp -type f -mtime +7 -print0 | xargs -0 rm -f

Referência: GNU grep, GNU sed


4. Fundamentos do Docker

Tags: docker container images compose

# Listar contêineres em execução (ID, imagem, comando, tempo ativo)
docker ps --format 'table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.RunningFor}}'
# Baixar a imagem mais recente do Nginx
docker pull nginx:latest
# Executar contêiner em modo detached, mapeando porta 80
docker run -d --name web -p 80:80 nginx:latest
# Acompanhar logs do contêiner “web”
docker logs -f web
# Abrir shell dentro do contêiner
docker exec -it web /bin/bash
# Limpar contêineres, redes, imagens e cache não usados
docker system prune -af
# Subir serviços do docker-compose em detached
docker-compose up -d --build

Dica

  • Etiquete suas imagens (ex.: myimage:1.0).
  • Use --rm em docker run para limpeza automática.

5. Fundamentos do Tailscale

Tags: tailscale vpn ssh networking

# Instalar Tailscale no Debian/Ubuntu
curl -fsSL https://tailscale.com/install.sh | sh

# Autenticar e ativar Tailscale com rotas de sub-rede e SSH
# --accept-routes: usa rotas anunciadas por nós
# --ssh: habilita SSH integrado
tailscale up --accept-routes --ssh

Explicação

  • tailscale up: conecta ao seu Tailnet
  • --ssh: ativa servidor SSH sem configuração extra
  • --accept-routes: usa rotas de sub-rede anunciadas por outros nós
# Listar dispositivos e status de SSH
tailscale status --ssh
# Conectar por SSH a outro dispositivo no Tailnet
tailscale ssh user@device-name
# Desativar SSH do Tailscale
tailscale down --ssh

Dica

  • Tailscale SSH usa suas chaves e usuários existentes.
  • Configure ACLs na console Tailscale para restringir acesso.

Referência: Tailscale SSH


6. Produtividade com TMUX

Tags: tmux terminal multiplexing session

# Iniciar sessão tmux chamada "work"
tmux new -s work
# Listar sessões
tmux ls
# Anexar à sessão "work"
tmux attach -t work
# Desconectar da sessão (prefixo Ctrl+b)
<Ctrl+b> d
# Nova janela
<Ctrl+b> c
# Dividir painel horizontal
<Ctrl+b> "
# Dividir painel vertical
<Ctrl+b> %
# Mudar de painel (prefixo + setas)
<Ctrl+b> ←/→/↑/↓
# Redimensionar painel
<Ctrl+b> : resize-pane -L 10
# Fechar painel
<Ctrl+b> x

Dica

  • Altere o <prefix> em ~/.tmux.conf (ex.: unbind C-b; set -g prefix C-a).
  • Use plugins como tmux-resurrect para salvar sessões.

Referência: GitHub tmux

cross

AINDA TEM DÚVIDAS?

Conte-nos seus desafios, na Futurewise adoramos superá-los. Podemos ajudar com tudo, desde as melhores práticas técnicas até planos e preços.

Agende uma demo
cross