Uso de la pantalla GNU con ejemplos

Uso de la pantalla GNU con ejemplos

¿Has estado incluso en la situación en la que estaba ejecutando una copia o un script de 3 horas en una máquina remota, solo para descubrir que se rompió a 2h 45 minutos porque su conexión de red o conexión SSH cayeron momentáneamente? Si es así, sabe lo doloroso que se siente 🙂 Bienvenido a la pantalla GNU, la utilidad que le permite iniciar un caparazón separado que no se interrumpe si su conexión de red se rompe. Siga leyendo para descubrir cómo usarlo y más!

En este tutorial aprenderás:

  • Cómo instalar y usar la utilidad de la pantalla GNU
  • Cómo configurar la utilidad de la pantalla GNU para funcionar mejor
  • Ejemplos de uso básico sobre cómo usar la utilidad de la pantalla GNU desde la línea de comandos de Bash
Uso de la pantalla GNU con ejemplos

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Independiente de la distribución de Linux
Software Línea de comando bash, sistema basado en Linux
Otro La utilidad de la pantalla se puede instalar utilizando pantalla de instalación de sudo apt-get (o beque en lugar de apt-get para sistemas basados ​​en redhat)
Convenciones # - requiere que los comandos de Linux se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
$-Requiere que los comandos de Linux se ejecuten como un usuario regular no privilegiado

Ejemplo 1: Inicio de una sesión de pantalla

Pantalla de instalación $ sudo apt-get $ pantalla 

Se inicia una sesión de pantalla y se puede requerir Enter para cerrar la pantalla de salpicaduras. A continuación, comenzamos un proceso de sueño dentro de la sesión de pantalla:

$ Sleep 3600 

Ahora puede presionar CTRL+A+D (Presione CONTROL, prensa a, liberar a, prensa d, liberar d, liberar CONTROL). Verá lo siguiente, en su sesión de shell original (con un número de identificación de proceso diferente):

[separado de 1130130.PTS-10.a B C] 

Ahora que estamos separados de la sesión de pantalla, escanemos las sesiones de pantalla en vivo en el sistema:

$ pantalla -ls hay una pantalla en: 1130130.PTS-10.ABC (06/08/20 13:41:43) (separado) 1 enchufe in/run/screen/s-abc. $ screen -d -r 113 $ sleep 3600 # Nuestro sueño sigue funcionando 

A continuación, puedes usar Ctrl+C Para terminar el sueño. Entonces puedes usar salida Cerrar nuestra sesión de pantalla y regresar es a nuestra sesión de shell anterior/original. Tenga en cuenta que también podría haber usado pantalla -d -r sin el 112, Como solo había una pantalla ejecutándose.

En su ejemplo, instalamos pantalla (puede ser necesario o no dependiendo de su distribución de Linux utilizada), abrió una sesión de pantalla y comenzó a dormir mucho. Posteriormente, nos desconectamos de la sesión de pantalla (que puede considerar como otro shell que continuará existiendo incluso si el usuario inicia sesión o se desconecta), y cuestionó el sistema en la sesión de la pantalla en ejecución.

Luego nos reconectamos usando el -dr taquigrafía a menudo usada. Esta taquigrafía básicamente significa Desconectado cualquier conexión preexistente de la sesión que se hace referir y conectarme a ella. Es útil simplemente aprender y luego siempre usar esta taquigrafía. La razón es que si está conectado remotamente a un servidor, es probable que tenga múltiples sesiones de shell abiertas, y es posible que ya haya conectado a un pantalla Sesión de otra sesión de shell.

Nuestro pantalla -ls La sesión muestra que nuestra actual pantalla La sesión fue Separado que ahora debería tener sentido; No estamos conectados a/en vivo dentro de la sesión de pantalla.

Ejemplo 2: matar y limpiar una sesión de pantalla

A veces, especialmente cuando comienza trabajos de alto perfil/intensivo, su sesión de pantalla puede encontrarse con problemas y terminar, no por un error en el pantalla Utilidad, pero debido a su trabajo ejecutándose, por ejemplo, en problemas de OOM (fuera de la memoria), etc. En este caso verá:

