Primeiros Passos com tmux - Básico de Multiplexação de Terminal

Primeiros Passos com tmux - Básico de Multiplexação de Terminal

O que você vai conseguir fazer

  • Preparar com o tmux um espaço de trabalho que sobrevive a queda do SSH
  • Explicar as três camadas: sessão, janela e painel
  • Pausar o trabalho com detach e retomar depois com attach

Pré-requisitos (leia estes primeiro)

O Que Você Vai Aprender

  • Manter o trabalho rodando em um servidor remoto mesmo quando o SSH desconectar usando tmux
  • Entender o modelo de três camadas: sessões, janelas, painéis
  • Ficar confortável com combinações de tecla prefix começando com Ctrl+b
  • Desconectar (sair temporariamente) e reconectar (voltar) livremente sem perder o estado
  • Dividir uma única tela de terminalUm programa interativo que interpreta os comandos digitados e os executa. para executar várias tarefas em paralelo

Público-alvo: Qualquer pessoa que trabalha com SSH em servidores remotos e já perdeu progresso por causa de uma conexão instável, ou qualquer pessoa cansada de abrir apenas um terminal por vez.

Introdução: O Dia em que Lina Perdeu Seus Logs

Lina: Linny-senpai, acabei de perder uma coleta de logs de longa duração em um servidor remoto! Meu Wi-Fi piscou por um segundo, o SSH morreu, e agora tenho que começar tudo de novo...
Veterano Linny: Então você estava trabalhando por SSH. O SSH é a forma de conectar com segurança do seu computador até outro que está longe - também chamada de conexão remota.
Veterano Linny: E esse tipo de acidente é exatamente o que o tmux evita.
Lina: tmux? Isso é um novo gadget tecnológico?
Veterano Linny: É um "multiplexador de terminal." Um multiplexador é apenas uma ferramenta que guarda várias telas dentro de uma tela.
Lina: Várias telas dentro de uma?
Veterano Linny: Isso. E essas telas podem ficar no servidor. Sua conexão pode cair, mas as telas continuam lá. Ao reconectar, você retoma exatamente de onde parou.
Lina: Isso é incrível! Como funciona por baixo dos panos?
Veterano Linny: Um programa separado, chamado servidor tmux, guarda o conteúdo das telas para você. Ele roda a parte da sua conexão SSH. O SSH pode morrer - o servidor tmux continua rodando.
Veterano Linny: Hoje vamos aprender três palavras em ordem: (1) sessão, (2) janela, (3) painel.

