Como Instalar e Usar tmux no Ubuntu: Um Guia Completo 2025
Introdução
tmux (Terminal Multiplexer) é uma poderosa ferramenta de linha de comando que aprimora sua experiência no terminal no Ubuntu e em outros sistemas semelhantes ao Unix. Ele permite que você crie várias sessões de terminal dentro de uma única janela, tornando-se uma ferramenta inestimável para desenvolvedores, administradores de sistema e usuários avançados.
O que é tmux?
tmux é um multiplexador de terminal que permite que você:
- Crie várias sessões de terminal dentro de uma única janela
- Mantenha programas em execução mesmo após desconectar do SSH
- Divida sua janela de terminal em vários painéis
- Troque entre diferentes sessões de terminal de forma contínua
- Compartilhe sessões de terminal com outros usuários
Benefícios de Usar tmux
Ao trabalhar em servidores Ubuntu ou máquinas locais, o tmux oferece várias vantagens convincentes:
-
Sessões Persistentes: Seu trabalho continua em execução mesmo que sua conexão SSH caia ou você feche seu terminal acidentalmente. Basta reanexar-se à sua sessão, e tudo estará exatamente como você deixou.
-
Produtividade Aprimorada: Trabalhe com várias janelas de terminal simultaneamente sem desorganizar sua área de trabalho. Você pode alternar facilmente entre diferentes tarefas enquanto mantém uma visão clara do seu trabalho.
-
Colaboração Aprimorada: Compartilhe suas sessões de terminal com membros da equipe, tornando-o perfeito para programação em par ou solução de problemas juntos.
Requisitos do Sistema
Antes de instalar o tmux no Ubuntu, certifique-se de que seu sistema atende a estes requisitos mínimos:
- Ubuntu 18.04 LTS ou posterior
- Familiaridade básica com o terminal
- Privilégios de sistema suficientes (acesso sudo) para instalação
- Pelo menos 50MB de espaço livre em disco
Métodos de Instalação
Existem dois métodos principais para instalar o tmux no Ubuntu: usando o gerenciador de pacotes apt ou compilando a partir do código-fonte. Vamos explorar ambas as opções em detalhes.
Usando o Gerenciador de Pacotes apt
A maneira mais simples e recomendada de instalar o tmux é através do gerenciador de pacotes do Ubuntu, o apt. Veja como fazer isso:
# Atualizar lista de pacotes
sudo apt update
# Instalar tmux
sudo apt install tmux -y
# Verificar a instalação
tmux -V
Esse método lida automaticamente com as dependências e fornece uma versão estável do tmux que foi testada com sua versão do Ubuntu.
Compilando a partir do Código-Fonte
Para usuários que precisam dos recursos mais recentes ou versões específicas, compilar a partir do código-fonte é uma opção:
# Instalar dependências necessárias
sudo apt install git automake build-essential libevent-dev ncurses-dev
# Clonar o código-fonte
git clone https://github.com/tmux/tmux.git
cd tmux
# Compilar e instalar
sh autogen.sh
./configure
make
sudo make install
Comparação de Versões
Vamos comparar os diferentes métodos de instalação:
-
Instalação APT:
- Prós: Fácil de instalar e atualizar, versão estável, gerenciamento automático de dependências
- Contras: Pode não ser a versão mais recente
- Versão atual nos repositórios do Ubuntu: Tipicamente 1-2 versões atrás da mais recente
-
Instalação a partir do Código-Fonte:
- Prós: Acesso aos recursos mais recentes, capacidade de personalizar a compilação
- Contras: Requer gerenciamento manual de dependências, processo de instalação mais complexo
- Última versão disponível: Sempre atualizada com o repositório oficial
Após a instalação, você pode verificar sua versão do tmux executando:
tmux -V
Configuração Básica
O comportamento do tmux pode ser personalizado através de seu arquivo de configuração e várias configurações. Vamos explorar como configurar e personalizar o tmux para atender às suas necessidades.
Localização do Arquivo de Configuração
O tmux procura seu arquivo de configuração em seu diretório home:
# Criar seu arquivo de configuração do tmux
touch ~/.tmux.conf
# Abrir com seu editor de texto favorito
nano ~/.tmux.conf
Configurações Essenciais
Aqui estão algumas configurações comumente usadas para aprimorar sua experiência com o tmux:
# Mudar a tecla de prefixo para Ctrl+a (mais conveniente que o padrão Ctrl+b)
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# Habilitar suporte a mouse
set -g mouse on
# Começar a numeração das janelas em 1 (em vez de 0)
set -g base-index 1
# Definir teclas de divisão de janela mais fáceis
bind-key v split-window -h
bind-key h split-window -v
# Definir teclas de movimento de janela mais fáceis
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Melhorar cores
set -g default-terminal "screen-256color"
# Definir tamanho do buffer de rolagem
set -g history-limit 10000
Personalizando Teclas de Atalho
Você pode personalizar as teclas de atalho para tornar o tmux mais intuitivo e eficiente para seu fluxo de trabalho:
-
Sintaxe Básica de Teclas de Atalho:
bind-key key command bind key command
-
Vínculos Comuns Personalizados:
# Recarregar arquivo de configuração bind r source-file ~/.tmux.conf \; display "Configuração recarregada!" # Ciclo rápido entre painéis unbind ^A bind ^A select-pane -t :.+ # Comandos de divisão mais intuitivos bind | split-window -h bind - split-window -v
Após fazer alterações em seu arquivo de configuração, você pode:
- Reiniciar o tmux para que as alterações tenham efeito
- Ou recarregar a configuração enquanto o tmux está em execução pressionando
prefix
+r
(se você adicionou o vínculo de recarga acima)
Começando com tmux
Após a instalação e configuração básica, vamos aprender como usar o tmux de forma eficaz. Esta seção cobre os comandos e operações essenciais que você precisará para o uso diário.
Iniciando Sua Primeira Sessão
Aqui estão os comandos básicos para iniciar e gerenciar sessões do tmux:
# Iniciar uma nova sessão
tmux
# Iniciar uma nova sessão nomeada
tmux new -s mysession
# Listar todas as sessões
tmux ls
# Anexar-se a uma sessão existente
tmux attach -t mysession
# Desanexar da sessão atual (dentro do tmux)
# Pressione a tecla de prefixo (Ctrl+b ou Ctrl+a) e depois d
Comandos e Atalhos Básicos
Todos os comandos do tmux começam com uma tecla de prefixo (padrão: Ctrl+b). Aqui estão atalhos essenciais:
# Gerenciamento de Sessões
prefix + d # Desanexar da sessão
prefix + s # Listar sessões
prefix + $ # Renomear sessão atual
# Gerenciamento de Janelas
prefix + c # Criar nova janela
prefix + n # Mover para a próxima janela
prefix + p # Mover para a janela anterior
prefix + , # Renomear janela atual
prefix + w # Listar janelas
# Operações de Painéis
prefix + % # Dividir painel verticalmente
prefix + " # Dividir painel horizontalmente
prefix + o # Alternar para o próximo painel
prefix + x # Fechar painel atual
Gerenciamento de Sessões
As sessões são o nível mais alto de organização no tmux. Aqui está como gerenciá-las de forma eficaz:
-
Criando Sessões:
# Criar uma nova sessão com um nome específico tmux new -s development # Criar uma nova sessão com um diretório de trabalho específico tmux new -s project -c ~/projects/myproject
-
Gerenciando Múltiplas Sessões:
# Alternar entre sessões tmux switch -t session_name # Matar uma sessão específica tmux kill-session -t session_name # Matar todas as sessões, exceto a atual tmux kill-session -a
-
Navegação entre Sessões:
- Use
prefix + (
para mover para a sessão anterior - Use
prefix + )
para mover para a próxima sessão - Use
prefix + s
para mostrar a lista de sessões e selecionar interativamente
- Use
Recursos Avançados
O tmux fornece recursos poderosos para usuários avançados que podem aumentar significativamente a produtividade. Vamos explorar algumas dessas capacidades avançadas.
Gerenciamento de Janelas
As janelas no tmux funcionam de maneira semelhante às abas em um terminal moderno. Aqui estão algumas operações avançadas de janelas:
# Comandos Avançados de Janelas
prefix + . # Mover janela para um número diferente
prefix + f # Encontrar janela pelo nome
prefix + & # Matar janela
prefix + 0-9 # Alternar para a janela pelo número
# Trocar posições de janelas
swap-window -s 2 -t 1 # Trocar janelas 2 e 1
swap-window -t -1 # Mover janela atual para a esquerda
Operações de Painéis
Os painéis permitem que você divida sua janela em várias seções. Aqui estão técnicas avançadas de gerenciamento de painéis:
-
Redimensionando Painéis:
# Usando prefixo seguido de: Alt + Teclas de seta # Redimensionar painel na direção da seta # Ou mantenha o prefixo e pressione: Ctrl + Teclas de seta # Redimensionar painel em incrementos maiores
-
Navegação Avançada entre Painéis:
prefix + { # Mover painel atual para a esquerda prefix + } # Mover painel atual para a direita prefix + z # Alternar zoom do painel (maximizar/restaurar) prefix + ! # Converter painel em uma janela
-
Sincronizar Painéis:
# Alternar sincronização de painéis (enviar comandos para todos os painéis) :setw synchronize-panes
Modo de Cópia e Rolagem
O modo de cópia permite que você role, pesquise e copie texto:
-
Entrando e Navegando no Modo de Cópia:
prefix + [ # Entrar no modo de cópia q # Sair do modo de cópia Space # Iniciar seleção Enter # Copiar seleção # Navegação no modo de cópia: Teclas de seta # Mover o cursor Page Up/Down # Rolar página para cima/baixo g # Ir para o topo G # Ir para o fundo / # Pesquisar para frente ? # Pesquisar para trás n # Próxima correspondência de pesquisa N # Correspondência de pesquisa anterior
-
Operações Avançadas de Cópia:
# Habilitar modo vi para melhores operações de cópia set-window-option -g mode-keys vi # Vínculos de teclas personalizados para o modo de cópia bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi y send-keys -X copy-selection
-
Integração com a Área de Transferência do Sistema:
# No Ubuntu, instale o xclip primeiro: sudo apt install xclip # Adicione ao .tmux.conf: bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -sel clip -i"
Esses recursos avançados podem ser combinados para criar fluxos de trabalho poderosos. Por exemplo, você pode:
- Configurar vários painéis para monitorar diferentes serviços
- Usar painéis sincronizados para executar comandos em vários servidores simultaneamente
- Criar layouts de janelas complexos para diferentes tarefas de desenvolvimento
- Configurar backup automatizado de sessões do tmux
Melhores Práticas
Adotar boas práticas com o tmux pode melhorar significativamente seu fluxo de trabalho e produtividade. Vamos explorar algumas abordagens e dicas recomendadas.
Fluxos de Trabalho Comuns
-
Configuração do Ambiente de Desenvolvimento:
# Criar uma nova sessão para desenvolvimento tmux new -s dev # Layout comum de desenvolvimento # Dividir janela para edição e terminal tmux split-window -v -p 30 # 70% editor, 30% terminal # Divisão adicional para executar testes/servidores tmux split-window -h # Dividir painel de terminal horizontalmente
-
Configuração de Monitoramento de Servidores:
# Criar sessão de monitoramento tmux new -s monitoring # Dividir para diferentes tarefas de monitoramento tmux split-window -h # Dividir para estatísticas do sistema tmux split-window -v # Dividir para logs # Executar comandos de monitoramento # Primeiro painel: htop # Segundo painel: tail -f /var/log/syslog # Terceiro painel: monitoramento de rede
Dicas de Produtividade
-
Organização de Sessões:
- Use nomes descritivos para sessões (por exemplo,
cliente1
,backend
,docs
) - Mantenha tarefas relacionadas na mesma sessão, mas em janelas diferentes
- Use convenções de nomenclatura de janelas consistentes
- Limpeza regular de sessões para melhor gerenciamento
- Use nomes descritivos para sessões (por exemplo,
-
Otimização de Desempenho:
# Adicione ao .tmux.conf # Reduzir o atraso de escape set -sg escape-time 0 # Aumentar a responsividade set -g status-interval 1 # Limitar o histórico de sessões para evitar problemas de memória set -g history-limit 50000
-
Scripts de Configuração Automatizados:
#!/bin/bash # Salvar como dev-setup.sh # Criar nova sessão no estado desanexado tmux new-session -d -s development # Configurar janelas e painéis tmux rename-window -t development:1 'editor' tmux send-keys -t development:1 'vim' C-m tmux new-window -t development:2 -n 'server' tmux send-keys -t development:2 'npm run dev' C-m # Anexar à sessão tmux attach -t development
Integração com Outras Ferramentas
-
Integração com Controle de Versão:
- Crie janelas dedicadas para operações git
- Use sincronização de painéis para gerenciar vários repositórios
- Configure verificação de status automatizada
-
Melhores Práticas de Multiplexador de Terminal:
# Adicione ao .bashrc ou .zshrc # Anexar automaticamente à sessão do tmux no SSH if [[ -z "$TMUX" ]] && [ "$SSH_CONNECTION" != "" ]; then tmux attach-session -t ssh_tmux || tmux new-session -s ssh_tmux fi
-
Desenvolvimento Remoto:
- Use sessões tmux aninhadas para trabalho local/remoto
- Defina diferentes cores de barra de status para sessões locais/remotas
- Configure diferentes teclas de prefixo para sessões aninhadas
# Para sessões aninhadas (.tmux.conf)
bind-key -n C-a send-prefix # Para sessão interna
set -g status-bg colour40 # Verde para local
set -g status-bg colour160 # Vermelho para remoto

Perguntas Frequentes (FAQ)
Q1: Como saio do tmux?
# Método 1: Sair completamente do tmux
exit # Digite na janela do tmux
# ou
prefix + d # Desanexar da sessão atual enquanto a mantém em execução
# Método 2: Forçar o fechamento de todas as sessões
tmux kill-server
Q2: Por que a rolagem do mouse não está funcionando?
Nas versões mais recentes do tmux, você precisa habilitar o suporte a mouse em seu arquivo de configuração:
# Adicione ao ~/.tmux.conf
set -g mouse on
Q3: Como copio texto no tmux?
-
Usando o mouse (se o suporte a mouse estiver habilitado):
- Simplesmente selecione o texto
- Use os atalhos da área de transferência do sistema
-
Usando o teclado:
prefix + [ # Entrar no modo de cópia Space # Iniciar seleção Enter # Copiar seleção prefix + ] # Colar
Q4: Como recupero uma sessão do tmux perdida?
# Listar todas as sessões
tmux ls
# Reanexar à última sessão
tmux attach
# Anexar a uma sessão específica
tmux attach -t session_name
Q5: Como posso redimensionar painéis no tmux?
# Use a tecla de prefixo + teclas de seta para redimensionar painéis
prefix + Up # Expandir painel atual para cima
prefix + Down # Expandir painel atual para baixo
prefix + Left # Expandir painel atual para a esquerda
prefix + Right # Expandir painel atual para a direita
Q6: Como aplico alterações de configuração?
# Método 1: Recarregar dentro do tmux
prefix + :
source-file ~/.tmux.conf
# Método 2: Recarregar do terminal
tmux source-file ~/.tmux.conf
Q7: Como sincronizo a entrada entre painéis?
# No modo de comando do tmux
:setw synchronize-panes on
# Desligar a sincronização
:setw synchronize-panes off
Q8: Por que minhas cores não estão sendo exibidas corretamente?
Adicione estas linhas ao seu ~/.tmux.conf
:
# Habilitar suporte a 256 cores
set -g default-terminal "screen-256color"
# Habilitar suporte a cores verdadeiras
set-option -sa terminal-overrides ",xterm*:Tc"
Q9: Como salvo e restauro sessões do tmux?
Você pode usar o plugin tmux-resurrect
:
# Instalar o gerenciador de plugins do tmux
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# Adicione ao .tmux.conf:
set -g @plugin 'tmux-plugins/tmux-resurrect'
# Salvar sessões
prefix + Ctrl-s
# Restaurar sessões
prefix + Ctrl-r
Q10: Como mudo a aparência da minha barra de status?
# Adicione ao ~/.tmux.conf
# Mudar fundo da barra de status
set -g status-bg black
# Mudar primeiro plano da barra de status
set -g status-fg white
# Mudar estilo da janela atual
set-window-option -g window-status-current-style bg=red,fg=white,bold
Q11: Como lido com sessões tmux aninhadas?
# Adicione ao .tmux.conf para usar um prefixo diferente para sessões aninhadas
bind-key -n C-a send-prefix # Para sessão interna
set -g status-bg blue # Cor diferente para sessão aninhada
Q12: Minhas teclas de função não estão funcionando no tmux?
# Adicione ao ~/.tmux.conf
set-option -g xterm-keys on
set-window-option -g xterm-keys on