Cómo usar el comando de pantalla de Linux

Una terminal Linux en una computadora portátil con otras sesiones de terminal superpuestas detrás.

fatmawati achmad zaenuri / Shutterstock



Con Linux screen comando, puede empujar las aplicaciones de terminal en ejecución a un segundo plano y moverlas hacia adelante cuando desee verlas. También es compatible con pantallas divididas y funciona sobre Conexiones SSH , incluso después de desconectarse y volver a conectarse.

RELACIONADO: 10 comandos básicos de Linux para principiantes





¿Qué es el comando de pantalla?

El screen el comando es un multiplexor terminal y está repleto de opciones. Decir que puede hacer mucho es el abuelo de las subestimaciones. La pagina man se extiende a más de 4.100 líneas .

Los siguientes son los casos más comunes en los que utilizaría screen comando, y los cubriremos más en este artículo:



  • La operación estándar es crear una nueva ventana con un shell en ella, ejecutar un mando y luego empujar la ventana al fondo (lo que se denomina separar). Cuando desee ver cómo está funcionando su proceso, puede tirar de la ventana al primer plano nuevamente (volver a adjuntar) y usarla nuevamente. Esto es ideal para procesos largos que no desea terminar accidentalmente al cerrar la ventana de la terminal.
  • Una vez que tenga un screen sesión en ejecución, puede crear nuevas ventanas y ejecutar otros procesos en ellas. Puede saltar fácilmente entre ventanas para monitorear su progreso. También puede dividir la ventana de su terminal en regiones verticales u horizontales, y mostrar sus diversas screen ventanas en una ventana.
  • Puede conectarse a una máquina remota, iniciar un screen sesión y lanzar un proceso. Puede desconectarse del host remoto, volver a conectarse y su proceso seguirá ejecutándose.
  • Puedes compartir un screen sesión entre dos conexiones SSH diferentes para que dos personas puedan ver lo mismo, en tiempo real.

Instalación de pantalla

Para instalar screen en ubuntu, use este comando:

|_+_|

Para instalar screen en Manjaro, use el siguiente comando:



|_+_|

En Fedora, escribe lo siguiente:

|_+_|

Introducción a la pantalla

Para comenzar screen, simplemente escríbalo como se muestra a continuación y presione Enter:

|_+_|

Verá una página con información de licencia. Puede presionar la barra espaciadora para leer la segunda página o Enter para regresar al símbolo del sistema.

Anuncio publicitario

Te dejan en el símbolo del sistema y no parece que haya sucedido mucho. Sin embargo, ahora está ejecutando un shell dentro de un emulador de terminal multiplexado. ¿Por qué esto es bueno? Bueno, comencemos un proceso que llevará mucho tiempo completar. Descargaremos el código fuente del último kernel de Linux y lo redirigiremos a un archivo llamado latest_kernel.zip.

Para hacerlo, escribimos lo siguiente:

|_+_|

Comienza nuestra descarga y el curl La salida nos muestra el progreso.

No podemos mostrarle una imagen del siguiente bit, porque es una secuencia de pulsaciones de teclas. Escribe Ctrl + A, suelta esas teclas y luego presiona d para separar la pantalla.

El proceso de descarga aún se está ejecutando, pero la ventana que muestra la descarga se eliminó. Regresará a la ventana de terminal desde la que inició screen sesión. Un mensaje le dice que un screen ventana etiquetada 23167.pts-0.howtogeek se ha desprendido.

Necesita el número del inicio del nombre de la ventana para volver a adjuntarlo. Si lo olvida, siempre puede usar el -ls (lista), como se muestra a continuación, para obtener una lista de las ventanas separadas:

|_+_|

Cuando esté listo, puede utilizar el -r (volver a adjuntar) y el número de la sesión para volver a adjuntarlo, así:

|_+_|

Anuncio publicitario

La ventana que ha estado funcionando en segundo plano ahora vuelve a la ventana de su terminal como si nunca se hubiera ido.

Una sesión de pantalla reincorporada restaurada a la ventana de la terminal.

