Comando screen no Linux (multiplexar terminal) [Guia Básico]

O comando screen no Linux permite que o shell seja multiplexado, criando “janelas” virtuais, que permitem executar mais de um programa ao mesmo tempo, trocando as janelas do terminal. É muito util quando você está logado em um servidor remoto utilizando o ssh, alternando “janelas” em uma única conexão. Existem várias ferramentas que fazem a multiplexação, e dentre elas, as mais comuns são o screen e tmux

Essas ferramentas são úteis para, em uma única conexão SSH, executar um programa, acessar uma base de dados, e ainda verificar arquivos de LOG. Por exemplo, um programador Web pode alterar um script javascript em uma janela com o vim, acessar uma base de dados mysql, e verificar os logs do node.js ou de um servidor web.

É importante ressaltar que nem sempre essas ferramentas estão instaladas como padrão nas distribuições, e podem ser instaladas usando o gerenciador de pacotes.

Comando screen

$ screen [comando [ parâmetros ] ]

O comando screen é um poderoso gerenciador de janelas que multiplexa um terminal físico entre diversos processos. Ele permite que o usuário abra diversas instâncias de terminais diferentes em um mesmo terminal físico. Você ainda pode compartilhar seu terminal com outros usuários. 

Se você necessitava de abrir diversas conexões SSH com seu Linux para ter mais de um terminal disponível, é porque você ainda não conhece o screen.

Exemplo:

$ screen 

Uma vez que você digite screen, ele vai abrir um terminal como qualquer outro. Mas ele possibilitará diversos comandos.

Para ver o HELP do screen, digite Ctrl-A e “?” (sem aspas).

Todos os comandos do screen devem ser precedidos pelo Ctrl-A.

Imagine que você está conectado via SSH em um servidor e vai fazer um download de um arquivo grande que irá demorar 2 horas. Você pode rodar o download “dentro” do screen, se desconectar do terminal, e então reconectar mais tarde, até de outro computador.

$ screen
$ wget http://servidornaweb.com.br/arquivomuitogrande.tar.gz

Você poderá digitar Crtl-A e a tecla “d” para se desconectar do terminal. Agora você pode inclusive se desconectar da sessão SSH.

Quando quiser reconectar ao terminal do screen, reconecte na sessão SSH, e então digite o comado:

$ screen –r

Se você tiver mais de uma sessão aberta no screen, deverá informar a sessão a que deseja se conectar. Para ver quais sessões estão abertas:

$ screen -ls
There is a screen on:
        12604.pts-0.svnserver   (Attached)
1 Socket in /var/run/screen/S-ec2-user.

Para se conectar na sessão 12604:

$ screen –r 12604

Você também pode abrir diversas sessões com o Ctrl-A, depois “c”.

Para alternar entre as sessões, você deve digitar Ctrl-A e depois “n” ou “p” para navegar para frente (Next) ou para trás (Previous). Isto evita que você precise se conectar em diversas vezes via SSH.

Você também pode ativar o log de tudo que foi digitado no terminal, ativando o log através do comando Ctrl-A e “H”. Para desativar o log, basta apertar Ctrl-A e “H” novamente.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe