Deixando o seu terminal mais produtivo com o Tmux

opensource Mai 26, 2020

O Tmux é um multiplexador de terminal.  Isso significa que você pode iniciar uma sessão do Tmux e abrir várias janelas dentro dessa sessão. Cada janela ocupa a tela inteira e pode ser dividida em painéis retangulares.

Com o Tmux podemos alternar facilmente entre vários programas em um terminal, desconectá-los e conectá-los novamente a um terminal diferente.

Os programas em execução no Tmux continuarão sendo executados mesmo se formos  desconectado, pois as sessões do Tmux são persistentes.

Todos os comandos no Tmux começam com um prefixo, que por padrão é ctrl + b.

Instalando o Tmux:

Podemos instalar o Tmux de duas formas: Pelo gerenciador de pacotes do sistema operacional ou através do repositório oficial.

Instalando o Tmux pelo repositório oficial:

Primeiro verifique qual a versão mais recente no repositório oficial e então mude a versão nos comandos que seguem ( no meu caso a versão mais recente era a 3.1b):

# fazendo o download 
$ wget https://github.com/tmux/tmux/releases/download/3.1b/tmux-3.1b.tar.gz
# descompactando 
$ tar -zxvf tmux-3.1b.tar.gz
# acessando a pasta
$ cd  tmux-3.1b/
# configurando 
$ ./configure  && make 
# Instalando 
$ sudo make install

Ao executar o comando "./configure && make" em máquina com ubuntu tive os seguintes erros que talvez você possa ter:

  1. configure: error: no acceptable C compiler found in $PATH
  2. lconfigure: error: "ibevent-dev"
  3. configure: error: "ncurses-dev"

para cada um uma solução:

  1. $ apt-get install build-essential
  2. $ apt-get install libevent-dev
  3. $ apt-get install ncurses-dev

Instalando o Tmux pelo gerenciador de pacotes:

Ubuntu e Debian
$ sudo apt install tmux
CentOS e Fedora
$ sudo yum install tmux
macOS
$ brew install tmux

Sessão:

Agora com o com a instalação concluída basta executar o comando tmux no terminal, se tudo deu certo irá ver uma barra verde na parte inferior do terminal.

Ao executar o tmux é criado uma sessão e os programas executando nesta sessão continuarão executando mesmo que a janela do terminal seja fechada.

Nessa barra verde temos algumas informações:
No canto direito, da direita pra esquerda temos a data atual, a hora, e o nome do computador atual.
Já no canto esquerdo entre colchetes temos a sessão atual, depois temos a janela (no caso 0) e o nome do software que está rodando ( no caso o bash). O '*' indica qual a janela que está ativa no momento.

O tmux tem um atalho "base" para execução dos comandos que é o ctrl b, nós chamaremos esse atalho de prefixo, logo sempre que citar a tecla prefixo estaremos falando sobre esta combinação.

Para listar as sessões use o comando:
$ tmux ls
| 0: 1 windows (created Tue May 26 13:11:04 2020) (attached)
O 0 é o nome da sessão, 1 windows significa que tem um janela aberta na sessão.
Com a sessão iniciada podemos usar alguns atalhos para executar comandos no Tmx. Para obter uma lista de todos os comandos do Tmux, digite:
ctrl+b ?

Criando sessões nomeadas do Tmux

Por padrão as sessões no tmux são nomeadas numericamente. Em alguns momentos pode ser útil criar uma sessão nomeada. Podemos fazer isso com o comando:
$ tmux new -s session_name

Desconectando de uma sessão

Você pode se desconectar da sessão do Tmux e retornar ao seu shell normal digitando:
$ Ctrl+b d

Se rodarmos algum programa antes de desconectar, ele continuará sendo executado mesmo depois de desconectarmos.

Reconectando a uma sessão do Tmux:

Primeiro precisamos do nome da sessão, podemos obter isso com o comando "tmux ls". Com o nome da sessão basta executar o comando (substituindo sessao_nome):
$ tmux attach-session -t sessao_nome

Janelas

Com o tmux podemos criar janelas de dentro de uma mesma sessão. Para criar uma nova janela usamos:
$ Ctrl+b c

Podemos observar que na barra verde aparecerá duas janelas e uma delas estará marcada com o ‘*’ que indica a janela atual.
Para mudar para a janela anterior podemos mudar o comando:
Ctrl+b p
para mudarmos para o próxima janela:
Crtl+b n
e para mudar para um janela específica basta apenas usar o prefixo e o número da janela:
Ctrl+b 0

Podemos renomear uma janela de acorde com algum critério próprio, para isso usamos prefixo + , :
Ctrl+b ,

se quisermos fechar uma janela podemos podemos usar prefixo + &:
Crtl+b &

Painéis

Podemos ainda dividir as janelas.
O Tmux permite dividir verticalmente com o com prefixo + %:
Ctrl+b %

E horizontalmente com prefixo + “:
Ctrl+b “

Para navegar entre os painéis usamos prefixo e setas.

Podemos converter um painel em janela com prefixo + !:
Ctrl+b !
Para matar um painel usamos prefixo + x:
Crtl+b x

Podemos ainda dar zoom em um painel com prefixo + z, e depois com o mesmo comando voltar a visão compartilhada:
Crtl+b z

Customizando o Tmux

Quando o Tmux é iniciado, ele lê seus parâmetros de configuração em ~/.tmux.conf, se o arquivo estiver presente.

Não vamos detalhar essa configuração, você pode obter mais detalhes na wiki do projeto. Mas podemos por exemplo alterar a cor da barra com adicionando a seguinte configuração no arquivo:

# Customize the status line
set -g status-fg  green
set -g status-bg  black

Conclusão

Esse artigo foi um introdução rápida, tem muito mais na wiki do projeto e no manual do usuário, fique a vontade para conferir, mas você já pode começar a usar como o que vimos.

Experimente e depois comente aqui se sentiu alguma vantagem em utilizá-lo.

Diego bruning

Mais de 5 anos de experiencia em desenvolvimento de Software com: Java, WEB Back-end, Ruby on Rails, Java Script, Git/Github, Rspec, HTML5, CSS3 entre outras tecnologias.

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.