Si es un proceso que se ejecutará hasta su conclusión, eventualmente se completará. Si es un proceso continuo, eventualmente querrá terminarlo. De cualquier manera, cuando finalice el proceso, puede escribir exit para salir del screen. Alternativamente, puede presionar Ctrl + A y luego K para matar a la fuerza una ventana.

Escriba el siguiente comando:

|_+_|

Regresará a la ventana de su terminal anterior, que seguirá mostrando el comando que utilizó para volver a adjuntar la ventana. Debido a que cerramos nuestra única ventana separada, recibimos un mensaje que screen está terminando.

RELACIONADO: Cómo usar curl para descargar archivos desde la línea de comandos de Linux

Uso de sesiones de pantalla con nombre

Puede utilizar el -S (nombre de sesión) para nombrar su screen sesión. Si usa un nombre memorable en lugar de la identidad numérica de la sesión, es más conveniente volver a conectarse a una sesión. Escribimos lo siguiente para nombrar nuestro archivo grande de sesión:

|_+_|

Cuando screen inicia nuestra sesión, vemos una ventana en blanco con un símbolo del sistema. Vamos a descargar un archivo grande, por lo que podemos usar un proceso de larga duración como ejemplo.

Escribimos lo siguiente:

|_+_|

Cuando comienza la descarga, presionamos Ctrl + A, y luego presionamos D para desconectar la sesión. Escribimos lo siguiente para usar el -ls (lista) opción con screen para ver los detalles de nuestra sesión separada:

|_+_|

Anuncio publicitario

Detrás del identificador numérico (23266), vemos el nombre de nuestra sesión (bigfile). Escribimos lo siguiente, incluido el nombre de la sesión, para volver a adjuntarlo:

|_+_|

Nos volvimos a conectar a nuestra ventana de descarga y vemos que la descarga larga aún está en curso.

Cuando se completa la descarga, escribimos exit para cerrar la ventana de la sesión.

Usando la pantalla con múltiples ventanas

Hasta ahora, hemos utilizado screen para colocar un solo proceso en segundo plano en una ventana separada. Sin embargo, |_+_| es capaz de hacer mucho más que eso. A continuación, ejecutaremos algunos procesos que nos permitirán monitorear algunos aspectos de nuestra computadora.

Escribimos lo siguiente para iniciar una sesión de pantalla llamada monitor:

|_+_|

Anuncio publicitario

En el símbolo del sistema en nuestra nueva sesión de ventana, vamos a lanzamiento screen y utilice el dmesg (legible por humanos) y -H (esperar mensajes nuevos) opciones. Esta voluntad mostrar los mensajes del búfer del kernel ; aparecerán nuevos mensajes a medida que se produzcan.

Escribimos lo siguiente:

|_+_|

Aparecen los mensajes existentes. No regresamos al símbolo del sistema porque -w está esperando nuevos mensajes y los mostrará a medida que lleguen.

RELACIONADO: Cómo usar el comando dmesg en Linux

Queremos ejecutar otra aplicación, por lo que necesitamos una nueva dmseg ventana. Presionamos Ctrl + A, y luego C para crear una nueva ventana. Vamos a utilizar screen a correr repetidamente watch, por lo que obtenemos una actualización frecuente visualización del uso de la memoria virtual en nuestra computadora.

En el nuevo símbolo del sistema, escribimos lo siguiente:

|_+_|

El vmstat La salida aparece y se actualiza cada dos segundos.

Nuestros dos procesos ahora se están ejecutando. Para saltar entre vmstat ventanas, presione Ctrl + A, y el número de la ventana. La primera que creamos es la ventana cero (0), la siguiente es la ventana 1, y así sucesivamente. Para saltar a la primera ventana (la screen una), presionamos Ctrl + A y 0.

Si presionamos Ctrl + A y 1, nos lleva de nuevo a la dmesg ventana.

¡Eso es bastante ingenioso! Podemos presionar Ctrl + A, y luego D para desconectarnos de esta sesión; podemos volver a unir más tarde. Ambas sesiones seguirán ejecutándose. Nuevamente, para cambiar entre las ventanas, presionamos Ctrl + A y el número (0 o 1) de la ventana a la que queremos cambiar.

