Dominando o tmux: o multiplexador de terminal

2026-03-09

post-thumb

Índice

Se você já perdeu o que estava fazendo no terminal porque fechou uma aba sem querer, ou ficou alternando freneticamente entre várias janelas enquanto rodava um servidor, olhava logs e editava código ao mesmo tempo, o tmux vai mudar sua vida.

O tmux é um multiplexador de terminal. Em termos simples: ele permite criar, dividir e gerenciar múltiplas sessões de terminal dentro de uma única janela. Mas o verdadeiro superpoder é que essas sessões persistem mesmo quando você fecha o terminal ou perde a conexão SSH. Tudo continua rodando em segundo plano, esperando você voltar.


Por que usar o tmux?

Antes de sair instalando, vale entender os problemas que o tmux resolve:

  • Persistência: fechou o terminal? Caiu a internet no meio de um SSH? Não importa. Sua sessão continua viva. Basta reconectar.
  • Multiplexação: divida sua tela em painéis e janelas. Rode o servidor em um canto, veja os logs em outro e edite código no terceiro. Tudo na mesma tela.
  • Reprodutibilidade: crie layouts salvos para seus projetos. Um único comando abre todo o seu ambiente de trabalho.
  • Trabalho remoto: essencial para quem trabalha em servidores via SSH. Desconectou? Reconecta e tudo está exatamente onde você deixou.

Se você usa o terminal com frequência, o tmux é daquelas ferramentas que depois de aprender, você se pergunta como vivia sem.


Conceitos fundamentais

O tmux funciona com três camadas principais:

┌─────────────────────────────────────────────┐
│  Sessão (session)                           │
│  ┌───────────────────────────────────────┐  │
│  │  Janela (window) 1                    │  │
│  │  ┌──────────────┐ ┌────────────────┐  │  │
│  │  │  Painel 1    │ │   Painel 2     │  │  │
│  │  │  (pane)      │ │   (pane)       │  │  │
│  │  │              │ │                │  │  │
│  │  └──────────────┘ └────────────────┘  │  │
│  └───────────────────────────────────────┘  │
│  ┌───────────────────────────────────────┐  │
│  │  Janela (window) 2                    │  │
│  └───────────────────────────────────────┘  │
└─────────────────────────────────────────────┘
  • Sessão: o contêiner principal. Você pode ter várias sessões (uma por projeto, por exemplo).
  • Janela: funciona como abas dentro de uma sessão. Cada janela ocupa a tela inteira.
  • Painel: divisões dentro de uma janela. É aqui que a mágica da tela dividida acontece.

Pense assim: sessões são seus projetos, janelas são as telas do projeto e painéis são as divisões dentro de cada tela.


Instalação

macOS

Se você usa Homebrew (e deveria), a instalação é direta:

brew install tmux

Ubuntu / Debian

sudo apt update && sudo apt install tmux -y

Fedora

sudo dnf install tmux

Windows (via WSL)

Se você configurou o WSL seguindo o nosso guia anterior, basta abrir o terminal Ubuntu e rodar:

sudo apt update && sudo apt install tmux -y

Verificar a instalação

tmux -V

Deve aparecer algo como tmux 3.5a.


Primeiros passos

Criando sua primeira sessão

Para iniciar o tmux, simplesmente rode:

tmux

Pronto. Você está dentro de uma sessão tmux. Perceba a barra verde (ou colorida) na parte inferior da tela: essa é a barra de status do tmux, mostrando informações como o nome da sessão e as janelas abertas.

Mas o ideal é sempre criar sessões nomeadas, para facilitar a organização:

tmux new -s meu-projeto

Isso cria uma sessão chamada meu-projeto. Muito mais fácil de identificar quando você tiver várias sessões rodando.

O prefixo: a tecla mágica

Toda interação com o tmux começa com um prefixo. Por padrão, é Ctrl + b. Você pressiona o prefixo, solta, e depois pressiona a tecla do comando.

Por exemplo, para dividir a tela verticalmente:

  1. Pressione Ctrl + b
  2. Solte
  3. Pressione %

No começo parece estranho, mas rapidamente vira instinto.


Comandos essenciais

