Con el comando de pantalla de Linux, puede enviar 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 a través de conexiones SSH, incluso después de que se desconecta y se vuelve a conectar.

¿Qué es el comando de pantalla?

El comando de pantalla es un multiplexor terminaly está repleto de opciones. Decir que puede hacer mucho es el abuelo de los eufemismos. La pagina man se extiende a más de 4.100 líneas.

Los siguientes son los casos más comunes en los que usaría el comando de pantalla, 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 comando y luego empujar la ventana al fondo (llamado «separar»). Cuando desee ver cómo está funcionando su proceso, puede volver a colocar la ventana en primer plano («volver a adjuntar») y usarla nuevamente. Esto es ideal para procesos largos que no desea terminar accidentalmente al cerrar la ventana de terminal.
Una vez que tenga una sesión de pantalla en ejecución, puede crear nuevas ventanas y ejecutar otros procesos en ellas. Puede saltar fácilmente de una ventana a otra para controlar su progreso. También puede dividir la ventana de su terminal en regiones verticales u horizontales y mostrar sus diversas ventanas de pantalla en una ventana.
Puede conectarse a una máquina remota, iniciar una sesión de pantalla e iniciar un proceso. Puede desconectarse del host remoto, volver a conectarse y su proceso seguirá ejecutándose.
Puede compartir una sesión de pantalla entre dos conexiones SSH diferentes para que dos personas puedan ver lo mismo, en tiempo real.

Instalación de pantalla

Para instalar la pantalla en ubuntu, use este comando:

sudo apt-get install screen

los

Para instalar la pantalla en Manjaro, use el siguiente comando:

sudo pacman -Sy screen

los

En Fedora, escribe lo siguiente:

sudo dnf install screen

los

Introducción a la pantalla

Para iniciar la pantalla, simplemente escríbalo como se muestra a continuación y presione Enter:

screen

los

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.

los

Se queda 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:

curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip

los latest_kernel.zip ”comando en una ventana de terminal. ‘ width = ”646 ″ height =” 77 ″ onload = ”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (esto);” onerror = ”this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (esto);”>

Nuestra descarga comienza y la salida de curl nos muestra el progreso.

La salida del latest_kernel.zip ”comando en una ventana de terminal. ‘ width = ”646 ″ height =” 247 ″ onload = ”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (esto);” onerror = ”this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (esto);”>

  5 mejores auriculares Linux (USB) para juegos en 2020i

No podemos mostrarle una imagen del siguiente bit, porque es una secuencia 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ó la sesión de pantalla. Un mensaje le dice que se ha separado una ventana de pantalla etiquetada como 23167.pts-0.howtogeek.

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

screen -ls

los

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

screen -r 23167

los

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 del 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 salir para salir de la pantalla. Alternativamente, puede presionar Ctrl + A, y luego K para matar a la fuerza una ventana.

Escriba el siguiente comando:

exit

los

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 de que la pantalla está terminando.

los

Uso de sesiones de pantalla con nombre

Puede usar la opción -S (nombre de sesión) para nombrar su sesión de pantalla. 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 nuestra sesión «bigfile»:

screen -S bigfile

los

Cuando la pantalla 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:

curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip

los bigfile.zip ”comando en una ventana de terminal. ‘ width = ”646 ″ height =” 77 ″ onload = ”pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (esto);” onerror = ”this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (esto);”>

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

screen -ls

los

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:

screen -r bigfile

los

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

Curl la salida de descarga en una sesión de pantalla que se vuelve a adjuntar en una ventana de terminal.

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 la pantalla para colocar un solo proceso en segundo plano en una ventana separada. Sin embargo, la pantalla 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»:

screen -S monitor

los

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

  Cómo instalar Simplenote en Linux

Escribimos lo siguiente:

dmesg -H -w

los

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

los

Queremos ejecutar otra aplicación, por lo que necesitamos una nueva ventana de pantalla. Presionamos Ctrl + A y luego C para crear una nueva ventana. Vamos a usar el reloj para correr repetidamente vmstat, 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:

watch vmstat

los

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

los

Nuestros dos procesos se están ejecutando ahora. Para saltar entre las ventanas de la pantalla, 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 de dmesg), presionamos Ctrl + A y 0.

Volviendo al

Si presionamos Ctrl + A y 1, nos lleva de regreso a la ventana vmstat.

Volviendo al

¡Eso es bastante ingenioso! Podemos presionar Ctrl + A, y luego D para desconectarnos de esta sesión; podemos volver a adjuntar 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.

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

La ventana se divide en dos «regiones».

UN

La región superior todavía 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.

UN

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 la ventana dmesg en esta región.

los

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, Tab: Mover a la región inferior.
Ctrl + A, 0: Ventana de visualización cero en la región 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.

UN

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

df

UN

Cuando vemos df ejecutándose, presionamos Ctrl + A y el carácter de barra vertical (|). 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 la ventana dmesg.

  Cómo hacer que las aplicaciones de Windows funcionen en Linux con CrossOver

UN

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 hacia adelante y hacia atrás entre la región actual y la anterior.
Ctrl + A, Q: cierra todas las regiones excepto la actual.
Ctrl + A, X: cierra la región actual.

Usando la pantalla sobre SSH

Con la pantalla, 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 desde uno diferente con el comando ssh. 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:

ssh [email protected]

los

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

screen -S ssh-geek

los

Para fines de demostración, ejecutaremos la parte superior de la ventana de la pantalla, pero puede iniciar cualquier proceso de larga duración o sin fin.

Escribimos lo siguiente:

top

los

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

los

Regresamos a la ventana de terminal remota original.

El usuario regresó a su ventana de terminal original

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

exit

los

Escribimos lo siguiente para volver a conectar:

ssh [email protected]

los

Después de volver a conectarnos e iniciar sesión, podemos escribir lo siguiente para volver a conectar la sesión de pantalla:

screen -r ssh-geek

los

Ahora estamos reconectados a nuestra instancia aún en ejecución de top.

los

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

Compartir una sesión de pantalla

También puede utilizar una sesión de pantalla 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:

ssh [email protected]

los

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

Escribe lo siguiente:

screen -d -m -S ssh-geek

los

Escribe lo siguiente, usando la opción -X (modo multipantalla) para adjuntar la sesión:

screen -X ssh-geek

los

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

ssh [email protected]

los

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

screen -X ssh-geek

los

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

los

Salida del

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

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