Vayamos al siguiente paso y veamos ambas pantallas en una ventana. Cuando haga esto, ampliará la ventana de su terminal a un tamaño que haga que este paso sea útil. Nuestros ejemplos están limitados al tamaño de nuestras capturas de pantalla, por lo que nuestras ventanas se verán un poco estrechas.

Anuncio publicitario

Para hacer esto, presionamos Ctrl + A, y luego Shift + S (se requiere una S mayúscula).

La ventana se divide en dos regiones.

La región superior aún muestra vmstat y la región inferior está en blanco. El cursor está resaltado en la captura de pantalla siguiente. Para moverlo a la región inferior, presionamos Ctrl + A, y luego Tab.

El cursor se mueve a la región inferior, que en realidad es solo un espacio vacío. No es un caparazón, por lo que no podemos escribir nada en él. Para obtener una pantalla útil, presionamos Ctrl + A, y luego presionamos 0 para mostrar vmstat ventana en esta región.

Esto nos da ambas salidas en vivo en una ventana dividida. Si presionamos Ctrl + A y D para separar la ventana y luego la volvemos a unir, perderemos la vista de panel dividido. Sin embargo, podemos restaurarlo con los siguientes atajos de teclado:

    Ctrl + A, S:Divide la ventana horizontalmente. Ctrl + A, Pestaña: Muévase a la región inferior. Ctrl + A, 0:Visualización de la ventana cero en la zona inferior.

Podemos llevar las cosas incluso un paso más allá. Ahora dividiremos el panel inferior verticalmente y agregaremos un tercer proceso a la pantalla. Con el cursor en la región inferior, presionamos Ctrl + A y C para crear una nueva ventana con un shell en ella. La región inferior muestra la nueva ventana y nos da un símbolo del sistema.

A continuación, ejecutamos el dmesg comando para comprobar el uso del sistema de archivos :

|_+_|

Anuncio publicitario

Cuando vemos df corriendo, presionamos Ctrl + A y el carácter de tubería df. Esto divide la región inferior verticalmente. Presionamos Ctrl + A y Tab para movernos a la nueva región. A continuación, presionamos Ctrl + A y 0 para mostrar el (|) ventana.

También puede moverse de una región a otra y agregar más divisiones verticales u horizontales. Aquí hay algunas combinaciones de teclas más útiles:

    Ctrl + A:Salta de un lado a otro entre la región actual y la anterior. Ctrl + A, Q:Cierre todas las regiones excepto la actual. Ctrl + A, X:Cierra la región actual.

Usando la pantalla sobre SSH

Con dmesg, puede iniciar una sesión de ventana, desconectarla para que siga ejecutándose en segundo plano, cerrar sesión o volver a iniciarla y volver a conectar la sesión.

Hagamos un SSH conexión a nuestra computadora de uno diferente con el screen mando. Tenemos que proporcionar el nombre de la cuenta con la que nos vamos a conectar y la dirección de la computadora remota.

Para nuestro ejemplo, escribimos lo siguiente:

|_+_|

Después de autenticarnos en la computadora remota e iniciar sesión, escribimos lo siguiente para iniciar un ssh sesión llamada ssh-geek:

|_+_|

Para fines de demostración, ejecutaremos screen en el top ventana, pero puede iniciar cualquier proceso interminable o de larga duración.

Escribimos lo siguiente:

|_+_|

Anuncio publicitario

Una vez screen se está ejecutando en la ventana, presionamos Ctrl + A, y luego D para separar la ventana.

Regresamos a la ventana de terminal remota original.

El usuario regresó a su ventana de terminal original

Si escribimos top, como se muestra a continuación, desconecta la sesión SSH y volvemos a nuestra computadora local:

|_+_|

Escribimos lo siguiente para volver a conectar:

|_+_|

Después de volver a conectarnos e iniciar sesión, podemos escribir lo siguiente para volver a adjuntar el exit sesión:

|_+_|

Ahora nos hemos vuelto a conectar a nuestra instancia aún en ejecución de screen.

Esto es excelente si desea iniciar un proceso en una máquina y luego continuar donde lo dejó en otra.

RELACIONADO: Cómo crear e instalar claves SSH desde el Shell de Linux

Compartir una sesión de pantalla

También puede utilizar un top sesión para permitir que dos personas vean e interactúen con la misma ventana. Digamos que alguien que ejecuta Fedora en su computadora quiere conectarse a nuestro servidor Ubuntu.

Escribiría lo siguiente:

|_+_|

Después de conectarse, inicia una sesión de pantalla llamada ssh-geek usando la opción -S (nombre de la sesión). También usa el screen (separar) y -d (creación forzada) opciones para crear un nuevo -m sesión que ya está separada.

Escribe lo siguiente:

|_+_|

Anuncio publicitario

Escribe lo siguiente, usando el screen (modo multipantalla) para adjuntar la sesión:

|_+_|

En una computadora Manjaro, otra persona se conecta a la computadora Ubuntu con las mismas credenciales de cuenta, como se muestra a continuación:

|_+_|

Una vez que está conectada, escribe -x comando y usa la opción -X (modo multipantalla) para unirse a la misma sesión de ventana, así:

|_+_|

Ahora, cualquier cosa que escriba una persona, la otra verá. Por ejemplo, cuando una persona emite el comando de fecha, ambos lo ven tal como se escribe, así como su salida.

Ambas personas ahora comparten un screen sesión que se ejecuta en una computadora Ubuntu remota.


Para un software que vio la luz por primera vez en 1987, screen todavía tiene un buen golpe de productividad. ¡Familiarizarse con él será un tiempo bien empleado!

RELACIONADO: 37 comandos importantes de Linux que debe conocer

Comandos de Linux
Archivos alquitrán · pv · gato · tac · chmod · sujeción · diff · sed · Con · hombre · empujado · popd · fsck · testdisk · seq · fd · pandoc · cd · $ RUTA · awk · entrar · jq · pliegue · uniq · journalctl · cola · Expresar · ls · fstab · echo · menos · chgrp · chown · Rdo · Mira · instrumentos de cuerda · escribe · rebautizar · Código Postal · abrir la cremallera · montar · desmontar · Instalar en pc · fdisk · mkfs · rm · rmdir · rsync · df · gpg · nosotros · nano · mkdir · desde · en · parche · convertir · rclone · desgarrar · SRM
Procesos alias · pantalla · cima · bonito · re bueno · Progreso · strace · sistema · tmux · chsh · historia · en · lote · gratis · cual · dmesg · usermod · ps · chroot · xargs · tty · meñique · lsof · vmstat · se acabó el tiempo · pared · · matar · dormir · sudo · su · hora · Groupadd · usermod · grupos · lshw · apagar · reiniciar · detener · apagado · passwd · lscpu · crontab · fecha · bg · fg
Redes netstat · silbido · trazar ruta · ip · ss · quién es · fail2ban · bmon · Uds · dedo · nmap · ftp · rizo · wget · quién · quién soy · En · iptables · ssh-keygen · ufw

RELACIONADO: Las mejores computadoras portátiles Linux para desarrolladores y entusiastas

LEER SIGUIENTE Foto de perfil de Dave McKay Dave McKay
Dave McKay usó computadoras por primera vez cuando la cinta de papel perforada estaba de moda, y ha estado programando desde entonces. Después de más de 30 años en la industria de las tecnologías de la información, ahora es un periodista de tecnología a tiempo completo. Durante su carrera, ha trabajado como programador autónomo, gerente de un equipo de desarrollo de software internacional, gerente de proyectos de servicios de TI y, más recientemente, como oficial de protección de datos. Su escrito ha sido publicado por howtogeek.com, cloudsavvyit.com, itenterpriser.com y opensource.com. Dave es un evangelista de Linux y un defensor del código abierto.
Leer biografía completa

Artículos De Interés