Tmux Parte I: Instalação e comandos básicos (Painéis)
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:
http://www.hamvocke.com/blog/a-quick-and-easy-guide-to-tmux/