você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

eXtreme Programming com screen

Colaboração: Rubens Queiroz de Almeida

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

O aplicativo screen é um gerenciador de sessões, que permite múltiplas conexões a partir de uma tela de aplicativo (ssh, telnet, etc.).

Eu uso muito em minha casa. A partir de uma janela do xterm, eu me conecto em um computador remoto e crio diversas sessões remotamente, uma lendo email, outro editando um site, e assim por diante.

Ao chegar ao computador remoto, digito screen. Para abrir novas sessões basta digitar <CTRL-A><CTRL-C>. Posso criar desta forma diversas janelas. Para passar de uma para outra, digito <CTRL-A><CTRL-N> e desta forma vou circulando pelas sessões criadas. Para alternar entre duas sessões apenas, digito <CTRL-A><CTRL-A>.

Um uso interessante e pouco explorado é o uso do screen para trabalho colaborativo, algo na linha do eXtreme Programming com seu parceiro a centenas de quilometros de distância.

O trecho a seguir foi traduzido de uma discussão no Slasthdot:

Um dos recursos menos utilizados do screen é a sessão multi-usuário. Eu já usei isto para fazer desenvolvimento de software à maneira do XP com um colega que estava trabalhando a 900 milhas de distância.

Eu fiz assim: abrir o screen com um arquivo de configuração screenrc temporário contendo as seguintes linhas:

multiuser on
addacl other_username
detach

Observe que eu que eu uso a opção detach para o screen. Digite "screen -ls" para obter o nome da sessão (para a outra pessoa), então digite "screen -r" para reconectar (reattach). A outra pessoa faz então uma conexão via ssh para a minha máquina e digita "screen -s nome-da-sessão". É possible criar um script para fazer tudo isto mais fácil.

Nós então conversamos por telefone (headfones altamente recomendados) enquanto digitamos simultaneamente na tela como vi. É divertido porque então começamos a gritar um para o outro "Não, não, deixe EU digitar". Ainda assim, estas sessões estão entre as minhas mais produtivas porque nós podemos pegar os erros uns dos outrso e programar as partes do programa em que temos mais conhecimento.

O programa screen faz parte da maioria das distribuições GNU/Linux. A seguir reproduzo a descrição do pacote:

Description: a terminal multiplexor with VT100/ANSI terminal emulation
 screen is a terminal multiplexor that runs several separate "screens" on a
 single physical character-based terminal.  Each virtual terminal emulates a
 DEC VT100 plus several ANSI X3.64 and ISO 2022 functions.  Screen sessions
 can be detached and resumed later on a different terminal.
 .
 Screen also supports a whole slew of other features.  Some of these are:
 configurable input and output translation, serial port support, configurable
 logging, multi-user support, and utf8 charset support.


Veja a relação completa dos artigos de Rubens Queiroz de Almeida