El comando screen es un comando muy común utilizado en Linux para lanzar y organizar múltiples shells de terminal dentro de un único shell.
El comando screen se utiliza la mayoría de las veces para dos propósitos.
Puede ser utilizado con el fin de organizar múltiples shells y navegar entre ellos fácilmente.
También puede ser utilizado con el fin de tener comandos de larga ejecución en servidores remotos.
De hecho, la pantalla se pone en marcha con el fin de asegurarse de que no se pierde ningún trabajo a distancia en caso de una interrupción repentina de la red.
En este tutorial, vamos a tener una visión completa de lo que es el comando screen en Linux y cómo se puede utilizar con eficacia.
¿Listo?
Requisitos previos
Para poder instalar nuevos paquetes, tendrás que ser un usuario sudo.
Si necesita añadir un usuario a sudoers en Debian, hay un tutorial para ello.
También hay uno para las distribuciones basadas en Red Hat.
Cuando esté listo, escriba este comando para asegurarse de que tiene derechos sudo.
$ sudo -lUser user may run the following commands on localhost: (ALL) ALL
Instalar Screen en Linux
Para instalar Screen, tendrás que ejecutar uno de los siguientes comandos.
En distribuciones basadas en Debian, puedes ejecutar
$ sudo apt-get install screen
Para distribuciones basadas en Red Hat, tendrás que ejecutar
$ sudo yum install -y screen
Cuando hayas terminado, puedes ejecutar este comando para comprobar tu versión actual de screen.
$ screen -vScreen version 4.06.02 (GNU) 23-Oct-17
Interactuando con Screen en Linux
Como se ha descrito anteriormente, screen se utiliza para iniciar un shell interactivo donde puedes reorganizar múltiples shells en él.
Para iniciar su primera pantalla, simplemente escriba el siguiente comando.
Como puedes ver, no hay diferencias con tu anterior shell salvo por el hecho de que la cabecera escribe
screen 0: :~
A partir de ahí, significa que un intérprete bash se ejecuta dentro de otro intérprete bash a través de la utilidad de pantalla.
Para ejecutar un comando, simplemente hay que escribir un comando como se haría normalmente.
Obteniendo ayuda con screen
Al interactuar con el comando screen, tendrás que ejecutar atajos en tu teclado para ejecutar acciones dentro de la sesión de screen.
Por defecto, las teclas «Ctrl + A» están diseñadas para interactuar con screen.
Como ejemplo, escribe «Ctrl + A» y luego «?» para obtener la ayuda en pantalla.
Como puedes ver, tienes muchas opciones diferentes para interactuar con la pantalla.
Las más populares son probablemente las siguientes :
- «Ctrl + A» y luego «d» : modo de separación. Usted puede utilizar esta opción con el fin de separarse (lo que significa volver a su shell original) y dejar que la pantalla se ejecute en el fondo. Esto es particularmente útil cuando usted está ejecutando tareas largas en su host.
- «Ctrl + A» y luego «x» : lockscreen. Esto se utiliza con el fin de proteger su sesión de pantalla para ser utilizado por otro usuario. Como consecuencia, se establece una contraseña para su sesión.
- «Ctrl + A» y luego «c» : comando de pantalla. Uno de los comandos más utilizados con diferencia, estos enlaces se utilizan para crear una nueva ventana dentro de su instancia de pantalla.
- «Ctrl + A» y luego «|» : división vertical. Por defecto, este comando dividirá su ventana actual en dos áreas diferentes con las que puede interactuar.
- «Ctrl + A» y luego «S» : división horizontal.
- «Ctrl + A» y luego «n» : se utiliza para navegar entre sus diferentes sesiones de ventana desde la de menor índice hasta la de mayor índice.
- «Ctrl + A» y luego «Tab» : se utiliza para mover su cursor de entrada a una de sus diferentes áreas dentro de la pantalla.
En la mayoría de los casos, esos son los comandos que vas a utilizar con screen.
Dividir regiones con el comando screen
Como ejemplo, vamos a crear el siguiente layout con el comando screen en Linux.
Como puedes ver, vamos a dividir el terminal tanto vertical como horizontalmente.
Una ventana se utilizará para ejecutar un comando (como un comando de larga duración por ejemplo).
Una segunda ventana se utilizará para monitorizar el rendimiento del sistema utilizando el comando superior.
Por último, otra ventana se puede utilizar con el fin de editar un archivo a través del editor nano.
Creación de ventanas de pantalla
En primer lugar, cree una sesión de pantalla ejecutando el siguiente comando.
$ screen -S user-screen
La opción -S creará una sesión con nombre para su entorno de pantalla.
Cuando varios administradores trabajan en el mismo sistema, puede ser una buena idea tener sesiones con nombre para distinguir sus sesiones de las demás.
A continuación, como va a manipular tres sesiones de shell, va a necesitar dos pantallas adicionales.
Ejecute el comando «create» dos veces («Ctrl + A» y luego «c»). Deberías terminar con la siguiente pantalla.
Nota que la cabecera o tu shell de terminal muestra «pantalla 2» porque actualmente hay tres pantallas activas para tu sesión.
Dividir las ventanas de la pantalla vertical y horizontalmente
El siguiente paso será crear tus diferentes regiones en tu ventana actual.
Para conseguirlo, primero divide tu región actual verticalmente pulsando «Ctrl +A» y luego «|»
Deberías terminar con la siguiente salida.
A continuación, divide tu diseño horizontalmente pulsando «Ctrl +A» y luego «S».
Esto es lo que deberías obtener.
Navega hasta tu segunda región pulsando «Ctrl +A» y luego «Tab». Por defecto, tu región debería estar vacía, por lo que puedes pulsar «Ctrl +A» y luego «n» para navegar a tu sesión de pantalla 0.
Desde ahí, ejecuta el comando que quieras ejecutar.
Repite los pasos anteriores para ejecutar comandos en las demás regiones.
Recuerda que tienes que navegar entre las ventanas de tu pantalla cuando entres por primera vez en una región dividida.
¡Increíble! Has creado tu sesión de pantalla completa y personalizada.
Despegando de tu sesión de pantalla
Para despegarte de tu sesión de pantalla, simplemente pulsa las siguientes teclas.
$ Ctrl + A then d
Tu sesión de pantalla sigue ejecutándose en segundo plano.
Este es uno de los aspectos principales del comando de pantalla.
Se puede utilizar con el fin de crear a un host remoto a través de SSH, realizar algunas acciones, y salir para volver a ellos más tarde.
De esta manera, usted no tiene que manipular el fondo y el primer plano que puede perder al cerrar su terminal actual.
Para verificar que tu sesión de pantalla sigue en marcha, ejecuta el siguiente comando
$ pstree | grep -A 2 -E "screen-"
Realizando tu sesión de pantalla
En primer lugar, puedes listar tus ventanas de pantalla ejecutando el siguiente comando.
$ screen -ls
Si has nombrado tu sesión de pantalla, puedes simplemente ejecutar el siguiente comando
$ screen -r <session_name>
En el ejemplo anterior, tendría que ejecutar este comando para volver a mi sesión.
$ screen -r user-screen
Tenga en cuenta que también puede volver a su sesión utilizando el ID de pantalla que aparece a la izquierda del comando ls.
$ screen -r 3600
Desgraciadamente, perderá todos sus cambios visuales y tendrá que volver a dividir sus ventanas.
Sin embargo, con la suficiente práctica, podrías aprender sobre los atajos muy fácilmente.
Bloquear tu sesión de pantalla
A veces, podrías querer evitar que otros usuarios interactúen con tu sesión de pantalla.
Para bloquear tu pantalla, pulsa «Ctrl + A» y luego «x».
Para desbloquearla, tienes que introducir la contraseña del usuario propietario de la sesión de pantalla.
Conclusión
En el tutorial de hoy, has aprendido cómo puedes manipular fácilmente el comando screen en Linux con el fin de crear entornos de shell personalizados dentro de un shell común.
Aprendiste que se puede utilizar en servidores remotos con el fin de asegurarte de que puedes salir de la sesión y seguir guardando tu trabajo (si tienes comandos de larga ejecución en primer plano, por ejemplo).
Si te interesa la Administración de Sistemas Linux, tenemos una sección completa dedicada a ella en la web.