Pular para o conteúdo principal

00 - Comandos uteis


Tamanho do disco

Comandos rápidos:

df -h                # espaço usado/ disponível por filesystem
du -sh * # tamanho (resumido) de cada item no diretório atual
du -h --max-depth=1 # tamanho por subdiretório (1 nível)
du -h -c # lista com total no final
ncdu /path # interface ncurses para navegar por uso de disco (instalar ncdu)

Exemplo para ordenar por tamanho:

du -sh * | sort -h

Informações do CPU

lscpu               # visão legível da CPU
cat /proc/cpuinfo # informação detalhada por CPU/core
top / htop # monitor em tempo real (instale htop para melhor experiência)

Desabilitar firewall (temporariamente)

Dependendo da distro/serviço, prefira gerenciar via ufw ou firewalld.

Usando ufw:

sudo ufw status
sudo ufw disable # desabilita temporariamente
sudo ufw enable # reabilita

Usando systemd (ex.: firewalld):

sudo systemctl stop firewalld
sudo systemctl start firewalld

Comandos iptables diretos (use com cuidado):

sudo iptables-save > ~/iptables.backup
sudo iptables -F
sudo iptables -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

Observação: não remova regras permanentemente sem entender o impacto em produção.


Hard link vs symbolic (soft) link:

# link simbólico (mais comum)
ln -s /caminho/para/original /caminho/para/link

# hard link (mesmo inode; funciona apenas no mesmo filesystem)
ln /caminho/para/original /caminho/para/hardlink

Exemplo:

ln -s /usr/local/bin/minha-app ~/bin/minha-app

Transferir arquivo via SCP

# do local para remoto
scp /tmp/arquivo.zip usuario@host:/caminho/de/destino/

# do remoto para local
scp usuario@host:/caminho/arquivo.zip /tmp/

# especificar porta diferente
scp -P 2222 arquivo.zip usuario@host:/destino/

Para transferências mais robustas e retomáveis, use rsync -avP sobre SSH.


Listar processos pela porta

sudo lsof -i:<porta>
# ou usando ss (mais moderno)
sudo ss -ltnp | grep :<porta>
# outra opção
sudo fuser -n tcp <porta>

Exemplo:

sudo lsof -i:4200
sudo ss -ltnp | grep :4200

Procurar texto: grep, ag, rg

Comandos básicos:

ps aux | grep termo
grep -R "termo" ./diretorio

Alternativas mais rápidas:

  • ag (The Silver Searcher): muito rápido para código (apt install silversearcher-ag)
  • rg (ripgrep): ainda mais rápido e moderno (apt install ripgrep)

Exemplos:

ag "minhaFuncao" src/
rg "minhaFuncao" src/

Terminais, multiplexadores e shells

  • Terminais gráficos: tilix, gnome-terminal, konsole.
  • Multiplexadores: tmux, screen (úteis para sessões remotas persistentes).
  • Shells: bash, zsh (com oh-my-zsh para produtividade).

Instalação rápida:

sudo apt install tilix tmux zsh htop
chsh -s $(which zsh) # mudar shell para zsh (logout/login necessário)

Exemplo básico tmux:

tmux new -s minha-sessao
tmux split-window -h
tmux attach -t minha-sessao
tmux kill-session -t minha-sessao

Ver placa de vídeo / GPU em uso

lspci | grep -i vga
lspci | grep -i nvidia
glxinfo | grep -i opengl # requer mesa-utils
# ou, para GPUs NVIDIA
nvidia-smi

Instale utilitários se necessário:

sudo apt install mesa-utils pciutils

Rsync e SSH com chaves

Gerar par de chaves (recomendo ed25519):

ssh-keygen -t ed25519 -C "seu@email.com" -f ~/.ssh/id_ed25519

Copiar a chave pública para o servidor:

ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@host

# ou manualmente
cat ~/.ssh/id_ed25519.pub | ssh usuario@host 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys'

Conectar usando a chave:

ssh -i ~/.ssh/id_ed25519 usuario@host

Rsync sobre SSH (exemplos):

# do local para remoto (show progress, resume)
rsync -avP -e "ssh -i ~/.ssh/id_ed25519" /caminho/origem/ usuario@host:/caminho/destino/

# do remoto para local
rsync -avP -e "ssh -i ~/.ssh/id_ed25519" usuario@host:/caminho/remoto/ /caminho/local/

# excluir arquivos e apagar no destino para espelhar
rsync -avP --delete -e "ssh -i ~/.ssh/id_ed25519" /origem/ usuario@host:/destino/

# especificar porta SSH
rsync -avP -e "ssh -i ~/.ssh/id_ed25519 -p 2222" /origem/ usuario@host:/destino/

Observações:

  • Use -z para comprimir durante a transferência em links lentos.
  • -P combina --progress e --partial para retomar transferências interrompidas.

Atalhos úteis — tmux

Prefixo padrão: Ctrl+b

AtalhoAção
Prefixo (Ctrl-b), cNova janela
Prefixo, %Split vertical (new pane)
Prefixo, "Split horizontal
Prefixo, oAlterna entre panes
Prefixo, ;Voltar para último painel ativo
Prefixo, n / pPróxima / anterior janela
Prefixo, wLista janelas
Prefixo, dDetach (desanexar sessão)
Prefixo, [Entrar no modo de rolagem (copy-mode)
Prefixo, xFechar pane atual
Prefixo, &Fechar janela atual
Prefixo, :Entrar em prompt de comando tmux

Comandos rápidos:

tmux new -s sessao
tmux attach -t sessao
tmux list-sessions
tmux kill-session -t sessao

Atalhos úteis — htop

TeclaAção
F2Menu de configuração (Setup)
F3Buscar processo (Search)
F4Filtrar (Filter)
F5Modo árvore (Tree)
F6Ordenar por coluna (SortBy)
F7 / F8Diminuir / Aumentar 'nice'
F9Matar processo (Kill)
F10Sair (Quit)
SPACEMarcar/desmarcar processo
UMostrar apenas processos do usuário atual

Use F2 para personalizar colunas e cores.