$ pantalla -ls hay una pantalla en: 1130130.PTS-10.ABC (06/08/20 13:41:43) (muerto???) 

Tan pronto como una sesión de pantalla se marca como Muerto??? Hay poco que se pueda hacer con eso. Una forma de limpiar esta sesión de pantalla es matar la sesión, luego borrarla:

$ Kill -9 1130130 $ pantalla -wipe Hay una pantalla en: 1130130.PTS-10.ABC (06/08/20 13:41:43) (eliminado) 1 enchufe limpiado. No se encuentran enchufes en/ejecutar/pantalla/S-ABC. 

Ejemplo 3: Pantalla de ajuste para ser más fácil de usar

Uno de los desafíos con el uso pantalla es que, fuera de la caja, no es muy fácil de usar. Por ejemplo, abre una pantalla de salpicaduras cada vez que la inicia. Otros elementos incluyen a veces los enlaces de llave potencialmente frustrantes, y un retroceso limitado de desplazamiento.

La mayoría de estos se pueden resolver creando un ~/.screenrc archivo. Para hacer esto, use su editor de texto favorito para crear un .screenrc Archivo dentro de su Homedir. Tenga en cuenta que el punto principal hace que el archivo sea invisible, y es significativo para que las cosas funcionen correctamente. Dentro del archivo puede pegar lo siguiente:

Defscrollback 20000 startup_message Off Autodetach en Vbell en vbell_msg 'Bell!'Termcapinfo xterm* z0 = \ e [?3H: z1 = \ e [?3L: es = \ e [r \ e [m \ e [2j \ e [h \ e [?7H \ E [?1; 4; 6L termcapinfo xterm* ol = 2000 bind . bind h bind ^h bind x bind ^x bind ^\ 

El Defscrollback 20000 Establece el retroceso en líneas de 20k. A continuación, apagamos la pantalla de salpicaduras con startup_message apagado. También activamos automáticamente y creamos una campana virtual (que no genera sonido y usa salida visual), y configuramos su mensaje (para la pantalla en pantalla) en 'Bell!'.

A continuación, establecemos dos TermCapinfo para Xterm, donde el primero evita cambiar el tamaño de la ventana, y el segundo aumenta el búfer de salida para la velocidad. Finalmente, eliminamos algunos atajos de teclado preexistentes (configurándolos en blanco). Esto deshabilita el dumptermcap (unir .), deshabilitado escribiendo una copia de la pantalla al disco (H y Ctrl+H ^H), apague el bloqueo de la pantalla (X y CTRL+X ^x) y finalmente matando todas las ventanas/pantalla de salida (^\).

Consejo final: si desea acceder a la pantalla interior de la espalda de desplazamiento, a menudo no puede simplemente 'desplazarse hacia arriba'. En cambio, presione Ctrl+A+ESC (prensa CONTROL, prensa a, liberar a, prensa ESC, liberar ESC, liberar CONTROL), luego usa el cursor clave para desplazarse hasta donde desee (hasta las 20k líneas en las que definió ~/.screenrc). Prensa ESC nuevamente para salir del modo de desplazamiento/copia.

Conclusión

En este tutorial, exploramos cómo instalar y usar el pantalla utilidad, y cómo configurarlo para que funcione mejor. También nos vimos básicos pantalla Ejemplos de uso en la línea de comandos de Bash. pantalla puede ser una herramienta versátil en el bolsillo de cualquier desarrollador o usuario bash, y lo invitamos a publicar la suya propia pantalla Ejemplos de uso o comentarios a continuación!

Disfrutar!

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
  • Cosas para instalar en Ubuntu 22.04
  • Ubuntu 20.04 Guía
  • Sistema colgado de Linux? Cómo escapar a la línea de comando y ..
  • Instale Arch Linux en VMware Workstation
  • Cómo aprovechar al máximo OpenSsh
  • Cómo usar ADB Android Debug Bridge para administrar su Android ..