Já se deparou alguma vez com a situação em que está a realizar uma tarefa demorada numa máquina remota e, de repente, a sua conexão cai, a sessão SSH é terminada, e o seu trabalho é perdido? Esta eventualidade já ocorreu a todos nós em algum momento, não é verdade? Felizmente, existe uma ferramenta chamada screen que nos permite retomar as sessões.
Introdução
O Screen, ou GNU Screen, é um multiplexador de terminal. Por outras palavras, isto significa que pode iniciar uma sessão de screen e depois abrir qualquer número de janelas (terminais virtuais) dentro dessa sessão. Os processos em execução no Screen continuarão a funcionar mesmo quando a sua janela não estiver visível, mesmo que se desconecte.
Instalar o GNU Screen no Linux
O pacote screen está pré-instalado na maioria das distribuições Linux atualmente. Pode verificar se está instalado no seu sistema digitando:
screen --version
Se não tiver o screen instalado no seu sistema, pode instalá-lo facilmente usando o gestor de pacotes da sua distribuição.
Instalar o Screen no Ubuntu e Debian
sudo apt update
sudo apt install screen
Instalar o Screen no CentOS e Fedora
sudo yum install screen
Iniciar o Linux Screen
Para iniciar uma sessão de screen, basta digitar screen no seu terminal:
screen
Isto abrirá uma sessão de screen, criará uma nova janela e iniciará um shell nessa janela.
Agora que abriu uma sessão de screen, pode obter uma lista de comandos digitando:
Ctrl+a ?
Iniciar uma Sessão com Nome
As sessões com nome são úteis quando executa múltiplas sessões de screen. Para criar uma sessão com nome, execute o comando screen com os seguintes argumentos:
screen -S nome_da_sessao
É sempre uma boa ideia escolher um nome descritivo para a sessão.
Trabalhar com Janelas no Linux Screen
Quando inicia uma nova sessão de screen, cria uma única janela com um shell dentro dela.
Pode ter múltiplas janelas dentro de uma sessão de Screen.
Para criar uma nova janela com um shell, digite Ctrl+a c; o primeiro número disponível do intervalo 0…9 será atribuído a ela.
Abaixo estão alguns comandos mais comuns para gerenciar as janelas no Linux Screen:
Ctrl+a c Criar uma nova janela (com shell).
Ctrl+a " Listar todas as janelas.
Ctrl+a 0 Alternar para a janela 0 (por número).
Ctrl+a A Renomear a janela atual.
Ctrl+a S Dividir a região atual horizontalmente em duas regiões.
Ctrl+a | Dividir a região atual verticalmente em duas regiões.
Ctrl+a tab Alternar o foco de entrada para a próxima região.
Ctrl+a Ctrl+a Alternar entre as janelas atual e anterior.
Ctrl+a Q Fechar todas as regiões exceto a atual.
Ctrl+a X Fechar a região atual.
Desconectar de uma Sessão do Linux Screen
Pode desconectar da sessão de screen a qualquer momento digitando:
Ctrl+a d
O programa em execução na sessão de screen continuará a ser executado depois de se desconectar da sessão.
Reconectar a uma Sessão do Linux Screen
Para retomar a sua sessão de screen, use o seguinte comando:
screen -r
Se tiver múltiplas sessões de screen em execução na sua máquina, precisará adicionar o ID da sessão de screen após o comando r.
Para encontrar o ID da sessão, liste as sessões de screen em execução atualmente com:
screen -ls
Se quiser restaurar a sessão 10835.pts-0, então digite o seguinte comando:
screen -r 10835
Personalizar o Screen do Linux
Quando o screen é iniciado, ele lê os seus parâmetros de configuração de /etc/screenrc e ~/.screenrc se o arquivo estiver presente. Podemos modificar as configurações padrão do Screen de acordo com as nossas preferências usando o arquivo .screenrc.
Aqui está uma configuração ~/.screenrc de exemplo com linha de status personalizada e algumas opções adicionais:
~/.screenrc
# Desligar a mensagem de boas-vindas
startup_message off
# Desativar o sinal sonoro visual
vbell off
# Definir o buffer de rolagem para 10000
defscrollback 10000
# Personalizar a linha de status
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'
Uso Básico do Screen do Linux
Abaixo estão os passos mais básicos para começar a usar o screen:
No prompt de comando, digite screen.
Execute o programa desejado.
Use a sequência de teclas Ctrl-a + Ctrl-d para desconectar da sessão de screen.
Reconecte à sessão de screen digitando screen -r.
Conclusão
Neste tutorial, aprendeu como usar o Gnu Screen. Agora pode começar a usar a utilidade Screen e criar múltiplas janelas de screen a partir de uma única sessão, navegar entre janelas, desconectar e retomar sessões de screen e personalizar o seu terminal de screen usando o arquivo .screenrc.
Há muito mais para aprender sobre o Gnu Screen na página do Manual do Utilizador do Screen.
Se tiver alguma dúvida ou comentário, não hesite em deixar um comentário.