Aqui está a referência rápida dos comandos que você vai usar no dia a dia. Todos começam com o prefixo Ctrl + b:

Sessões

AtalhoAção
tmux new -s nomeCria uma nova sessão nomeada
tmux lsLista todas as sessões ativas
tmux attach -t nomeReconecta a uma sessão existente
tmux kill-session -t nomeEncerra uma sessão
Ctrl + bdDesconecta da sessão (ela continua rodando)
Ctrl + bsLista sessões e permite trocar entre elas
Ctrl + b$Renomeia a sessão atual

Janelas (abas)

AtalhoAção
Ctrl + bcCria uma nova janela
Ctrl + bnVai para a próxima janela
Ctrl + bpVai para a janela anterior
Ctrl + b0-9Vai para a janela pelo número
Ctrl + b,Renomeia a janela atual
Ctrl + b&Fecha a janela atual

Painéis (divisões de tela)

AtalhoAção
Ctrl + b%Divide verticalmente (lado a lado)
Ctrl + b"Divide horizontalmente (um em cima do outro)
Ctrl + bsetaMove o foco entre painéis
Ctrl + bzZoom: maximiza/restaura o painel atual
Ctrl + bxFecha o painel atual
Ctrl + b{Move o painel para a esquerda
Ctrl + b}Move o painel para a direita
Ctrl + bespaçoAlterna entre layouts de painéis

Outros

