Emmanuel Hernandez
Dominando el Comando Screen en Ubuntu: Guía Completa
Aprende a usar el comando screen en Ubuntu para gestionar múltiples sesiones de terminal. Esta guía cubre cómo crear, desacoplar, reacoplar y terminar sesiones de screen de manera eficiente.
screen
Introducción al comando El comando screen
en Linux, particularmente en Ubuntu, es un multiplexor de terminal muy potente. Te permite crear múltiples instancias de terminal (o "ventanas") dentro de una única sesión de terminal. Esto es increíblemente útil para ejecutar procesos largos, mantener sesiones después de una desconexión o simplemente organizar tu espacio de trabajo.
screen
?
¿Por qué usar - Sesiones Persistentes: Mantén tus programas ejecutándose incluso si te desconectas de tu sesión SSH o cierras la ventana de tu terminal.
- Multitarea: Gestiona múltiples tareas o comandos simultáneamente en diferentes ventanas de screen sin abrir múltiples emuladores de terminal.
- Compartir Sesiones: (Avanzado) Comparte tu sesión de terminal con otros usuarios.
screen
Instalando En la mayoría de las distribuciones de Ubuntu, screen
viene preinstalado. Si no es así, puedes instalarlo fácilmente usando:
sudo apt update
sudo apt install screen
1. Creando una Sesión de Screen
Iniciar una nueva sesión de screen es sencillo.
Creación Básica
Simplemente escribe screen
en tu terminal y presiona Enter:
screen
Esto iniciará una nueva sesión de screen y se te presentará un nuevo prompt de shell. Puede parecer tu terminal anterior, pero ahora estás dentro de una sesión de screen.
Creando una Sesión con Nombre
Es muy recomendable nombrar tus sesiones, especialmente si planeas ejecutar varias. Esto las hace más fáciles de identificar y gestionar.
screen -S mi_sesion
Reemplaza mi_sesion
con un nombre descriptivo (por ejemplo, actualizar_servidor
, procesamiento_datos
).
2. Desacoplando y Reacoplando una Sesión de Screen
Uno de los principales beneficios de screen
es la capacidad de desacoplarse de una sesión (dejando los procesos ejecutándose en segundo plano) y reacoplarse más tarde.
Desacoplando de una Sesión de Screen
Una vez dentro de una sesión de screen, puedes desacoplarte de ella presionando:
Ctrl+a
(tecla Control y tecla 'a' simultáneamente), luego suelta, y luego presiona d
(de "detach" o desacoplar).
Tu terminal volverá al prompt de shell original, y verás un mensaje como [detached from pid.nombre_sesion]
. Los procesos que iniciaste dentro de la sesión de screen continuarán ejecutándose.
Listando Sesiones de Screen Activas
Para ver una lista de tus sesiones de screen actuales (ya sea acopladas o desacopladas), usa:
screen -ls
O:
screen -list
La salida se verá algo así:
There are screens on:
12345.mi_sesion (Detached)
67890.otra_sesion (Attached)
1 Sockets in /run/screen/S-usuario.
Esto muestra el ID de la sesión (por ejemplo, 12345
), el nombre de la sesión (si se proporcionó) y su estado.
Reacoplando a una Sesión de Screen
Para reacoplarte a una sesión desacoplada, puedes usar su ID o nombre.
Reacoplando por ID o Nombre:
screen -r 12345
O, si nombraste tu sesión:
screen -r mi_sesion
Si una sesión está marcada como
(Attached)
pero sabes que no lo está (por ejemplo, debido a una conexión rota):Puedes forzar su desacople y reacople con:
screen -d -r nombre_o_id_sesion
O, de forma más contundente:
screen -D -RR nombre_o_id_sesion
Este comando primero intenta desacoplar y reanudar. Si eso falla, crea una nueva sesión si no existe una, o se reacopla si existe, desacoplando primero cualquier cliente existente.
3. Terminando una Sesión de Screen
Cuando hayas terminado con una sesión de screen y todos los procesos dentro de ella, puedes terminarla.
Desde Dentro de la Sesión
La forma más sencilla de terminar una sesión de screen es salir de todos los shells que se ejecutan dentro de ella. Si estás en el prompt de shell dentro de la sesión de screen, simplemente escribe:
exit
Si hay múltiples ventanas dentro de screen, necesitarás hacer exit
en cada una. Una vez que se cierra la última ventana, la sesión de screen terminará y verás un mensaje como [screen is terminating]
.
Desde Fuera de la Sesión (Matando una Sesión Específica)
Si deseas terminar una sesión desacoplada específica desde tu terminal principal, puedes usar la opción -X
junto con el ID o nombre de la sesión y el comando quit
.
screen -X -S id_o_nombre_sesion quit
Por ejemplo:
screen -X -S 12345 quit
O:
screen -X -S mi_sesion quit
Esto matará la sesión de screen especificada y cualquier proceso que se ejecute dentro de ella.
screen
Otros Consejos Útiles para - Desplazamiento (Scroll): Dentro de una sesión de screen,
Ctrl+a
luegoEsc
entra en modo de copia/desplazamiento. Luego puedes usar las teclas de flecha,RePág
/AvPág
,Inicio
/Fin
para navegar. PresionaEsc
nuevamente para salir de este modo. - Ayuda: Dentro de una sesión de screen,
Ctrl+a
luego?
muestra una lista de combinaciones de teclas. - Múltiples Ventanas:
screen
permite crear múltiples ventanas dentro de una sola sesión (Ctrl+a
luegoc
para crear,Ctrl+a
luegon
para la siguiente,Ctrl+a
luegop
para la anterior,Ctrl+a
luego"
para una lista).
Conclusión
El comando screen
es una herramienta indispensable para cualquiera que trabaje extensamente en la línea de comandos de Linux, especialmente en servidores remotos. Al dominar cómo crear, desacoplar, reacoplar y terminar sesiones, puedes mejorar significativamente tu productividad y asegurar que tus tareas importantes se ejecuten sin interrupciones.
¡Comienza a usar screen
hoy mismo para tomar el control de tus sesiones de terminal!","rewrite":false}}}