Como ter múltiplas telas com o comando screen no Linux sem SSH o tempo todo!

Como ter múltiplas telas com o comando screen no Linux sem SSH

Nesta dica mostraremos como ter múltiplas telas com o screen no Linux. O comando screen pode te auxiliar em algumas situações onde precisamos acompanhar a tela do terminal, ora para monitoração, ora para acompanhamento de cópia de arquivos grandes ou para compartilhar a tela em tempo real com outra pessoa. Assim também é possível manter uma tela do terminal em execução, sem a necessidade de estar conectado via SSH o tempo todo.

Múltiplas telas com o screen no Linux e sem SSH

Instalação do screen no Debian, CentOS, AlmaLinux, Ubuntu, Debian, Fedora e derivados!

O comando screen não é padrão na maioria das distribuições Linux, portanto é necessário instalá-lo. No exemplo abaixo estamos utilizando o CentOS mas você pode executar também no novo AlmaLinux. Então com o usuário root, execute o comando abaixo:

Terminal
yum install screen
Como ter múltiplas telas com o comando screen no Linux

Para distribuições baseadas em Debian, execute o comando abaixo (com o usuário root ou com sudo):

Terminal
apt install screen

Se estiver utilizando o Ubuntu, Linux Mint o comando é:

Terminal
sudo apt install screen

E se for o Fedora ou qualquer derivado, o comando é:

Terminal
sudo dnf install screen

Exemplo prático do comando screen no Linux

Com o screen instalado, qualquer usuário poderá executá-lo. Existem dois “lados” para utilizar o comando screen: Com a tela monitorada em uso (anexado, ou atached em Inglês) e com a tela monitorada em segundo plano (desanexado, ou detached em Inglês).

No exemplo abaixo, vamos monitorar duas telas: Uma com o comando top e outra com o comando htop.

Criando duas telas com o screen no Linux

Basta abrir o terminal com o usuário de sua preferência e digitar o comando screen.

Inicialmente, nada acontecerá! O terminal será limpo e continuará executando normalmente. É interessante destacar que no topo da janela aparece o termo [screen 0: sempreupdate@SempreUpDate], conforme tela abaixo:

Como ter múltiplas telas com o comando screen no Linux

A partir daqui estamos compartilhando a nossa tela com o comando screen. Nesta tela, deixaremos o comando top em aberto:

Como ter múltiplas telas com o comando screen no Linux sem o SSH

Agora, pressione as teclas Ctrl + a e depois a tecla d. Note que voltaremos ao terminal inicial com a seguinte mensagem: [detached from 1866.pts-0.SempreUpdate]. Este valor é o identificador da tela.

Como ter múltiplas telas com o comando screen no Linux sem SSH

Vamos abrir uma segunda tela, digite novamente screen. Repare mais uma vez o detalhe na janela com o termo [screen 0: sempreupdate@SempreUpDate]. Nesta tela, abriremos o comando htop:

Como ter múltiplas telas com o comando screen no Linux sem SSH

Outra vez, pressione as teclas Ctrl + a e depois a tecla d. Note que é gerado um outro identificador de tela: [detached from 2059.pts-0.SempreUpdate]

006 - Múltiplas telas com o Screen 2

Listando e acessando as duas telas abertas

Resumidamente, nós abrimos duas telas (top e htop) com o comando screen e elas estão sendo executadas como se fosse em segundo plano (Detached). Para ver a lista completa de múltiplas telas com o screen, basta executar um dos comandos abaixo:

Terminal
screen -list
screen -ls
Sem SSH Como ter múltiplas telas com o comando screen no Linux

Repare que é listado exatamente as telas abertas com o screen (2059.pts-0.SempreUpdate e 1866.pts-0.SempreUpdate).

Para retomá-las, basta executar o comando abaixo, alterando o item do identificador de tela:

Terminal
screen -x <identificador de tela>

008 - Múltiplas telas com o Screen 2

Observação: O identificador de tela pode ser o nome completo 2059.pts-0.SempreUpdate ou somente 2059 que é o número identificador.

Agora retomaremos a tela relacionada ao htop:

Como ter múltiplas telas com o comando screen no Linux

Para finalizar esta tela do screen, basta parar de executar o comando htop e digitar exit.

Executando novamente o comando screen -ls ou screen -list, podemos ver que agora só temos uma tela em funcionamento:

010 - Múltiplas telas com o Screen

Caso você queira que o nome da sua tela seja personalizado, podemos executar o comando abaixo que irá substituir o identificador de tela pelo nome janela_htop:

Terminal
screen -S janela_htop

Ao listar novamente, repare que a nomeação das telas mudam:

011 - Múltiplas telas com o Screen

Compartilhando a tela

Abaixo acessaremos a máquina virtual chamada SempreUpDate de uma outra máquina via SSH para mostrarmos o compartilhamento de tela. Do lado esquerdo é o acesso via SSH e do lado direito é a console da máquina virtual, que está rodando em cima do Oracle VM VirtualBox. Portanto repare que a mesma tela aparece para dois terminais diferentes:

Como ter múltiplas telas com o comando screen no Linux

Nesse sentido isso pode ajudar muito para aprendizado ou auxílio no suporte. Lembrando que o usuário deve ser o mesmo para acessar as mesmas telas gerenciadas pelo screen.

Existe uma infinidade de parâmetros e outros recursos que o screen pode oferecer, para isso basta ver o seu manual em:

Terminal
man screen

Ou quando estiver com uma tela aberta no screen, basta executar Ctrl + a e depois a tecla ?:

013 - Múltiplas telas com o Screen

Em resumo esperamos que o uso de múltiplas telas com o screen auxilie no seu dia-a-dia, seja por monitoração ou acompanhamento de alguma tarefa até o compartilhamento de tela com algum colega de trabalho ou com o suporte. Mais uma dica para você que quer deixar o Linux ainda mais produtivo.

Até a próxima!