O Padrão Prático

  • Antes de trabalhos longos, digite tmux primeiro (isso sozinho elimina 90% dos acidentes com SSH)
  • Para sair temporariamente: Ctrl+b -> d (detach)
  • Para voltar: tmux attach - sua tela está de volta
  • Mais telas? Use janelas (Ctrl+b c)
  • Dividir a tela atual? Use painéis (Ctrl+b % / Ctrl+b ")

Aprenda primeiro a saída de emergência

O tmux muda a aparência da tela. Por isso muitos iniciantes se sentem presos. Na dúvida, estes três movimentos resolvem.

Situação difícil Como sair
Perdido dentro do tmux Pressione Ctrl+b, solte e depois pressione d (detach)
Quer a tela de volta após o detach tmux attach
Não sabe se está dentro ou fora Execute echo $TMUX - qualquer saída significa que você está dentro do tmux

Ctrl+b -> d sempre funciona. Essas duas teclas devolvem você ao terminal normal.

E se você destruir uma sessão, o que se perde é apenas a tela. Os arquivos salvos continuam onde estão, então experimente com calma.

1. Instalar o tmux

Conclusão: tmux nem sempre vem pré-instalado; verifique com tmux -V e instale via apt ou dnf.

Lina: O tmux não vem pré-instalado?
Veterano Linny: Depende da distro - abreviação de distribuição, ou seja, um sabor de Linux como Ubuntu ou CentOS. Sempre verifique primeiro; esse é um bom hábito.

Verificar a Versão

$ tmux -V
tmux 3.4

Se você ver "command not found", precisa instalar.

Ubuntu / Debian

$ sudo apt update
$ sudo apt install tmux

CentOS / RHEL / Rocky Linux

$ sudo dnf install tmux

Não consegue instalar? Em servidores compartilhados, muitas vezes o sudo (a forma de executar um comando como administrador) não está disponível. Nesse caso não instale por conta própria - peça ao administrador do servidor.

2. Sua Primeira Sessão tmux

Conclusão: Basta digitar tmux para iniciar uma sessão; a barra de status verde confirma que você está dentro.

Veterano Linny: Uma vez instalado, basta digitar tmux e pressionar Enter. Nada mais.
Lina: Isso parece um pouco assustador...
Veterano Linny: Não se preocupe, Ctrl+b -> d sempre te tira de lá com segurança. Lembre-se apenas dessa saída de emergência e você não vai se perder.

O que é uma sessão

Uma sessão é um espaço de trabalho que o tmux guarda para você. Pense em reservar uma mesa em um café. Você pode deixar suas coisas (os comandos em execução) sobre a mesa. Ao se afastar, suas coisas continuam lá quando você voltar.

Abrir uma Sessão

$ tmux

Você verá uma barra de status verde aparecer na parte inferior. Essa é a prova visual de que você está dentro do tmux.

[0] 0:bash*                                              "hostname" 14:00 23-May-26

Experimente Alguns Comandos

Dentro, é apenas um shell normal. O shell é o programa que recebe os comandos que você digita e os executa - bash e zsh são os mais comuns. Tente executar qualquer coisa.

$ echo "running inside tmux"
$ pwd
Lina: Parece exatamente como um terminal normal?
Veterano Linny: Esse é o ponto - visualmente idêntico. A diferença é que "esta tela vive no servidor." Em seguida, vamos desconectar para sentir isso de verdade.

3. Detach e Attach - O Recurso Principal do tmux

Conclusão: Desconecte com Ctrl+b d, retorne com tmux attach; a sessão vive no servidor.

Veterano Linny: Hora do evento principal: detach e attach.
Lina: "Detach" parece intimidador...
Veterano Linny: Só a palavra assusta. Detach significa "afastar-se da mesa". Attach significa "voltar para ela".
Veterano Linny: Pense em sair de casa. Você apaga a luz, mas o cômodo continua lá. O detach funciona igual: a tela continua no servidor.

Detach: Ctrl+b -> d

Enquanto estiver dentro do tmux, pressione essas teclas em sequência:

Ctrl+b
d

A barra de status verde desaparece e você está de volta ao seu terminal normal.

[detached (from session 0)]
$

Modelo mental importante: Você não fechou a sessão, você saiu temporariamente. No lado do servidor, a sessão tmux ainda está viva e funcionando.

Listar Sessões

$ tmux ls
0: 1 windows (created Fri May 23 14:00:00 2026)

A sessão 0 ainda está lá. Viva e esperando.

Attach: Voltar

$ tmux attach

Sua tela volta exatamente como você deixou. Histórico de comandos, arquivos abertos, processos em execução - tudo preservado.

Lina: Espere, isso é genuinamente emocionante! "Desconexão SSH não é mais assustadora" é realmente só isso?
Veterano Linny: Sim. O fluxo de trabalho do mundo real é: Conecte via SSH, depois imediatamente tmux. Daí em diante você só trabalha normalmente.
Veterano Linny: O Wi-Fi cai? Fecha o notebook? A sessão tmux continua viva. Conecte via SSH de novo depois, execute tmux attach, e retome como se nada tivesse acontecido.

O Erro da Lina: Destruir a Sessão com exit

Lina: Senpai, socorro! Digitei exit para sair temporariamente, e agora tmux attach diz "no sessions". Para onde foi meu trabalho?
Veterano Linny: Sinto dizer, mas ele se perdeu. exit é o comando que fecha a sessão. Não é a mesma coisa que detach.
Lina: Mas os dois pareciam iguais para mim...!
Veterano Linny: Há um jeito fácil de diferenciar. Ctrl+b -> d te afasta da mesa. exit dobra a mesa e guarda. A partir de hoje, use exit só quando tiver realmente terminado.
Lina: Então "sair" e "fechar" são coisas diferentes. Vou treinar Ctrl+b -> d até virar automático!

Confusão comum: Digitar exit no shell destrói a sessão. Uma sessão destruída não volta com tmux attach. A única forma de sair temporariamente é Ctrl+b -> d (detach).

4. O Que É uma Tecla Prefix?

Conclusão: A tecla prefix (Ctrl+b) sinaliza para o tmux: solte-a, depois pressione a tecla de comando.

Lina: Você sempre diz "Ctrl+b" - o que exatamente é isso?
Veterano Linny: É o sinal que diz ao tmux "a próxima tecla é para você, não para o shell." Chamamos isso de tecla prefix - prefix significa apenas "algo colocado na frente". O padrão é Ctrl+b.
Lina: Entendi - teclas normais vão para o shell dentro, mas teclas após o prefix vão para o tmux em si.
Veterano Linny: Exatamente. Após Ctrl+b, d significa "detach", c significa "nova janela", e assim por diante. O prefix é como o tmux evita roubar cada tecla do seu shell.

O Padrão do Prefix

Ctrl+b -> alguma tecla

Ctrl+b não é mantido pressionado. Pressione e solte Ctrl+b, depois pressione a próxima tecla.

Os cinco comandos prefix que vale memorizar primeiro

Teclas Ação
Ctrl+b d Detach
Ctrl+b c Nova janela
Ctrl+b n Próxima janela
Ctrl+b % Dividir painel vertical
Ctrl+b " Dividir painel horizontal

5. Janelas: Alternando Entre Telas

Conclusão: Janelas são como abas do navegador: crie com Ctrl+b c, alterne com n/p/números.

Veterano Linny: Dentro de uma sessão, o tmux tem um conceito chamado "janelas". Uma janela é o equivalente no tmux a uma aba do navegador.
Lina: Então uma sessão pode ter várias abas?
Veterano Linny: Exatamente. "Aba 1 acompanha o log, aba 2 edita config, aba 3 roda um build" - você pode dividir seu foco mental de forma limpa.

Criar uma Nova Janela

Ctrl+b
c

c é de create (criar). Uma nova janela abre e você muda para ela.

A barra de status agora mostra:

[0] 0:bash- 1:bash*

Duas janelas: 0 e 1. * marca onde você está; - marca a última que você visitou.

Alternar Entre Janelas

Ctrl+b n   # Proxima janela
Ctrl+b p   # Janela anterior
Ctrl+b 0   # Ir para janela 0
Ctrl+b 1   # Ir para janela 1

Fechar uma Janela

Digite exit no shell daquela janela. Ou use Ctrl+b & (pede confirmação).

6. Painéis: Dividindo Uma Tela

Conclusão: Painéis dividem uma janela: Ctrl+b % vai esquerda/direita, a tecla aspasEnvolver um texto entre aspas (' ou ") para que seja tratado como um único valor, por exemplo um que tenha espaços. vai cima/baixo.

Lina: Janelas fazem sentido! Mas "dividir a tela" é algo diferente?
Veterano Linny: Certo - são os painéis. Um painel é uma seção de uma janela, como uma vidraça dentro de um caixilho. Os painéis dividem uma janela em regiões lado a lado.
Lina: Então eu poderia acompanhar um log na esquerda e editar um arquivo na direita?
Veterano Linny: Exatamente. Ver os dois ao mesmo tempo economiza muita alternância de tela.

Dividir Verticalmente (Esquerda e Direita)

Ctrl+b
%

A tela se divide com uma linha vertical - dois painéis, esquerda e direita.

Dividir Horizontalmente (Cima e Baixo)

Ctrl+b
"

A tela se divide com uma linha horizontal - dois painéis, cima e baixo.

Truque de memória:

  • % parece uma barra vertical -> divisão vertical (esquerda/direita)
  • " parece uma marca horizontal -> divisão horizontal (cima/baixo)

Muitas pessoas acham isso invertido no início. O formato da tecla é o mnemonic mais fácil.

Mover Entre Painéis

Ctrl+b <-   # Mover para o painel esquerdo
Ctrl+b ->   # Mover para o painel direito
Ctrl+b seta cima   # Mover para o painel superior
Ctrl+b seta baixo   # Mover para o painel inferior
Ctrl+b o   # Ciclar entre paineis

Fechar um Painel

Digite exit naquele painel, ou pressione Ctrl+b x (pede confirmação).

7. Armadilhas Comuns para Iniciantes

Conclusão: As três grandes armadilhas: segurar o prefix, aninhar tmux, e exit matando a sessão.

Lina: Senpai, quais erros os iniciantes normalmente cometem?
Veterano Linny: Três para ficar atento. Conhecer esses cobre a maioria das armadilhas do primeiro mês.

Armadilha 1: Segurar Ctrl+b Pressionado

Sintoma: A tecla após o prefix não faz nada, ou se comporta estranhamente.

Causa: Você ainda está segurando Ctrl+b quando pressiona a próxima tecla.

Solução: Pressione Ctrl+b, solte, depois pressione a próxima tecla.

Armadilha 2: Executar tmux Dentro do tmux

Sintoma: Você digitou tmux, nenhuma tela nova abriu e apenas esta mensagem apareceu.

sessions should be nested with care, unset $TMUX to force

Causa: Você já está dentro do tmux. Por padrão, o tmux se recusa a rodar aninhado.

Solução: Nada quebrou. Continue usando a sessão em que você já está. Para confirmar onde está, execute echo $TMUX - qualquer saída significa que você está dentro do tmux.

Armadilha 3: Matou a Sessão com exit

Sintoma: tmux attach diz "no sessions."

Causa: Você digitou exit pensando que estava "saindo temporariamente", mas exit destrói a sessão.

Solução: Não tem como desfazer. Da próxima vez, use Ctrl+b -> d para desconectar.

8. O Template de Produção: Proteja o Trabalho SSH com tmux

Conclusão: Conecte via SSH, execute tmux attach ou tmux, desconecte com Ctrl+b d, retorne com tmux attach.

Padrão seguro para copiar e colar

# 1. Conecte via SSH no servidor
ssh user@server

# 2. Imediatamente entre no tmux (attach se uma sessao existir, senao crie)
tmux attach || tmux

# 3. Faca seu trabalho normalmente (acompanhar logs longos, builds, backups, etc.)
tail -f /var/log/syslog
# ...

# 4. Para sair temporariamente: Ctrl+b -> d (detach)
# 5. Agora o SSH pode morrer com seguranca - a sessao vive no servidor

# 6. Para voltar: Conecte via SSH de novo, depois
tmux attach

Esse único padrão elimina a maioria das perdas de trabalho relacionadas ao SSH.

Mini Desafios - Pratique

Conclusão: Pratique detach/attach, alternância de janelas e divisão de painéis para memorizar.

Veterano Linny: O conhecimento só fixa quando você move os dedos. Tente estes.

Desafio 1: Abra uma Sessão, Desconecte, Reconecte

Tarefa: Abra uma sessão tmux. Afaste-se dela e depois volte.

Ver dica 1 (direção)

Use o movimento que "afasta", não o que fecha. Depois de se afastar, verifique se a sessão ainda aparece na lista.

Ver dica 2 (nome do comando)

Abra com tmux. Afaste-se com Ctrl+b -> d. Liste com tmux ls. Volte com tmux attach.

Ver resposta
$ tmux
# -> voce esta dentro do tmux agora

$ echo "test"

# Pressione Ctrl+b -> d para desconectar

$ tmux ls
# -> confirme que a sessao ainda esta viva

$ tmux attach
# -> sua tela retorna

Desafio 2: Crie Duas Janelas e Alterne Entre Elas

Tarefa: Crie uma segunda janela dentro do tmux. Alterne entre as duas.

Ver dica 1 (direção)

Uma janela é a versão tmux de uma aba do navegador. Primeiro faça o movimento de "criar", depois tente selecionar a janela pelo número.

Ver dica 2 (nome do comando)

Crie com Ctrl+b -> c. Selecione pelo número com Ctrl+b -> 0 ou Ctrl+b -> 1. Cicle com Ctrl+b -> n.

Ver resposta
$ tmux

# Ctrl+b c para criar janela 1
# Ctrl+b 0 para ir para janela 0
# Ctrl+b 1 para ir para janela 1
# Ctrl+b n para ciclar para a proxima

Desafio 3: Divida Uma Janela em Painéis

Tarefa: Divida a tela em esquerda e direita. Depois divida em cima e baixo, e execute um comando diferente em cada painel.

Ver dica 1 (direção)

Dois símbolos fazem a divisão. Associe o formato de cada tecla à direção da divisão. O movimento usa as setas.

Ver dica 2 (nome do comando)

Divida esquerda/direita com Ctrl+b -> %. Divida cima/baixo com Ctrl+b -> ". Mova com Ctrl+b -> seta.

Ver resposta
$ tmux

# Ctrl+b % para dividir verticalmente
# Ctrl+b " para dividir horizontalmente
# Ctrl+b setas para mover entre paineis
# Execute comandos diferentes em cada painel (ex., top, df -h, tail -f /var/log/syslog)
Lina: Consegui! Assistir a vários fluxos de dados lado a lado é incrível.
Veterano Linny: Não é? Uma vez que seus olhos se acostumam, voltar para terminais de painel único parece limitador. A partir daqui, explore sessões nomeadas e personalize ~/.tmux.conf.

Resumo em Três Linhas

  • tmux para entrar, Ctrl+b -> d para sair, tmux attach para voltar - esse trio elimina desastres de desconexão SSH
  • A tecla prefix (Ctrl+b) seguida de uma tecla de comando é o núcleo rítmico da operação do tmux
  • Manter a hierarquia sessão > janela > painel em mente desbloqueia um trabalho paralelo dramaticamente mais eficiente

Próximas Leituras

Lina: Aprendi o básico! O que devo aprender em seguida?
Veterano Linny: Três direções. (1) Para monitorar processos de longa duração: Básico de Gerenciamento de Processos com top e kill. (2) Para mover arquivos entre servidores: scp vs rsync. (3) Se os fundamentos do terminal ainda parecem instáveis, Básico de pwd, cd e ls é um bom lugar para revisitar.
Lina: Graças ao tmux, o medo de "perder meu trabalho" finalmente se foi!
Veterano Linny: Enquanto você fizer trabalho com SSH, o tmux vai te retribuir diariamente. Use-o todos os dias até virar memória muscular.