usuario
clave
iniciar sesión
regístrate
Portada
Canales
  • Apple
  • Blackhats
  • Ciencia
  • Comunicación
  • Curiosidades
  • e-Administración
  • Empresas
  • Eventos
  • Hardware
  • Nombramientos
  • Seguridad
  • Software
  • Software Libre
  • Telefonía
  • Videojuegos
  • Wireless
El Periódico
  • Blogs
  • Editorial
  • Entrevistas
  • Gadgets
  • Perfiles
  • Tags
  • Top noticias
  • Videorreportajes
  • Webcómics
Servicios
  • Boletines
  • Contactos
  • Empleo
  • Formación
  • Minijuegos
  • Tienda
  • Viviendas
Comunidad
  • Encuestas
  • Foros
  • Emails de los lectores
Viviendas
Acción:
Propiedad:
Provincia:

Patrocinado por:
Tienda
Boletín semanal
Email:
Boletines publicados
  • Software Libre
  • Noticias
Noticias relacionadas
  • Mataró reúne a programadores de GNU/Linux de todo el mundo
    07 Dic 2004
Otras noticias
  • Comienza la sexta edición de los Talleres OnLine GnuLinEx ofertados para Latinoamérica
  • IBM participará en el desarrollo de OpenOffice.org
  • Intel e IBM crean fondo para defender a usuarios de Linux
  • "Neo-shine Tibet Office", Linux en tibetano
  • Ayuda a Mozilla y pon tu nombre en el mural virtual de FireFox 2.0
  • Los desarrolladores españoles piensan que las arquitecturas SOA dominarán el mercado en menos de un año
  • Xandros compra Scalix
  • La universidad madrileña Rey Juan Carlos libera su software para crear contenidos colectivos
  • IBM patenta un método para pagar a desarrolladores Open Source
  • Sucre será la sede oriental de Proyecto Software Libre de Venezuela
Más noticias
En el foro
  • Vista!!! hay problemas?
  • Open Source y Linus Torvalds "padre de linux".
  • Busco publicidad de Software Libre
  • Programa Para Llevar EL Control De Inventario
  • Ver Canal 24 Horas y otras cadenas de TV en GNU/Linux
Ir al foro de Software Libre
aplicaciones

GNU Screen, una poderosa utilidad

La mayoría de los sistemas Unix modernos (Linux, MacOSX y *BSD) vienen con uan pequeña utilidad de consola llamada GNU-Screen. Es una herramienta poderosa en manos del guerrilleros del modo texto, una navaja suiza versatil para todo tipo de interacción persona-máquina basada en texto.

19 Ene 2005 | SUBURBIA
E

sta utilidad, a pesar de lo versatil e importante que es, no la usa casi nadie. ¿Porqué es esto? Muy poca gente sabe siquiera que exista, y menos aún entienden el problema que soluciona. En este artículo, explicare que es lo que screen puede hacer por tí, y dare un par de instrucciones para hacer tareas básicas con screen. El artículo, publicado en Suburbia, está pensado para los/las usuarios/as de consola pero con muy poca o ninguna experiencia con screen.

 

¿Qué es lo que hace screen?

La mejor mánera en la que podemos definir a screen es como un multiplexador de terminales. Al usarlo, puede iniciar cualquier numero de aplicaciones de consola, como shells interáctivas, aplicaciones ncurse, el bitchx, el mutt, etc, dentro de una única terminal. Cuando entro en algunas de mis máquinas, me he acostumbrado a tener más de una docena de aplicaciones abiertas,en terminales X y en la misma consola de modo texto, una para mi correo, otra para editar código, otras que son sesiones SSH a máquinas remotas, otra para compilar, otra para debuggear, otra para el IRC... a veces las aplicaciones se inician en modo texto y no puedo pasarlas a X, o tengo muchas xterms abiertas que se mueren al petar el gestor de ventanas.... Ahora inicio una y solo una terminal y corro todo eso ahí, sin temor a crasheos y pudiendo migrar programas entre terminales de modo texto o X. Problema solucionado.

