Administradores de sistemas usam os terminais para realizar a maior parte de suas tarefas — ou, pelo menos aquelas sobre as quais precisam ter mais controle ou, ainda, executar com um nível maior de flexibilidade.
Para isto, é comum abrir mais de um terminal no sistema.
Quando se realiza várias atividades simultâneas de monitoramento, também é comum abrir um terminal para cada.
Em um ambiente gráfico, é possível alternar entre uma janela e outra com ‘Alt + Tab’.
Neste artigo, vamos falar do tmux — abreviatura para terminal multiplexer — um aplicativo simples, que permite controlar uma variedade de terminais a partir de uma só janela.
Um multiplexador de terminal ou terminal multiplexer permite alternar entre vários programas que estejam rodando, dentro de um único terminal.
O tmux permite alternar os programas entre o foreground e o background, além de retribuí-los a outros terminais.
Como instalar o tmux
Embora o processo de instalação varie muito pouco, nos dias atuais, entre uma distro e outra, vale ressaltar que escrevo este texto baseado no Debian 8.3 “Jessie”.
Você só precisa adaptar o comando de instalação à sua própria distribuição GNU/linux.
/* Versão disponível nos backports do Debian: */ aptitude -t jessie-backports show tmux | grep -i vers
Versão: 2.1-3~bpo8+1
/* Versão disponível no repositório padrão */ aptitude show tmux | grep -i vers
Versão: 1.9-6
Se você sabe lidar com o repositório dos backports no Debian (que não é difícil), com certeza não precisa da minha ajuda para instalar este software — neste caso, pule esta seção.
Não havendo um motivo muito forte para fazer o contrário, na minha máquina de trabalho, sempre uso o repositório padrão para instalar softwares:
sudo aptitude update sudo aptitude install tmux
No Ubuntu, você provavelmente vai preferir usar o apt-get:
sudo apt-get update sudo apt-get install tmux
Distribuições como o CentOS, RHEL e Fedora também devem ter o aplicativo nos seus repositórios básicos:
yum update yum install tmux
Como funciona o tmux
A função do tmux é tornar possível a criação, o acesso e o controle de múltiplos terminais dentro de uma única tela.
Ao ser iniciado, o aplicativo cria uma nova sessão em uma janela, exibida na tela.
Uma linha de status, na parte inferior da janela de sessão do tmux, mostra informações concernentes à sessão atual. Pode também ser usada para fornecer comandos ao aplicativo.
Uma sessão é uma coleção de pseudo terminais sob a gestão do tmux.
Cada sessão tem uma ou mais janelas ligadas a ela.
Uma sessão é um contêiner para os consoles individuais gerenciados pelos tmux.
Uma janela ocupa uma tela inteira e pode ser dividida em painéis retangulares.
Cada painel representa um emulador de terminal.
Qualquer instância do tmux pode se conectar à mesma sessão e qualquer número de janelas pode estar presente na mesma sessão.
O tmux termina sua execução após a finalização da última sessão.
Cada sessão do tmux é persistente o suficiente para sobreviver a desconexões acidentais — como um timeout do ssh ou um desacoplamento intencional.
Para reacoplar use o seguinte comando:
tmux attach
Uma sessão é exibida na tela por um cliente e todas elas são gerenciadas por um único servidor. Este, cada cliente e todas as sessões pertencem a processos separados que se comunicam através de um soquete no diretório /tmp
Como usar o tmux
Para iniciar uma nova sessão chamada ‘mon’, digite:
tmux new -s mon
O nome da nova sessão é exibido no canto inferior esquerdo da janela.
Ações possíveis nesta sessão:
- dividir o terminal em quantos painéis você quiser.
Use Ctrl + b + ” para abrir um novo espaço horizontalmente e Ctrl + b + % para abrir um espaço verticalmente — você provavelmente irá ter que usar a tecla Shift para conseguir estas combinações de teclas.
Cada painel representará um console em separado. - Ctrl + b + →↓↑← — use a combinação com as teclas direcionais para se movimentar entre os painéis.
- Se você usar a mesma combinação de teclas, anterior, pode alterar o tamanho do painel ativo. Para isto, é necessário manter pressionada a tecla direcional, na direção que você deseja arrastar o quadro do painel.
- Ctrl + b + t — para mostrar a hora atual dentro do painel ativo.
- Ctrl + b + x — fecha o painel ativo. O tmux vai pedir confirmação antes de executar esta operação.
- Ctrl + b + d — desacopla o painel ativo da sessão atual do tmux — ele volta a ser um terminal comum, dentro de uma janela comum.
No tmux, a combinação de teclas para realizar ações são chamadas de key bindings.
Se você sente que as key bindings padrão são inconvenientes para o seu uso, é possível alterá-las no arquivo .tmux.conf
que pode ser encontrado dentro do /home de cada usuário.
Para fazer alterações que abranjam todo o sistema, edite o arquivo /etc/tmux.conf
— se ele não existir, você vai ter que criá-lo. Para isto, use o primeiro como exemplo.
Havendo os dois arquivos de configuração, o tmux prioriza o de cada usuário.
Na documentação do programa, é possível encontrar mais informações sobre este e outros procedimentos — além de uma relação completa de teclas de atalho ou key bindings.