você está aqui: Home  → Arquivo de Mensagens

Screen Uma Ferramenta Útil

Colaboração: Ricardo Iramar dos Santos

Data de Publicação: 08 de Julho de 2004

01/04/2004 - Versão 0.1

Introdução

Screen é um gerenciador de janelas similar aos terminais virtuais do Linux com muito mais recursos desenvolvido pelo projeto GNU.

Basicamente eu o utilizo para duas finalidades, para poder abrir clients de irc e IMs em janelas separadas numa mesma sessão ssh e compartilhar sessões ssh para aprender e/ou ensinar. Além dessas um outra finalidade interessante é deixar algum processo/compilação rodando em uma janela e depois remotamente ver o andamento.

Mas o Screen não se limita somente a isso, na man page dele você irá encontrar muitas informações úteis. Bem, vamos ao que interessa ...

Pré-requisitos

A idéia aqui não é ensinar como instalar o Screen e sim explorar alguns de seus recursos. Portanto se você ainda não tem ele instalado (provavelmente tem) acesse o site http://www.gnu.org/software/screen/screen.html e siga as docs para instalar.

Utilizando

Vamos dizer que você pretende acessar uma máquina remotamente via ssh e abrir seu client de irc (eu uso irssi http://irssi.org, e você?) e um IM client (ex. centericq http://konst.org.ua/centericq/) pois não é em todo lugar que você terá acesso a isso.

Logado na máquina remota execute o Screen:

  agent@maplefire:~$ screen

Ué, mas não aconteceu nada? É um outro jeito de limpar a tela? Não, execute "ps aux" e veja o processo do screen rolando, isto é, você já está em uma janela do Screen.

Tá, e daí? Calma, vamos ao primeiro comando básico:

   agent@maplefire:~$ screen -ls
   There is a screen on:
           483.pts-0.maplefire     (Attached)
   1 Socket in /home/agent/.screen.
   
   agent@maplefire:~$

Você acabou de listar as sessões abertas do screen onde a sessão marcada com (Attached) é a sessão que você está agora. Além de multiplas janelas você pode abrir multiplas sessões, observe que este comando lista as sessões e não as janelas.

Vamos criar a segunda janela virtual porque a primeira já abre por default quando você inicia o Screen. Para isso pressione "Ctrl+a" simultanêamente, solte e em seguida pressione "c". Mais uma forma de limpar a tela? Não, agora você na segunda janela virtual do screen. Para facilitar estarei usando formas contraídas de escrever esses comandos similar a man page, este comando por exemplo de criar uma nova janela em uma forma contraída ficaria assim "C-a c", manjo?

Familiarize com essas teclas de atalho pois todas são bem similares baseadas em pressionar o Ctrl mais uma letra e seguida por outra. Provavelmente todos os comandos podem serem executaods via screen seguido de algum parâmetro, entretanto eu prefiro os atalhos por serem muito mais rápidos.

Para listar as janelas utilize o atalho "C-a w". Pow! Cadê a lista de janelas? Também achei uma péssima idéia colocar isso no título da janela, isso se estiver usando um WM, caso contrário (console) irá aparecer no canto inferior esquerdo da tela. A janela na qual você esta é marcada com um *.

Para navegar entre as janelas utilize o atalho "C-a n" (n de next, isto é, próxima janela) e "C-a p" (p de previous o mesmo que anterior). Pronto! Agora você já pode abrir quantas janelas quiser e/ou precisar e deixar qualquer processo rolando nelas.

Mas como fechar a sessão ssh sem finalizar a(s) sessão(ões) do Screen? Execute "C-a d" que irá rertornar [detached] que quer dizer descolar. Execute "screen -ls" e você verá a a sessão que você acabou de sair marcada como (Detached).

Vamos dizer que você foi trabalhar e do escritório você quer ver o andamento dos processos deixados nas janelas ou acessar seus clients. Acesse a máquina via ssh novamente e digite "screen -r" vualá! Agora vamos compartilhar essa sessão com um amigo seu.

Peça para seu amigo acessar a sua máquina via ssh com o mesmo user que você esta logado. Assim que ele logar peça para executar "screen -x". Com este comando ele irá se conectar a mesma sessão que você esta e desta forma tudo o que você e ele fizerem serão visto pelos dois. Você pode conectar quantas pessoas quiser a uma sessão do Screen. COOL!!!

Para fechar uma janela basta digitar "exit" na última janela o Screen será finalizado. Somente com esses comandos básicos já é possível fazer muita coisa agora se você der uma olhada na man page (man screen) verá que você não aprendeu nada sobre o screen.

Conclusão

Exagerando eu diria que o céu não é o limite e sim a sua imaginação pois com a quantidade de possibilidades que o screen oferece somente olguém muito inocente para não perceber a sua utilidade. Não esqueça de visitar a man page e o google, eles são seus amigos e não vão te morder.

Referências

Dúvidas, críticas e sugestões devem ser enviadas para <agent smith (a) globo com>.

Quer saber mais um pouco sobre o autor desta documentação? Acesse minha home page em http://www.agentsmith.kit.net.



 

 

Veja a relação completa dos artigos de Ricardo Iramar dos Santos

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script