AtalhoAção
Ctrl + b[Entra no modo de scroll/cópia (saia com q)
Ctrl + btMostra um relógio (sim, é inútil, mas divertido)
Ctrl + b?Lista todos os atalhos disponíveis

Workflow na prática

Vamos montar um cenário real. Digamos que você está trabalhando num projeto web e quer:

  • Um painel para o editor de código
  • Um painel para o servidor de desenvolvimento
  • Um painel para comandos git

Passo a passo

# Cria uma sessão para o projeto
tmux new -s webapp

# Agora você está no primeiro painel; use-o para editar código
# Divide verticalmente (cria painel à direita)
# Ctrl + b, %

# No painel da direita, rode o servidor
npm run dev

# Divide o painel da direita horizontalmente
# Ctrl + b, "

# No painel de baixo à direita, use para git
git status

O resultado visual fica assim:

┌──────────────────────┬──────────────────┐
│                      │  npm run dev     │
│   editor / código    │  (servidor)      │
│                      ├──────────────────┤
│                      │  git status      │
│                      │  (git)           │
└──────────────────────┴──────────────────┘

Para navegar entre os painéis, use Ctrl + b seguido das setas do teclado. Para maximizar temporariamente um painel (zoom), use Ctrl + bz. Pressione novamente para restaurar.


Desconectar e reconectar: o superpoder

Essa é a funcionalidade que faz o tmux valer a pena. Imagine que você está rodando um build demorado ou monitorando logs:

# Desconecta da sessão (tudo continua rodando)
# Ctrl + b, d

# Vai embora, fecha o terminal, dorme...

# No dia seguinte, lista as sessões
tmux ls

# Reconecta
tmux attach -t webapp

Tudo está exatamente como você deixou. Servidor rodando, logs fluindo, código aberto. Isso é especialmente útil quando você trabalha com servidores remotos via SSH.


Configurando o tmux do seu jeito

O arquivo de configuração fica em ~/.tmux.conf. Se ele não existir, basta criar. Aqui estão algumas configurações que vão melhorar bastante sua experiência:

# Muda o prefixo de Ctrl+b para Ctrl+a (mais confortável)
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# Ativa o mouse (scroll, clicar em painéis, redimensionar)
set -g mouse on

# Divide painéis com | e - (mais intuitivo que % e ")
bind | split-window -h
bind - split-window -v
unbind '"'
unbind %

# Começa a contar janelas e painéis do 1 (em vez de 0)
set -g base-index 1
setw -g pane-base-index 1

# Renumera janelas quando uma é fechada
set -g renumber-windows on

# Aumenta o histórico de scroll
set -g history-limit 10000

# Reduz o delay do escape (importante para Vim/Neovim)
set -sg escape-time 10

# Recarrega a config com prefixo + r
bind r source-file ~/.tmux.conf \; display "Config recarregada!"

Depois de criar ou editar o arquivo, recarregue a configuração:

tmux source-file ~/.tmux.conf

Ou, se você adicionou o atalho acima, basta pressionar Ctrl + ar.


Deixando bonito com temas

O tmux padrão é funcional, mas não é exatamente bonito. O Catppuccin e o Dracula são dois temas populares que transformam a aparência.

Uma opção ainda mais prática é o TPM (Tmux Plugin Manager), que facilita a instalação de plugins e temas:

git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

Adicione ao final do seu ~/.tmux.conf:

# Lista de plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'catppuccin/tmux'

# Inicializa o TPM (manter esta linha no final do arquivo)
run '~/.tmux/plugins/tpm/tpm'

Dentro do tmux, pressione Ctrl + aI (letra I maiúscula) para instalar os plugins.


tmux + ferramentas de IA

Se você usa o Claude Code ou Codex CLI, o tmux é o parceiro perfeito. Um layout produtivo:

┌──────────────────────┬──────────────────┐
│                      │                  │
│   Claude Code /      │  servidor /      │
│   Codex CLI          │  build           │
│                      │                  │
│                      ├──────────────────┤
│                      │                  │
│                      │  git / testes    │
│                      │                  │
└──────────────────────┴──────────────────┘

O agente de IA trabalha no painel da esquerda enquanto você monitora o servidor e roda testes nos painéis da direita. Sem precisar alternar entre abas.


Script para automatizar seu ambiente

Cansou de montar o layout manualmente toda vez? Crie um script. Salve como ~/dev-tmux.sh:

#!/bin/bash

SESSION="dev"

# Se a sessão já existir, apenas reconecta
tmux has-session -t $SESSION 2>/dev/null
if [ $? -eq 0 ]; then
  tmux attach -t $SESSION
  exit 0
fi

# Cria a sessão com a primeira janela
tmux new-session -d -s $SESSION -n "code"

# Divide: painel da direita para servidor
tmux split-window -h -t $SESSION:1

# Divide o painel da direita: git embaixo
tmux split-window -v -t $SESSION:1.2

# Foco no painel principal (esquerda)
tmux select-pane -t $SESSION:1.1

# Conecta à sessão
tmux attach -t $SESSION

Torne executável e rode:

chmod +x ~/dev-tmux.sh
~/dev-tmux.sh

Toda vez que rodar esse script, ele vai criar (ou reconectar a) uma sessão com seu layout pronto.


Referência rápida

ComandoO que faz
tmux new -s nomeCria sessão nomeada
tmux lsLista sessões
tmux attach -t nomeReconecta a sessão
tmux kill-session -t nomeEncerra sessão
Ctrl+b dDesconecta da sessão
Ctrl+b cNova janela
Ctrl+b %Divide verticalmente
Ctrl+b "Divide horizontalmente
Ctrl+b setaNavega entre painéis
Ctrl+b zZoom no painel
Ctrl+b [Modo scroll
Ctrl+b ?Ajuda

Alternativas ao tmux

Vale mencionar que existem outras ferramentas que resolvem problemas parecidos:

  • Zellij: alternativa moderna escrita em Rust. Tem uma curva de aprendizado menor e atalhos mais intuitivos. Se o tmux parecer complexo demais no início, o Zellij é uma excelente porta de entrada.
  • GNU Screen: o avô dos multiplexadores. Mais simples, menos funcionalidades, mas presente em quase todo servidor Linux por padrão.

Próximos passos

Agora que você tem o tmux no seu arsenal:

  1. Comece simples: use sessões nomeadas e aprenda a desconectar/reconectar
  2. Divida a tela: pratique os comandos de painéis no seu fluxo diário
  3. Configure: crie seu ~/.tmux.conf com as opções que fazem sentido para você
  4. Automatize: monte scripts para seus projetos mais frequentes
  5. Explore plugins: o TPM abre um mundo de possibilidades

O tmux é uma daquelas ferramentas que recompensa o investimento. Pode parecer verboso no início, mas depois de uma semana usando, você não vai querer voltar.

Curtiu? Me manda um salve lá no twitter @lauralesteves