Screen es un programa que nos permite ejecutar distintas sesiones (distintos programas, o distintas aplicaciones) dentro del mismo terminal de consola, y así no saturar nuestro sistema con pantallas del tipo xterm, por ejemplo. Esto es realmente útil para usuarios de GNU/Linux que gustan de usar el modo comando en su sistema, o bien para aquellos que acceden a su sistema por vía ssh, y quieren ejecutar a través de una sola sesión, varias aplicaciones al mismo tiempo. Screen resulta muy práctico cuando queremos dejar una tarea ejecutándose, que deseamos recuperar posteriormente desde otro terminal.
¿CÓMO INSTALAR EL PROGRAMA?
El programa Screen está bajo licencia GNU. Para obtener las fuentes sólo tenemos que bajarlas del servidor de ftp dedicado a este servicio, en nuestro caso 
ftp://ftp.gnu.org/gnu/screen/En sistemas GNU/Linux de tipo Debian podemos usar la aplicación apt para instalarlo, de la siguiente manera.
#aptitude install screenUSO BÁSICO
Lo primero para habilitar el uso de screen en nuestro terminal es ejecutarlo en nuestra consola.
$ screen
Tras la ejecución del comando no dará un mensaje de bienvenida que nos confirmará que estamos usando Screen.
Luego, al pulsar Enter o Space nos encontramos con la entrada del bash de nuevo, y nada parece haber cambiado.
A partir de ahora nos encontramos en condicion de introducir las distintas opciones de screen pulsando simultáneamente las teclas Control y a (Ctrl+a), lo cual indica que lo siguiente a introducir es una orden para el programa screen,  y no para la consola en sí. De este modo:
Ctrl+a(c) significa:
 Ctrl+a pulsamos ambas teclas, y después dejamos el teclado libre, la tecla entre paréntesis
 (c) en nuestro caso significa simplemente la tecla o combinación de teclas a pulsar en el teclado. En nuestra consola ejecutaremos:
Ctrl+a(c) Crear una sesión nueva
Veremos  que  nos  creará  una  sesión  nueva,  con  salida  del  prompt,  y  la  anterior  sesión  nos  ha  desaparecido.  En este momento tenemos dos sesiones (la original y la que hemos creado nueva), que podemos listar con las siguiente orden.                                                              
Ctrl+a(") listar las sessiones
Nos saldrán dos sesiones con muy poca información, pero que nos indican que tenemos en una consola únicamente las dos sesiones  trabajando.  Podemos  elegir  cualquiera  de  ellas  mediante las  flechas  del  teclado  y  seleccionamos  la  sesión  que necesitamos con enter. Para cambiar de una sesión a otra sin ver este listado ejecutaremos.
Ctrl+a(n) ir a la sesión siguiente
Ctrl+a(p) ir a la sesión anterior
Podemos  crear  sucesivamente  sesiones  nuevas  con 
 Ctrl+a(c),  y  seguir  listándolas  con  
Ctrl+a(").  Llegará  un  momento (dependiendo  de  nuestra  adicción  por  la  consola),  que  tengamos  varias  sesiones  en  un  mismo  terminal.  Es  conveniente antes de llegar a este momento que le demos un nombre a cada una de las sesiones...
Ctrl+a(A) asigna un nombre a la sesión actual que se está ejecutando.
Por ejemplo, ahora estamos ejecutando la sesión 0, podemos asignarle el nombre "invitado user". Al hacer un nuevo listado de las sesiones con 
Ctrl+a(") nos encontramos un listado de sesiones, con nombres invitado user y bash1 respectivamente.
Con  esto  hemos  conseguido  tener  en  una  misma  consola  dos  usuarios  distintos.  Renombrar  las  sesiones  puede  parece trivial,  pero  es  algo  esencial  si  hacemos  muchas  sesiones,  para  hacernos  una  idea  de  qué  hace  cada  opción  y  conmutar entre ellas fácilmente.
OPCIONES AVANZADAS: COPIAR / PEGAR
Hay  algo  realmente  útil  de  las  sesiones  múltiples,  y  es  la  capacidad  de  copiar/pegar  (incluso  entre  distintas  máquinas  si entramos por control remoto a conexiones en red). Para ello sólo tenemos que ejecutar 
Ctrl+a([) que habilita el comienzo del modo "copiar" y permite el movimiento libre por la pantalla, comienza a copiar con la barra espaciadora, y terminará de copiar con enter, almacenando la copia en el buffer.
 Ctrl+a(]) simplemente pega, tras dejar posicionarse libremente por la pantalla y pulsar intro. En la mayoría de terminales nos permitirá pegar con el famoso 
CTRL+VDEJAR UNA SESION HUÉRFANA
Para  muchos  realmente  la  gran  propiedad  de  screen  reside  en  su  capacidad  de  deja  sesiones  huérfanas,  y  poder recuperarlas a gusto después. Por ejemplo, supongamos que tenemos las siguientes sesiones tras un breve list: Una sesión
0 llamada user, una sesión 1 llamada root compilation y una tercera 3 llamada user irssi. En un momento dado nos interesa dejar estas  tres  sesiones funcionando  independientemente,  y seguir usando la consola  sin ellas. Podemos desvincular las sesiones que screen tiene en ese momento con la orden 
Ctrl+a(d).
Ctrl+a(d) desvincula la sesión actual de screen.
Al activar esta opción en la sesión activa, podemos incluso salir de nuestra terminal o sesión de usuario completamente, y la sesión que hemos desvinculado seguirá activa hasta que la rescatemos posteriormente. Si posteriormente hacemos un login como el usuario que activó el programa screen, y ejecutamos la orden 
screen ls, veremos cuántas y cuáles son las sesiones huérfanas que tenemos ejecutando. Por ejemplo:
$ screen
There is a screen on:
2328.pts1.hostname (Detached)
1 Socket in /var/run/screen/Suser
Las  ventajas  de  esta  opción  son  muchas,  pero  entre  ellas  destacamos  la  seguridad  de  que  las  sesiones  se  ejecutarán independientemente de si estemos en el sistema. Un fallo o cuelgue del terminal no nos impedirá posteriormente „recoger“ la sesión y continuar con el trabajo que estábamos haciendo. Por otro lado, permite que utilicemos distintas máquinas con un login en el mismo servidor para (por ejemplo, si compilamos el kernel de una máquina por sesión remota, podemos empezar la compilación en el trabajo, y terminarla cuando lleguemos a casa al recuperar la sesión). Una opción quizás más lúdica es la de  dejar  nuestro  usuario  de  irc  funcionando  desde  casa,  y  „recogerlo“  desde  otra  estación  de  trabajo  para  seguir  sin necesidad de iniciar el cliente de irc cada vez.
Es importante que el usuario que inició la sesión screen sea el que la visualice y la rescate posteriormente. Un usuario sin los permisos pertinentes  no  podrá  ver qué sesión de screen ha dejado huérfana  otro  usuario,  y  naturalmente,  tampoco  podrá rescatarla.  Rescatar  una  sesión  es  bastante  fácil,  basta  ejecutar  el  comando
  screen  r  con  el  número  de  la  sesión  que queremos tomar.
Así por ejemplo:                                                                  
$ screen r 2328OPCIONES  AVANZADAS:  UTILIZANDO  DOS  SESIONES  EN  LA  MISMA
PANTALLA
Podemos  visualizar  varias  sesiones  simultáneamente  en  una  pantalla  de  la  siguiente  manera:  supongamos  primero  que tenemos  dos  sesiones  (una  con  el  editor  vi,  y  otra  con  el  cliente  de  irc  para  modo  consola  irssi).  Si  queremos  trabajarsimultáneamente en ellas dentro de la misma pantalla, podemos dividir la pantalla de la sesión en uso con la siguiente orden:
Ctrl+a(S) dividimos la sesion actual de screen.
Nos aparecerá la sesión actual arriba, y luego una sesión nueva abajo, a la que debemos movernos con 
Ctrl+a(Ctr+i) que indica moverse a la otra sesión de la misma pantalla. Una vez en las sesiones correspondientes (esta vez, divididas en la pantalla), podemos llamar a otras sesiones, crear nuevas, ver listados, dividir mas la pantalla, etc... Si queremos volver a modo normal (una sesión en pantalla entera) sólo tenemos que escribir 
Ctrl+a(Q) en la sesión que queramos tener completa.
RESUMEN:Por último, incluimos un resumen de las funciones que hemos explicado aquí:
USO BASICO                                                                     DESVINCULAR Y RESCATAR SESIONES
Ctrl+a(c) Crear sesión                                                         Ctrl+a(d) desvincular
Ctrl+a(?) muestra ayuda en la pantalla                                         
Ctrl+a(r) rescatar la última sesión (o screen r)
Ctrl+a(n) ir a la siguiente sesión
Ctrl+a(p) ir a la anterior sesión                                              DIVIDIR SESIONES
Ctrl+a(a) ir a la última sesión visitada                                       Ctrl+a(S) divide la sesión actual
Ctrl+a(") muestra una lista de sesiones en uso                                 Ctrl+a(Ctrl+i) cambia a la sesión contigua de la misma pantalla
Ctrl+a(#) ir a la sesión de número #                                          
Ctrl+a(Q) deja la sesión actual como pantalla completa
Ctrl+a(') similar a (") pero se ejecuta con número de sesión y enter
Ctrl+a(A) asigna un nombre a la sesión actual
COPIAR Y PEGAR
Ctrl+a([) entrar en modo copiar comienza con spacebar termina con enter
Ctrl+a(]) pegar aunque la mayoría de las veces podemos usar 
Ctrl+v
CONSIDERACIONES FINALES
Screen es una poderosa herramienta, un ejemplo más de profesionalidad, eficacia y servicio del software libre bajo licencia GNU. Hemos descrito aquí la particularidad que tiene el comando screen de ejecutar varias sesiones en una única consola. Además cada sesión puede nombrarse y accederse mediante opciones del teclado. Las opciones copiar y pegar están disponibles, y quizás lo más llamativo, la posibilidad de desvincular sesiones para dejarlas funcionando independientemente y volver a recogerlas posteriormente para finalizarlas, o para modificarlas desde otros entornos de trabajo.
Finalmente hemos de ser conscientes de una particularidad de screen. Aunque screen trabaja en modo consola, todos los comandos y aplicacione que puedan ser enviados por esta son válidos para ejecutarse en screen. La gran ventaja que tiene esto es que los cuelgues de terminal, o fallos en la consola, no tienen por qué afectar a las sesiones de X que hemos ejecutado bajo consola ejecutada con screen. Estos quedarían como sesiones de screen en modo húerfano, que podemos recuperar. Si ejecutamos firefox bajo screen en nuestra consola, el programa firefox seguirá viviendo tanto lo siga haciendo screen, pese a que hayamos salido de la consola que le ha dado vida.                                                                         
Un último detalle antes de terminar. Precisamente, la aplicación screen se termina con el comando exit, lo cual nos envía una notificación al prompt de
que hemos terminado la sesión screen.