1001Ferramentas
🖥️Geradores

Gerador de comando tmux

Monte comandos tmux comuns: nova sessão, anexar, dividir janela, renomear, kill-session, new-window com nome.


  

tmux em profundidade: sessões, windows, panes e o terminal persistente

O tmux — abreviação de terminal multiplexer — é um programinha pequeno, com licença BSD, escrito por Nicholas Marriott em 2007 como sucessor espiritual do GNU Screen. Ele permite rodar várias sessões, windows e panes dentro de um único emulador de terminal, desanexar de um shell em execução, fechar o notebook, logar de outra máquina e re-anexar exatamente de onde você parou. Para quem vive em sessões SSH a servidores remotos, o tmux é muitas vezes a diferença entre perder um build de 10 horas por causa de Wi-Fi instável e simplesmente continuar como se nada tivesse acontecido.

Este gerador produz exatamente a invocação tmux para as operações mais comuns (new-session, attach, split, rename, kill). Abaixo você encontra uma referência completa do modelo conceitual, dos bindings padrão, configuração via ~/.tmux.conf, ecossistema de plugins (TPM, resurrect, continuum, yank) e comparações com o Screen e o mais novo Zellij.

O modelo de três camadas: sessão, window, pane

  • Sessão — o contêiner mais externo, persiste entre detach/attach. Normalmente uma por projeto.
  • Window — uma "aba" dentro da sessão. Cada window tem seu próprio layout de panes.
  • Pane — uma subdivisão retangular da window rodando um shell independente. Pode haver dezenas por window se o seu terminal for largo o bastante.

As sessões vivem no servidor tmux (um por usuário, iniciado no primeiro comando). Enquanto o servidor tem ao menos uma sessão, ele mantém seus shells vivos mesmo depois de todos os clientes desconectarem. Mate o servidor (tmux kill-server) e tudo morre — não há persistência em disco por padrão.

Comandos CLI essenciais

tmux new -s dev               # cria sessão chamada "dev"
tmux ls                        # lista sessões ativas
tmux a -t dev                  # anexa à sessão "dev"
tmux a                         # anexa à sessão mais recente
tmux a -d -t dev               # anexa, expulsando outros clientes
tmux kill-session -t dev       # destrói uma sessão
tmux kill-server               # destrói todas as sessões
tmux rename-session -t old new # renomeia sem desanexar
ssh -t user@host tmux a        # SSH direto em um attach de tmux

Bindings padrão (depois da prefix key)

A prefix key padrão é Ctrl-b. Quase todo comando interativo é "prefix, depois tecla". Muitos usuários remapeiam para Ctrl-a (compatível com Screen, mais ergonômico em teclado QWERTY).

  • c — nova window | n / p — próxima / anterior | , — renomear | 0-9 — ir para a window N | w — lista interativa.
  • % — split pane vertical | " — split horizontal | setas — navegar entre panes | z — zoom (pane em tela cheia) | x — kill pane | { / } — trocar de lugar.
  • d — desanexa da sessão | $ — renomeia sessão | s — seletor interativo de sessões.
  • [ — entra no modo de cópia/scroll (saída com q, busca com /) | ] — cola o último buffer.
  • ? — mostra todos os bindings ativos no momento.

Configuração via ~/.tmux.conf

# remapeia prefix para Ctrl-a (estilo Screen)
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# habilita mouse para redimensionar/selecionar/scroll
set -g mouse on

# indexação a partir de 1 (combina com a fileira de números)
set -g base-index 1
setw -g pane-base-index 1

# histórico maior
set -g history-limit 50000

# modo de cópia estilo vi
setw -g mode-keys vi

Recarregue sem reiniciar com tmux source ~/.tmux.conf (ou amarre num atalho).

TPM e os plugins essenciais

O TPM (Tmux Plugin Manager) é o gerenciador de pacotes de facto. Clone-o em ~/.tmux/plugins/tpm, acrescente run '~/.tmux/plugins/tpm/tpm' no fim da config e declare plugins com set -g @plugin '...'.

  • tmux-sensible — defaults sãos (UTF-8, escape mais rápido, histórico maior).
  • tmux-resurrect — salva e restaura o estado completo da sessão (windows, panes, diretórios, até processos em execução) entre reboots. Prefix + Ctrl-s salva, prefix + Ctrl-r restaura.
  • tmux-continuum — roda o resurrect automaticamente a cada 15 minutos e no boot do tmux, para você nunca perder trabalho.
  • tmux-yank — copia para o clipboard do sistema a partir do modo de cópia (xclip, pbcopy, wl-copy dependendo do SO).
  • tmux-pain-control — navegação entre panes no estilo vim com hjkl.

tmux vs Screen vs Zellij

O GNU Screen (1987) é o multiplexer original — ainda vem instalado em muitas distros, sólido como pedra, mas com uma UI datada e pouca capacidade de scripting. O tmux (2007) introduziu arquitetura cliente-servidor, configuração de verdade, plugins, e hoje é padrão na maioria dos ambientes de dev. O Zellij (2021, em Rust) oferece UI mais descoberta com barra de status mostrando todos os bindings, layouts em arquivos KDL e plugins em WebAssembly — mais amigável, porém menos maduro e com ecossistema menor.

FAQ

O tmux substitui o GNU Screen? Funcionalmente sim — toda funcionalidade do Screen tem equivalente em tmux, que ainda adiciona splits verticais, sessões nomeadas, scripting e ecossistema de plugins muito maior. O Screen continua útil só quando o tmux não está disponível num servidor restrito.

Preciso de root para usar tmux? Não. O tmux é um processo por usuário e guarda seu socket em /tmp/tmux-$UID/. Cada usuário tem o próprio servidor.

Dá para rodar tmux dentro de tmux (nested)? Sim, é comum quando um tmux local conecta a um tmux remoto. A instância de dentro também escuta Ctrl-b, então pressione o prefix duas vezes (Ctrl-b Ctrl-b c) para falar com a sessão interna. Alguns usuários remapeiam o prefix interno para Ctrl-s e evitam o duplo-tap.

Por que o color scheme está estranho? Acrescente set -g default-terminal "tmux-256color" e, para terminais true-color, set -as terminal-features ",xterm-256color:RGB" na sua config. Usuários de Vim/Neovim podem precisar também de termguicolors.

Duas pessoas podem compartilhar a mesma sessão tmux? Sim — os dois clientes anexam à mesma sessão e veem o conteúdo ao vivo. Use tmux new-session -t shared para criar windows independentes em um grupo de sessões compartilhado caso queiram visões diferentes.

Ferramentas Relacionadas