Como ter janelas em seu terminal usando tmux

Precisa de mais de uma janela no mesmo terminal Linux? Aprenda neste guia a como usar o Tmux e ser muito mais produtivo no Linux!

Como ter janelas em seu terminal usando tmux

Muitas vezes você lida com ambientes que possuem apenas uma interface de linha de comandos e precisa executar mais de uma ação ao mesmo tempo. Como resolver esta necessidade tendo uma única sessão/janela? Nesta receita apresentamos o tmux.

Esta receita lhe fornecerá o essencial para que possa dar os primeiros passos com esta super ferramenta de produtividade que não é tão conhecida como deveria por usuários Linux.

Ingredientes

  • Linux (mas você pode substituir pelo WSL no Windows ou mesmo pelo macOS).
  • tmux.
  • Habilidade e memória manual mínima.
  • Um pouco de paciência e persistência pois o primeiro contato pode não ser tão fácil assim.

Ingrediente principal: tmux

A melhor maneira de entender o problema é vendo-o em ação, sendo assim vamos a um caso real. Preciso iniciar dois processos, acompanhar seus logs de saída e editar um arquivo ao mesmo tempo. Consigo pensar em três soluções imediatas para o problema (há mais, a criatividade é infinita).

Abro três janelas no meu desktop:

Ou crio três abas na interface do meu terminal (também se estou em uma solução gráfica):

As vantagens são nítidas:

  • Não preciso de uma interface gráfica: o que é excelente quando vou lidar com servidores, por exemplo. Pense em você implantando a solução e acompanhando os logs ao mesmo tempo.
  • Tenho acesso a todas as informações que preciso ao mesmo tempo diante dos meus olhos.
  • Se estou em uma interface gráfica, são n janelas a menos com as quais preciso me preocupar.

Mas o tmux não é uma ferramenta que você irá dominar de imediato. Leva tempo e, principalmente, habilidade e memória manual, mas depois das dores iniciais ele é um forte candidato a aumentar exponencialmente sua produtividade no terminal. Então é importante ter três conceitos em mente.

Os conceitos

Tmux é um multiplexador de terminais (que termo “elegante”!), traduzindo: é um software capaz de a partir de uma única sessão do usuário com a interface de linha de comando, simular várias. Pense como o análogo ao conceito de multitarefa que temos em interfaces gráficas.

E por sessão, estou falando de sessão mesmo, ou seja, um único processo de autenticação no computador, exatamente como você faz quando inicia seu Windows, macOS ou Linux: você fornece seu login e senha e na sequência inicia vários programas ao mesmo tempo com estas mesmas credenciais. Se achou esta descrição muito ruim, tem esta na Wikipedia que talvez você prefira.

Para que eu tenha minhas “janelas” na linha de comando o tmux usa os conceitos de sessão (session), janela (window) e painel (pane). Nesta receita lidaremos mais com janelas e painéis para simplificar, mas sou obrigado a falar um pouco sobre sessões também.

A sessão é um conjunto de janelas (sério?). Pense nele como os desktops virtuais com os quais você já tenha experiência no ambiente gráfico do seu sistema operacional. É possível ter várias sessões ativas do tmux em paralelo inclusive, o que vai ser muito útil quando você tiver se empolgado e criado inúmeras janelas.

Já a janela é um agregador de painéis. Fica difícil descrever textualmente, sendo assim observe a imagem a seguir: cada retângulo é um painel independente, todos contidos em uma mesma janela.

Gravei minha interação entre janelas no tmux para que você possa ter uma ideia sobre o que estou falando. Note que parto de uma janela já com três painéis, crio uma nova e, na sequência, navego entre as diferentes janelas do sistema:

0:00
/0:26

Acho que com base nisto já podemos colocar a mão na massa.

Instalando o tmux

Talvez você já o tenha instalado em seu computador. Sendo assim, para testar, execute o comando tmux em seu terminal e veja se já não está presente.

Se não estiver presente, na esmagadora maioria das distribuições Linux que usam o APT este é um pacote que já se encontra presente, você pode instalá-lo com o comando a seguir:

apt-get install tmux

Caso o comando acima não te atenda, neste link do site oficial do projeto há instruções que poderão resolver seu problema. Usa Windows, pelo WSL você consegue ter o mesmo resultado. MacOS? Não fique triste, há tutoriais sobre como executar a instalação neste e neste link.

Iniciando tmux e vendo as sessões

Iniciar o tmux é simples: te mostrei ali em cima, mas só pra recordar, vamos lá. No seu shell execute o comando a seguir:

tmux

O tmux por padrão estará criando uma nova sessão sempre que executar este comando, que é um sinônimo do comando tmux new.

Talvez acidentalmente você tenha fechado a janela do seu terminal e queria voltar para a sua sessão: o que você faz? Primeiro execute o comando a seguir para listar todas as sessões do tmux:

tmux ls

E uma saída similar à exposta a seguir será exposta:

Para entrar de novo na sessão que saiu, execute o comando a seguir:

tmux attach-session -t [identificador da sessão]
Exemplo indo para a sessão 5 acima listada:
tmux attach-session -t 5

Ok, até aqui nada de novo, agora vamos ao que interessa: panes e windows.

Entenda os comandos

Para que o tmux seja produtivo você deve ter muito bem gravado em sua mente o conceito de “comando” no tmux. Se já usou o Emacs este não será um problema, mas se não usou, vai doer um pouquinho no início. Um comando no tmux é uma sequência de teclas.

Esta sequência de teclas segue o seguinte padrão:

Ctrl + b [Comando]

Calma agora. Comando é qualquer outra tecla do seu teclado após o “Ctrl + b”. E lembra quando disse que é importante ter habilidade e memória manual mínimas? Agora você vai entender.

Não é pra pressionar todas as teclas ao mesmo tempo. É um procedimento composto por dois passos:

  • Pressione Ctrl + b (minúsculo mesmo, nem precisa ficar com os dois pressionados o tempo todo, apenas digite na sequência)
  • Libere Ctrl + b
  • Pressione a tecla que representa o comando

Vamos a um exemplo: você já iniciou o tmux e quer dividir sua janela em dois painéis horizontais, tal como na imagem a seguir: o comando é Ctrl b ”

  • Pressione Ctrl + B
  • Digite ” (é, aspas duplas, eu sei que é chato no início)

Pronto, resultado obtido. Minha sugestão é que você pratique por um minuto pra poder ficar bom mesmo na coisa. Então segue a lista dos comandos que mais uso no tmux.

Comandos essenciais

Aqui seguem os comandos mais úteis para um uso simples do tmux.

Gestão de painéis (os que mais uso sem sombra de dúvidas):

Dica: scroll! Você muitas vezes precisará fazer scroll no conteúdo que um painel está expondo a você. É possível configurar o tmux para aceitar eventos de mouse, mas há uma solução mais simples usando apenas o teclado (convenhamos, o ideal aqui é usar só o teclado mesmo). Siga este procedimento:

  • Execute o comando Ctrl b [
  • Agora você pode navegar usando setas ou as teclas Page Up e Page Down
  • Para sair do modo scroll digite q

Gestão de janelas

Quando tiver se empolgado e criado uma infinidade de paineis você irá desejar criar o caos em outra janela. Sendo assim, segue uma pequena lista.

Gestão de sessões

Depois de ter criado o caos entre suas janelas, você o transfere para as sessões. 🙂

Você pode encontrar diversos outros comandos do tmux neste link. São tantos que criaram até um site pra isto. O objetivo desta receita é apenas te dar o essencial para que possa dar seus primeiros passos por conta própria.

Mantido por itexto Consultoria