Categorias
Tutoriais

Tmux o melhor solução multi sessão no Linux.

As principais distribuições Linux tem como solução pra multi sessão o Screen, porem iremos apresentar o Tmux, um aplicativo com características muito superiores.

Tmux é um multiplexador de terminal, o que significa que você é capaz de ter um processo em execução, desconectar do sistema e reconectar posteriormente e de um computador diferente para que possa continuar trabalhando nesse processo. Uma maneira fácil de demonstrar isso é usar SSH para um sistema remoto, iniciar tmux e, a partir dele, iniciar um comando ping para um sistema remoto, desconectar tmux, retomar tmux e você verá que o ping ainda está funcionando. Alguns dos casos de uso comuns para isso são:

Se você tiver um processo de longa duração, como a atualização de um aplicativo, e não quiser deixar a sessão ssh em execução o tempo todo ou está preocupado com a possibilidade de sua conexão de rede cair.


Além disso, se você tiver várias sessões em execução, poderá usar rótulos para as diferentes sessões.


Se quiser que outra pessoa veja o que você está fazendo, você pode iniciar uma sessão tmux e, em seguida, fazer com que essa outra pessoa faça SSH em seu sistema e conecte-se a essa sessão tmux.

Instalação

Na versão 8 do RHEL ou AlmaLinux, foi tomada a decisão de descontinuar screen e usar em seu lugar o tmux como padrão. No CentOS 7 , voc deverá instalar manualmente o Tmux através do comando abaixo :

Iremos verificar se o tmux está disponível no repositório.

[root@srv030 afrare]# yum search tmux


Loaded plugins: fastestmirror, langpacks


Loading mirror speeds from cached hostfile

base: mirror-centos-jpa.hostdime.com.br

centos-sclo-rh: mirror-centos-jpa.hostdime.com.br

centos-sclo-sclo: mirror-centos-jpa.hostdime.com.br

epel: ord.mirror.rackspace.com

extras: mirror-centos-jpa.hostdime.com.br

remi-php71: mirror.pit.teraswitch.com

remi-safe: mirror.pit.teraswitch.com

rpmfusion-free-updates: mirror.math.princeton.edu

updates: mirror.turbozoneinternet.net.br


================================================ N/S matched: tmux =================================================


tmux-top.x86_64 : Monitoring information for your tmux status line.

tmux-top-devel.x86_64 : Monitoring information for your tmux status line.


tmux.x86_64 : A terminal multiplexer


xpanes.noarch : Awesome tmux-based terminal divider

Name and summary matches only, use “search all” for everything.

Verificamos que o tmux está disponível e iremos agora instalar propriamente o pacote.

yum install tmux
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 27 kB 00:00:00

base: mirror-centos-jpa.hostdime.com.br

centos-sclo-rh: mirror-centos-jpa.hostdime.com.br

centos-sclo-sclo: mirror-centos-jpa.hostdime.com.br

epel: ord.mirror.rackspace.com

extras: mirror-centos-jpa.hostdime.com.br

remi-php71: mirror.pit.teraswitch.com

remi-safe: mirror.pit.teraswitch.com

rpmfusion-free-updates: mirror.math.princeton.edu

updates: mirror.turbozoneinternet.net.br


ajenti | 2.5 kB 00:00:00
base | 3.6 kB 00:00:00


centos-sclo-rh | 3.0 kB 00:00:00

centos-sclo-sclo | 3.0 kB 00:00:00

cheese | 3.5 kB 00:00:00

epel | 4.7 kB 00:00:00

extras | 2.9 kB 00:00:00

remi-php71 | 3.0 kB 00:00:00

remi-safe | 3.0 kB 00:00:00

rpmfusion-free-updates | 3.7 kB 00:00:00

updates | 2.9 kB 00:00:00

z-push | 3.0 kB 00:00:00

(1/7): epel/x86_64/updateinfo | 1.0 MB 00:00:01

(2/7): extras/7/x86_64/primary_db | 236 kB 00:00:02

(3/7): remi-php71/primary_db | 246 kB 00:00:04

(4/7): rpmfusion-free-updates/x86_64/primary_db | 251 kB 00:00:04

(5/7): epel/x86_64/primary_db | 6.9 MB 00:00:07

(6/7): remi-safe/primary_db | 1.9 MB 00:00:10

(7/7): updates/7/x86_64/primary_db | 8.0 MB 00:00:18

Resolving Dependencies

–> Running transaction check

—> Package tmux.x86_64 0:1.8-4.el7 will be installed

–> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================

Package Arch Version Repository Size

Installing:
tmux x86_64 1.8-4.el7 base 243 k

Transaction Summary

Install 1 Package

Total download size: 243 k

