Tmux Parte I: Instalação e comandos básicos (Painéis)

Henrique Braga
4 min readMay 30, 2017

--

Recentemente em um projeto da empresa, conheci o tmux (estava em um script para rodar todo ambiente de um projeto no Makefile).

Mas não tinha ideia do que ele era ou para que servia, até pesquisar e o entender melhor. Então, esse primeiro post será uma introdução ao tmux, junto com um pouco de prática com o conceito de painéis.

Enfim, descobri que tmux é um multiplexador de terminal. Mas que diabos é um multiplexador?

Segundo o próprio site oficial:

“Permite você trocar facilmente entre programas em um único terminal, desanexá-los (continuam rodando em “background”) e reanexá-los para um terminal diferente” (traduzido)

Fonte: https://tmux.github.io/

Apesar dessa bela definição, uma das funções que mais gostei no tmux é poder trabalhar com muitas sessões facilmente (e trocar de contexto, quando necessário). Cada painel permite você ter diversas coisas rodando (como aplicações, comandos etc) seja localmente ou servidores remotos sem a preocupação de precisar abrir duzentas janelas de terminais de uma vez.

Outra coisa me chamou a atenção pesquisando mais sobre ele: já se conectou via SSH em um servidor remoto e por alguma razão, a sessão caiu? Com o tmux, ele somente“desanexa” a sessão, porém continua rodando no server side em background :). Basta só conectar via SSH quando quiser ou estiver apto. Demais né?

Bom, vamos lá!

A primeira coisa a se fazer é instalar o tmux na máquina (caso não esteja). Para isso, execute o comando:

apt-get install tmux

Se utilizar mac:

brew install tmux

Com ele instalado, podemos começar!

Hello world

Abra o terminal e rode comando tmux:

henrique @ henrique-Inspiron-5448 ~
└─ $ ▶ tmux

Note que tem uma “barra” ali embaixo. Ela tem informações cruciais sobre a sessão e a janela, além da data e hora. Ah, e pode ser customizada também :) (através do arquivo .tmux.conf: ~/.tmux.conf)

Vamos então, ver as sessões e janelas executando o seguinte comando:

tmux ls

No exemplo acima, pode-se verificar que há apenas uma sessão rodando:

tmux ls
8: 1 windows (created Tue May 30 02:14:02 2017) [275x61] (attached)

Painéis

Uma sacada que ajuda muito quem está começando é: a maioria (senão todos) os aliases utilizam as teclas control (ctrl) e b. (ou a notação C-b , que é bastante usada nas documentações do tmux)

Vamos agora realmente a começar a explorar alguns super poderes do tmux. Para isso, teremos que quebrar nossa sessão em painéis!

Podemos executar control + b e logo em seguida “%” (sinal de porcentagem): C-b %. Esse comando irá dividir a sua janela verticalmente (esquerda para direita)

Provavelmente, sua janela ficou assim:

Vale lembrar que apesar da janela dividida, ainda sim possuem a mesma sessão! Para confirmar isso, basta rodar o comando tmux ls (nos dois paineis):

tmux ls
8: 1 windows (created Tue May 30 02:14:02 2017) [275x61] (attached)

Você pode executar o atalho para criar um novo painel novamente (C-b %) e verá que a janela se dividirá em três partes. Se executar mais uma vez, em quatro. (Bom você entendeu!)

É possível dividir os paineis de cima para baixo também: basta utilizar o comando control + b e “ (aspas duplas): C+b “:

Ah, esqueci de falar. Para fechar um painel, utilize o alias: control d — C-d

Agora você deve estar se perguntando: “Legal, consigo abrir um monte de paineis. Mas de que adianta se não consigo mover o cursor de um painel para o outro?”

Calma jovem, vamos lá! :)

Dica: Para mover-se de uma janela para outra, o atalho começa com (tente adivinhar)… Sim! control b. Com adição das setas, você pode se locomover o cursor para o painel que quiser:

C-b seta esquerda : move para o painel à esquerda

C-b seta direita : move o cursor para o painel à direita

C-b seta cima : move o cursor para o painel à direita

C-b seta baixo : move o cursor para o painel que está abaixo

C-b seta cima : move o cursor para o painel à cima

Importante: Aguarde 1 segundo mais ou menos no intervalo do clique entre C+b e a seta. Se for rápido demais, você só redimensionará o painel que o cursor está!

Pronto, chega por agora. No próximo post, exploraremos mais o conceito de sessões!

Referências:

https://tmux.github.io/

http://www.hamvocke.com/blog/a-quick-and-easy-guide-to-tmux/

--

--

Henrique Braga
Henrique Braga

Written by Henrique Braga

“If you’re not making someone else’s life better, then you’re wasting your time. Your life will become better by making other lives better.”

No responses yet