Introducción
En el mundo de la administración de sistemas y el desarrollo, trabajar con múltiples sesiones de terminal simultáneamente es una necesidad cotidiana. GNU Screen es una herramienta que permite multiplexar una sola terminal física en varias ventanas virtuales, facilitando la gestión de tareas sin perder el contexto. Este artículo te muestra desde la instalación hasta los trucos más útiles para sacarle el máximo provecho a Screen en cualquier distribución Linux.
¿Qué es GNU Screen?
GNU Screen es un multiplexor de terminales libre y de código abierto que pertenece al proyecto GNU. Su función principal es crear, administrar y desconectar sesiones de terminal que siguen ejecutándose en segundo plano, incluso cuando cierras el cliente SSH o la ventana del emulador. Cada sesión puede contener múltiples ventanas, cada una con su propio shell, lo que permite cambiar entre ellas con combinaciones de teclas simples.
Instalación en las distribuciones más populares
En la mayoría de los repositorios de las distribuciones Linux, Screen está disponible como paquete precompilado. En Debian o Ubuntu basta con ejecutar:
sudo apt updatesudo apt install screen
En Fedora, el comando es:
sudo dnf install screen
En Arch Linux y sus derivados:
sudo pacman -S screen
Tras la instalación, puedes verificar la versión con screen --version.
Iniciar y salir de una sesión
Para lanzar una nueva sesión de Screen simplemente escribe:
screen
Esto crea una ventana predeterminada y te coloca dentro de ella. Para desconectar la sesión sin terminar los procesos que se están ejecutando, usa la combinación Ctrl+a seguida de d. La sesión queda en segundo plano y puedes volver a conectarla más tarde con:
screen -r
Si tienes varias sesiones activas, puedes listarlas con screen -ls y luego reanudar la que necesites especificando su ID o nombre.
Crear y navegar entre ventanas
Dentro de una sesión de Screen puedes abrir tantas ventanas como necesites. Cada ventana actúa como una terminal independiente.
- Crear una nueva ventana: Ctrl+a c
- Cambiar a la ventana siguiente: Ctrl+a n
- Cambiar a la ventana anterior: Ctrl+a p
- Ir directamente a una ventana por número: Ctrl+a [0-9]
- Ver la lista de ventanas: Ctrl+a w
Dividir la pantalla en regiones
Screen también permite dividir la ventana actual en regiones horizontales o verticales, útil para comparar salida de dos comandos lado a lado.
- División horizontal: Ctrl+a S (mayúscula)
- División vertical: Ctrl+a | (pipe)
- Cambiar el foco entre regiones: Ctrl+a Tab
- Eliminar la región actual: Ctrl+a X
- Cerrar todas las regiones excepto la actual: Ctrl+a Q
Cada región puede contener una ventana independiente, por lo que puedes tener, por ejemplo, un tail de un log en la región superior y un editor en la inferior.
Desconexión y reconexión segura
Una de las mayores ventajas de Screen es la capacidad de desconectar una sesión y volver a conectarla sin perder el estado de los procesos. Esto es particularmente valioso cuando trabajas mediante SSH y la conexión se interrumpe. Simplemente presiona Ctrl+a d para detach, y cuando vuelvas a iniciar la conexión, ejecuta screen -r para retomar exactamente donde lo dejaste.
Si deseas que una sesión siga ejecutándose incluso después de cerrar el terminal local, puedes iniciar Screen con el parámetro -dmS nombre para crear una sesión desconectada desde el arranque, útil para scripts de arranque o tareas de fondo.
Personalización mediante .screenrc
El comportamiento de Screen se puede ajustar mediante el archivo de configuración ~/.screenrc. Algunas personalizaciones comunes incluyen:
- Definir una barra de estado que muestre el nombre de la ventana, la hora y la carga del sistema:
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{= YD} %H %{= G}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{= YD} %m/%d %{= C}%C%A ]'
- Cambiar la combinación de teclas de escape si Ctrl+a interfiere con otras aplicaciones:
escape ^^^^
Después de editar .screenrc, recarga la configuración dentro de una sesión activa con Ctrl+a : seguido de source ~/.screenrc o simplemente inicia una nueva sesión para que los cambios tengan efecto.
Buenas prácticas y consejos
- Nombra tus sesiones con
-S nombreal iniciarlas para identificarlas fácilmente más tarde. - Usa el registro de actividad (Ctrl+a H) para crear un log de todo lo que ocurre en la ventana actual.
- Combina Screen con tmux o byobu si necesitas características más avanzadas, pero recuerda que Screen es más ligero y está presente en prácticamente cualquier sistema UNIX.
- Evita dejar procesos críticos en una sesión desconectada sin supervisión; revisa periódicamente el uso de recursos con Ctrl+a * que muestra un informe de consumo de CPU y memoria por ventana.
Conclusión
GNU Screen sigue siendo una herramienta esencial para cualquiera que pase tiempo en la línea de comandos de Linux. Su capacidad para multiplexar terminales, desconectar y reconectar sesiones, y personalizar el entorno mediante un simple archivo de configuración lo convierte en un aliado poderoso para administradores, desarrolladores y usuarios avanzados. Con los comandos y consejos presentados en este artículo, estarás listo para aprovechar al máximo Screen y mejorar tu flujo de trabajo diario en la terminal.