Una de las características más chulas de screen es, además de poder correr todo dentro de la misma terminal, la posibilidad de desacoplar una aplicación del resto de programas que estan ejecutandose. Esto significa que puedes usar screen para mantener programas corriendo despues de que accidentalmente cierres el emulador de terminal en el que se esta ejecutando. Si coges y te cargas una X term, por ejemplo, donde corre screen con varios programas, puedes volver a loggearte en otra X o en modo texto y seguir teniendo todos los programas ahí. Más aún, tus programas nunca habran dejado de ejecutarse, si tenias una sesión de IRC, tu usario ha seguido estando conectado al chat y ha seguido recibiendo mensajes, que verás en cuanto uses screen de nuevo. La idea de sesión que tiene screen, es la de una entidad flotante, que puedes ligar a cualquier emulador de terminal en cualquier punto de la máquina o de la red, gráfica, de texto o sesión remota ssh o telnet, o incluso dejarla vivir sin estar ligada a ninguna terminal en absoluto.

Metiendose en el mundo screen: iniciando y cambiando entre programas

PUedes iniciar screen simplemente tecleando screen en tu prompt favorito. Si es la primera vez que lo ejecutas veras un mensaje de bienvenida que no deberias ver más. Pasa de él y tendras un promp vacio, exactamente lo que tenías antes de ejecutar el programa. ¿Qué ha pasado?

Cada programa que ejecutes en screen se ejecuta en una ventana diferente y cada ventana tiene un identificador númerico (empezando por el cero), que empieza teniendo una shell. Ahora mismo estas en la ventana cero, escribe o ejecuta algo para que seas capaz de reconocer la ventana cuando vuelvas a ella.

Ahora crea otra ventana, que será la número uno, para ello, teclea control-a c, o como se dice en el mundo de screen, C-a y c (la c viene de *c*rear ventana).

Ahora tienes dos ventanas, ejecuta algo en la nueva y vamos a cambiar a la antigua. Para hacer esto, usa C-a C-a o C-a p (de previous) con lo que volveras a la siguiente. Hay varios metodos para cambiar de ventana, todos hacen lo mismo pero algunas veces conviene memorizarse algunos y usarlos en lugar de otros, pro velocidad:

-  1. Usa C-a n y C-a p para cambiar a la siguiente (next) o anterior (previous) ventana.

-  2. Usa C-a y un número entre 0 a 9, para cambiar a la ventana númerada de ese modo.

-  3. C-a " (comillas dobles) te dara una lista de las ventanas abiertas, con su número y su nombre, si lo hemos puesto (al principio es bash en todas), puedes navegar entre las ventanas con los cursores o al estilo vi (con j y con k) selecciona la venana que quieras con enter.

-  4. C-a w te da una pequeña lista de ventanas, no interactiva.

Cuando estas en una ventana usa C-a A (mayuscula-a) para cambiarle el nombre, esto servirá para recordar lo que estas haciendo, donde estas o bien tener la lista mas ordenadita en C-a " o con la barra de tareas, de la que hablare luego.

Ligando y desligando: la mágia de la desincrustacion de terminales

Si has hecho lo que te he dicho antes, has creado lo que se llama una sesión de screen. Puedes desligar la sesión y dejarlo como un proceso residente ejecutandose en la máquina sin estar ligado a ninguna terminal usando C-a d (de detach), aunque también puedes hacer lo mismo a la manera burra: cargandote la terminal por las bravas, dejando si quires una terminal vi que no pasara nada, no se va a perder su contenido. Cuando screen nota que su ventana muere, se desliga de la misma y se queda residente, en lugar de terminar la sesión. Todos los programas que contenia screen siguen ejecutandose. En serio.

Ahora intenta lo contrario, una vez que hayas desligado una sesion, sal, cierra tu sesión, tu usuario, todo, vuelve a entrar y teclea screen -r (lo de r viene de reattach) tachan ! vuelves a tener tu sesión intacta, en el mismo punto donde la dejaste y con todos tus programas corriendo.

Seguro que puedes imaginar muchisimos usos para esto, puedes iniciar tus programas favoritos y dejarlos siempre en una sesión persistente de screen que dure lo que dure. Hay gente con screen uptimes de meses. Yo personalmente lo que hago es empezar mis programas en un servidor remoto y dejo una sesión screen siempre corriendo con mis programas, a los que accedó por ssh desde varior ordenadores diferentes, como mi casa o el curro. Desde esa misma sesion screen, accedo por ssh a otros servidores y como screen no muere, las conexiones ssh remotas tampoco, por lo que no necesito loggearme en media docena de máquinas cada vez que entro en la red.

Copiando, pegando y el buffer

