É aqui que um utilitário chamado Tela entra em cena. A tela permite que os usuários usem várias sessões de terminal dentro de uma única janela, que pode ser desconectada e reconectada exatamente de onde a sessão foi desconectada. Isso é extremamente benéfico, pois os perigos de uma conexão perdida acabaram e todas as sessões podem ser reiniciadas. Hoje, veremos como se pode usar o utilitário Screen, e também veremos algumas das funcionalidades do Screen.
Tela de instalação
O Screen geralmente vem pré-instalado em muitas distribuições Linux hoje. Pode-se verificar facilmente se o utilitário Screen está instalado executando o seguinte comando no terminal:
$ screen --version
Se você não tiver uma tela instalada em seu computador, deverá executar o seguinte comando para instalar este utilitário:
tela de instalação do apt $ sudoUso e recursos da tela
1) Tela inicial
Para iniciar a tela, abra o terminal e digite o seguinte comando:
$ telaDepois de inserir este comando, você verá uma tela de direitos autorais que solicitará que você pressione Entrar E continue. Faça isso e você será levado de volta ao terminal sem que nada aconteça. O terminal parece ser o mesmo. Você pode entrar em pastas, examiná-las, abrir arquivos e fazer todas as coisas que você já fez antes. Então, o que mudou?
Embora pareça que nenhuma alteração tenha ocorrido, após inserir o comando Tela, acabamos de fato abrindo uma sessão de tela. Para obter todos os comandos que vêm com a Tela, primeiro pressione Ctrl + a seguido pela ? (Ponto de interrogação sem aspas).
2) Desanexar e reconectar à tela
Agora, vamos supor que queremos atualizar nosso sistema. Nós inserimos o comando de atualização no terminal e esperamos que ele seja concluído. Voltando ao passado, se nossa conexão com a Internet for perdida ou nossa sessão for desconectada, nosso processo de atualização irá parar e teríamos que começar tudo de novo. Para evitar isso, usaremos o comando destacado de Screen. Para isso, entre Ctrl + a seguido pela: d. Você obterá uma saída semelhante à mostrada na imagem abaixo:
Agora, você pode realizar várias tarefas ao mesmo tempo e realizar outras tarefas que deseja. A atualização ainda continua em execução, mas apenas em segundo plano.
Se, por acaso, sua conexão cair ou você apenas quiser se reconectar para ver seu progresso, basta inserir o seguinte comando no terminal:
$ screen -rIsso será reconectado à tela e você poderá ver diretamente a atualização acontecendo novamente. Mesmo que sua conexão caia ou sua sessão seja encerrada, você pode se reconectar ao processo que está acontecendo em segundo plano por meio deste comando.
3) Telas múltiplas
Como mencionado antes, a tela permite que você conecte várias sessões de terminal dentro de uma única janela. O Screen permite que você faça isso de duas maneiras: telas aninhadas e desanexação e execução de outra tela.
a) Telas aninhadas
Para criar telas aninhadas, como em telas dentro de uma tela, você pode simplesmente inserir o comando Tela ou usar Ctrl + a seguido pela: c. Isto irá criar uma nova janela a partir da sua localização atual. Enquanto isso, sua janela antiga ainda estará ativa em segundo plano.
Por exemplo, em minha janela inicial, estou executando o comando top, que pode ser acessado usando o seguinte código:
$ top
Agora, quero fazer outro trabalho enquanto mantenho minha blusa aberta em segundo plano. Para isso, eu primeiro seleciono Ctrl + a e clique em: c. Com isso, uma nova janela se abre, e agora posso fazer outras tarefas.
Para alternar entre as telas, posso usar os comandos: Ctrl + a seguido pela: n, que nos move para a próxima janela; e Ctrl + a seguido pela: p, que muda para a janela anterior. Cada processo continuará em execução até que você feche manualmente a janela.
Se você quiser voltar para a janela onde o processo principal estava sendo executado, você pode fazê-lo simplesmente inserindo qualquer um dos dois comandos acima. Eu escolhi o último, então digitei Ctrl + a seguido pela: n.
E voilà, estamos de volta à tela superior.
b) Desanexando e executando outra tela
Outra forma de usar várias telas ao mesmo tempo é desanexando a primeira tela e executando outra tela no mesmo terminal. Vejamos esta situação com um exemplo.
Primeiro, inserimos o comando Screen para iniciar uma sessão. Então, digamos, queremos ver quanta memória está sendo usada de nosso disco rígido interno. Para fazer isso, digite o seguinte comando no terminal:
$ df -h
Desanexe esta janela pressionando Ctrl + a seguido pela: d. Uma saída como a da imagem abaixo será vista.
Agora, vamos executar o comando screen para abrir uma nova sessão e começar a realizar algumas de nossas tarefas. Vou simplesmente abrir algumas pastas e verificar seus diretórios para obter informações.
Vamos destacar esta janela também.
Agora, temos que reconectar à primeira janela, na qual estávamos olhando nossos dados de memória. Mas quando inserimos o comando re-attach, vemos algo assim:
Quando há várias janelas em sua sessão e você deseja reconectar a qualquer uma delas, você precisa saber o ID da tela de cada janela. Para obter uma lista de IDs de tela, digite o seguinte comando no terminal:
$ screen -ls
Isso nos mostra que há duas janelas, junto com seus IDs (14145 e 13774), que parecem ter sido desanexadas. Portanto, se houver várias janelas em nossa sessão e desejarmos nos reconectar a alguma janela, o seguinte comando precisa ser inserido no terminal:
$ screen -r IDE se desejarmos anexar novamente nossa primeira janela, entraremos em:
$ screen -r 13774
E voilà, estamos de volta à nossa primeira tela.
4) Fechando telas
Fechar o utilitário Screens pode ser feito simplesmente inserindo o comando exit no terminal, da seguinte maneira:
$ exitPor que o comando de tela é tão útil?
Todos nós já passamos por cenários em que nossa conexão com a Internet falha ou nossa sessão é encerrada, resultando na perda de tempo ou dados cruciais. O Screen oferece uma solução para este problema, permitindo que os processos continuem a ser executados em segundo plano. Caso a sessão seja encerrada, a Tela permite que os usuários retomem o processo a partir do ponto exato de desconexão. Isso é altamente benéfico, pois fornece a capacidade de permitir que processos que exigem muito tempo sejam executados em segundo plano enquanto ainda realizam outro trabalho.