Installed size: 558 k

Is this ok [y/d/N]: y

Downloading packages:

tmux-1.8-4.el7.x86_64.rpm | 243 kB 00:00:05

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

Installing : tmux-1.8-4.el7.x86_64 1/1

Verifying : tmux-1.8-4.el7.x86_64 1/1

Installed:

tmux.x86_64 0:1.8-4.el7

Complete!

Usando Prefixos para Controlar Tmux

Tmux é baseado em comandos que performam tarefas específicas. Porém, para executar estes comandos, primeiro é preciso usar um prefixo. O prefixo informa ao Tmux que um comando será executado. Por padrão, o prefixo é CTRL+B.

Então o caminho certo para estruturar um comando Tmux é:

<prefix> + Command.

Ou seja, temos que pressionar as teclas CTRL + B e depois o comando. Por exemplo, para criar uma nova sessão, o comando seria C. Portanto, para criar uma nova sessão, precisamos pressionar CTRL + B e próximo C – CTRL + B, C.

Alguns Comandos Para Ajudar

Outro recurso fantástico do Tmux é que nós podemos “salvar” uma sessão específica. Por exemplo, se nós estamos usando htop e usamos o comando detach quando rodarmos o Tmux novamente, descobriremos que o processo ainda funciona. Isto é muito útil para performar comandos que levam mais tempo para rodar, como backups.

Então, vamos começar uma nova sessão digitando estes comandos na linha de comando:

tmux new

Nesta nova sessão, vamos rodar htop. Htop é uma ferramenta para monitorar os recursos do sistema.

Então, nós usamos o comando detach. Então, primeiro inserimos apertando CTRL+B e em seguida, o comando D. Vamos ver que teremos a próxima mensagem no terminal.

Agora precisamos voltar para nossa sessão “attach”. Para fazer isto, executamos o seguinte comando no terminal:

tmux attach -t [session_name]

Já que não temos um nome para a sessão, usaremos o valor 0. O comando será assim:

tmux attach -t 0

E voltaremos para nossa sessão anterior.

É possível fazer várias sessões com o comando C. Para navegar entre elas então vamos usar o número identificador. Por exemplo, a primeira sessão que criamos do terminal regular seria 0. Se nós criarmos outra sessão ela corresponderá ao número 1.

CTRL+B, 1

Nós podemos ver a sessão atual na barra verde na parte inferior da janela.

Podemos ver quantas sessões Tmux estão abertas com o seguinte comando:

tmux ls

Gerenciando Painéis

Vamos aprender como manipular painéis de terminais. Podemos dividir a janela horizontalmente, com o comando <prefix>, “

Ele teria que ser – CTRL+B, “.

E para fazer o mesmo, só que verticalmente – CTRL+B, %.

Para alternar entre painéis, podemos usar o comando  – CTRL+B, arrow key.

E então podemos navegar por cada um dos painéis. Se quer fechar somente uma delas, pressione – CTRL+D.

Lista de Comandos Tmux

Finalmente, vamos compartilhar um arquivo para você usar como referência:

Sessões

Começar uma nova sessãotmux
Começar uma nova sessão com um nometmux new -s [name]
Começar uma sessão anexadatmux attach #
Se a sessão tmux tiver nometmux attach -t [name]
Listar todas sessões tmuxtmux ls
Sair da utilidadeexit

Lidar com Janela

Nova Janela<prefix>+c
Próxima Janela<prefix>+n
Listar todas as janelas<prefix>+w
Renomear uma janela<prefix>+,

Lidar com Painéis

Dividir painel na vertical<prefix>+%
Dividir painel na horizontal<prefix>+“
Eliminar o painel<prefix>+x
Mostrar número do painel<prefix>+q
Alternar entre painéis<prefix>+arrow key

Conclusão

Como vimos, o Tmux é uma ferramenta importante que ajuda a usar o seu terminal de uma forma mais eficiente de abrir várias sessões.

O gerenciamento desta utilidade é feito através de comandos. Nós aprendemos os comandos mais básicos e úteis para o seu dia a dia de trabalho.

Abaixo mais alguns artigos interessantes sobre administração de um servidor Linux.

DNS ATAQUE

Ataque DDOS

Por Adriano Frare

Especialista em segurança. Certificado CISSP e Certicate Ethical Hacking. Gerente de projetos experiente com um histórico comprovado de trabalho no setor de administração governamental. Hábil em Planejamento Estratégico, ITIL, Project Management Office (PMO), Gerenciamento de Serviços de TI e Project Management Body of Knowledge (PMBOK), Certificado Digital (PKI), Segurança (CEH), CISSP, vendas usando métodos Soluction Selling (IBM).

Sair da versão mobile