Screen tiene un buffer con mogollón de líneas. No puedes scrolear como lo sueles hacer en xterm o en la terminal porque screen bloquea esas teclas para otro uso, pero puedes acceder a ese buffer entrando en el modo de copia, que se consigue con C-a [ . Con ese modo, puedes irte hacia arriba, marcar texto y pegarlo con C-a ] . Screen puede así mismo loggear sesiones, aunque eso esta un pelín fuera de las intenciones de este tutorial.

Monitorización para silencio y actividad.

Una de las desventajas de tener un montón de programas ejecutandose con screen es que no puedes tener un ojo puesto en todos a la vez, más bien solo en uno (aunuqe puedes separar las ventanas en dos, pero eso es un tema avanzado y no vamos a hablar de eso por ahora). Para mitigar este problema, screen tiene sistemas que te ayudan a monitorizar una ventana por actividad (pasa algo) o silencio (deja de pasar algo, como que termina una compilación). Para poner el modo de monitorización por silencio para 30 segundos, por ejemplo, pulsa C-a _ , para monitorizar por actividad, C-a M

Matando screen

Como has visto en el apartado "Ligando y desligando", screen es un bicho dificil de matar. No puedes simplemente cerrar la xterm o term o ssh que lo contiene porque el proceso seguirá quedandose en segundo plano como si nada y además , no hay comando quit. ¿Como hacer para salir de screen?

Por lo que sé, el único modo de salir de screen sin liarla demasiado (sin cargarte procesos a lo bestia) es salir silenciosa mente de todas las ventanas activas con el comando exit. Sal de todos los programas o shells y cuando el único se muera, la sesión de screen habra acabado.

Más cosas

Screen hace mucho más de lo que he puesto ahí arriba, pero con esto tienes de sobra para ir tirando. Hay una ayuda pulsando C-a ? y además la pagina man de screen esta repleta de trucos.

-  Yahoo GNU Screen Group::

http://groups.yahoo.com/group/gnu-screen/

-  Sven Guckes' Screen Page::

http://www.guckes.net/screen/

-  The official screen home page::

http://www.gnu.org/software/screen/screen.html

-  The screen man page::

http://www.cis.ohio-state.edu/cgi-bin/info/info/screen,Top

-  Screen FAQ::

http://www4.informatik.uni-erlangen.de/ jnweiger/screen-faq.html

*Esta publicación esta bajo la licencia creative commons, ello no evita la publicación de otros materiales en otro tipo de licencias libres. Por tanto, se permite difundir, citar y copiar literalmente sus materiales, de forma íntegra o parcial, por cualquier medio y para cualquier propósito, siempre que se mantenga esta nota y se cite procedencia.

Boletín

Si quieres recibir cada semana las noticias más interesantes suscríbete a nuestro boletín.

Comentarios
LaFlecha.net no se hace responsable del contenido de los comentarios publicados.
Editar | Borrar | #1 | 20 Ene 2005, 09:08
Miki

Nuy interesante, no lo conocía :-)

Editar | Borrar | #2 | 20 Ene 2005, 09:36
ed_obelix

Yo hace tiempo que no sé vivir sin él

:D

Editar | Borrar | #3 | 24 Ene 2005, 08:41
a

es muy util cuando necesitas hacer mas de una cosa en una maquina remota porque era un rollo abrir 3 o 4 ssh's cada uno en una shell distinta. larga vida a screen

Editar | Borrar | #4 | 07 Nov 2005, 17:41
VANESSA

que es mayuscula para que se iso la mayuscula

Entérate de cuándo hay nuevos comentarios

No se permitirán los comentarios que :
- puedan resultar ofensivos o injuriosos
- incluyan insultos, alusiones sexuales innecesarias y palabras soeces o vulgares
- apoyen la pedofilia, el terrorismo o la xenofobia

Autor
Comentario
BBCode (Ayuda): [b], [i], [quote], [code]
Publicidad
Ahora en LaFlecha puedes encontrar cursos y másters



  • Acerca de LaFlecha
  • Contactar
  • Política de privacidad
  • RSS/RDF
  • Registro de Dominios
    Alojamiento Web
    Servidores Dedicados
    Buscador de Empresas
  • Pixmania
  • Alojamiento web
  • Eventos Barcelona
  • Alojamiento Web Linux
  • Alquiler Limusinas
  • Fotógrafos
  • ¿Quieres saberlo todo sobre Hacking?
  • Casino Online