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:
yum install screen
Para distribuições baseadas em Debian, execute o comando abaixo (com o usuário root ou com sudo):
apt install screen
Se estiver utilizando o Ubuntu, Linux Mint o comando é:
sudo apt install screen
E se for o Fedora ou qualquer derivado, o comando é:
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:
A partir daqui estamos compartilhando a nossa tela com o comando screen. Nesta tela, deixaremos o comando top em aberto:
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.
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:
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]
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:
screen -list
screen -ls
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:
screen -x <identificador de tela>
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:
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:
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:
screen -S janela_htop
Ao listar novamente, repare que a nomeação das telas mudam:
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:
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:
man screen
Ou quando estiver com uma tela aberta no screen, basta executar Ctrl + a e depois a tecla ?:
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!