Guía Completa sobre el Comando screen en Linux

Artículos Guías Manuales Sistemas Linux Windows Binario 0

El comando screen en Linux es una herramienta poderosa y versátil que permite a los usuarios manejar sesiones terminales de manera más eficiente. Es particularmente útil en entornos donde la estabilidad de la conexión no está garantizada, como en sesiones SSH, o cuando necesitas ejecutar tareas de larga duración sin necesidad de mantener la terminal abierta.

En este artículo, exploraremos a fondo el comando screen, su instalación, sus características más destacadas y cómo utilizarlo a través de ejemplos prácticos.

¿Qué es screen?

screen es un multiplexor de terminales. Esto significa que permite a un usuario acceder a múltiples sesiones de terminal desde una sola ventana de terminal. Además, permite desconectar una sesión (detach) sin cerrar el programa o proceso que se está ejecutando, y luego volver a conectarse (reattach) más tarde.

Instalación de screen

En la mayoría de las distribuciones de Linux, screen viene preinstalado. Sin embargo, si no lo tienes en tu sistema, puedes instalarlo fácilmente usando el gestor de paquetes correspondiente.

Para distribuciones basadas en Debian (como Ubuntu):

sudo apt-get update
sudo apt-get install screen

Para distribuciones basadas en Red Hat (como CentOS o Fedora):

sudo yum install screen

Uso Básico de screen

Iniciar una Sesión screen

Para iniciar una nueva sesión screen, simplemente abre tu terminal y escribe:

screen

Esto iniciará una nueva sesión de screen, y te presentará una terminal que parece idéntica a la original. Puedes empezar a trabajar como lo harías normalmente.

Desconectar (Detach) una Sesión

Una de las características más útiles de screen es la capacidad de desconectar una sesión sin cerrar los procesos en ejecución. Para desconectar una sesión, usa la combinación de teclas:

Ctrl + A, D

Este comando desconecta la sesión actual y te devuelve a la terminal original, mientras que los procesos dentro de la sesión screen siguen ejecutándose en segundo plano.

Reconectar (Reattach) a una Sesión

Si has desconectado una sesión y deseas volver a ella, puedes listar todas las sesiones activas con:

screen -ls

Esto mostrará una lista de sesiones screen disponibles. Verás algo similar a esto:

There is a screen on:
1234.pts-0.hostname (Detached)
1 Socket in /var/run/screen/S-username.

Para volver a conectar a una sesión específica, utiliza:

screen -r 1234

Donde 1234 es el ID de la sesión que quieres reanudar.

Crear una Nueva Sesión con Nombre

Es recomendable nombrar tus sesiones, especialmente si planeas manejar múltiples sesiones. Puedes iniciar una nueva sesión con nombre usando la opción -S:

screen -S mi_sesion

Esto crea una sesión llamada mi_sesion, lo cual facilita su identificación cuando quieras reconectarte más tarde.

Navegación y Manejo de Sesiones

Una vez que estás dentro de una sesión de screen, hay varias operaciones que puedes realizar. Aquí te mostramos las más comunes.

Crear una Nueva Ventana

Puedes crear una nueva ventana dentro de tu sesión de screen presionando:

Ctrl + A, C

Esto abrirá una nueva ventana de terminal dentro de la misma sesión screen.

Navegar entre Ventanas

Para navegar entre las diferentes ventanas dentro de una sesión de screen, usa:

  • Ctrl + A, N para ir a la siguiente ventana.
  • Ctrl + A, P para ir a la ventana anterior.
  • Ctrl + A, <Número> para ir a una ventana específica, donde <Número> es el número de la ventana.

Dividir la Pantalla

screen permite dividir la pantalla y mostrar múltiples ventanas al mismo tiempo:

  1. Para dividir la pantalla horizontalmente, usa:

    Ctrl + A, S
  2. Para dividirla verticalmente, usa:

    Ctrl + A, |
  3. Para moverte entre las divisiones, usa:

    Ctrl + A, Tab
  4. Para cerrar una división, simplemente usa:

    Ctrl + A, Q

Comandos Útiles en screen

screen tiene una serie de comandos adicionales que pueden ser muy útiles en diversas situaciones:

Listar Todas las Ventanas

Para listar todas las ventanas abiertas en una sesión de screen, puedes usar:

Ctrl + A, "

Esto mostrará una lista con todas las ventanas activas, permitiéndote seleccionar la que quieras.

Renombrar una Ventana

Para renombrar la ventana actual, usa:

Ctrl + A, A

Esto abrirá un prompt en la parte inferior donde puedes escribir el nuevo nombre para la ventana.

Bloquear la Sesión

Puedes bloquear tu sesión de screen (similar a un bloqueo de pantalla) con:

Ctrl + A, X

Se te pedirá una contraseña para desbloquear la sesión.

Matar una Ventana

Si quieres cerrar una ventana dentro de screen, usa:

Ctrl + A, K

Se te pedirá confirmación antes de matar la ventana.

Desconectar Todas las Sesiones

Para desconectar todas las sesiones de screen y salir de la terminal, puedes usar:

screen -D -RR

Esto desconecta cualquier sesión que esté conectada y te reanuda a la última sesión activa.

Ejemplos Prácticos

  1. Ejecución de un Script Largo en Segundo Plano:Imagina que tienes un script que tomará horas en completarse, pero necesitas cerrar tu sesión SSH. Puedes hacer lo siguiente:

    screen -S script_largo ./mi_script.sh
    Ctrl + A, D

    Luego, puedes cerrar tu terminal con la seguridad de que el script seguirá ejecutándose. Más tarde, puedes reconectarte con:

    screen -r script_largo
  2. Monitoreo de Múltiples Logs en Paralelo:Puedes usar screen para monitorear múltiples archivos de log en tiempo real:

    screen -S logs Ctrl + A, C
    # Crea una nueva ventana
    tail -f /var/log/syslog Ctrl + A, C
    # Crea otra ventana
    tail -f /var/log/auth.log

    Ahora puedes alternar entre las ventanas para ver ambos logs simultáneamente.

Personalización de screen

El comportamiento de screen se puede personalizar a través del archivo de configuración .screenrc, ubicado en el directorio de inicio del usuario (~/.screenrc). Aquí puedes definir opciones como teclas de acceso rápido personalizadas, nombres de ventanas predeterminados, entre otros.

Por ejemplo, para cambiar la combinación de teclas para crear una nueva ventana, puedes agregar esta línea a .screenrc:

bind c screen 1

Esto cambia la combinación para crear una nueva ventana a Ctrl + A, 1.

Conclusión

El comando screen es una herramienta esencial para cualquier usuario de Linux, especialmente aquellos que trabajan en servidores o con tareas que requieren una ejecución prolongada. Su capacidad para manejar múltiples sesiones, desconectarse y reconectarse, y personalizar su comportamiento lo convierte en una herramienta indispensable.

Con la práctica, screen puede transformar la manera en que gestionas tus tareas en la terminal, permitiéndote ser más eficiente y flexible en tu flujo de trabajo.