Defina un excelente perfil de pantalla GNU usando .screenrc

Shutterstock / Andrey Suslov

screen, la utilidad de Linux que le permite lanzar una "pantalla" dentro de un terminal, está un poco subconfigurada por defecto. Aprenda a crear un excelente perfil de pantalla que se cargue automáticamente cada vez que use la pantalla.

Índice de contenidos
  1. Qué es pantalla?
  2. Instalación pantalla
  3. Definición de una configuración grande .screenrc
  4. Terminando

Qué es pantalla?

Screen es una utilidad GNU (GNU es una gran colección de software de código abierto y su empaquetado en un sistema operativo se conoce comúnmente como Linux) que le permite lanzar una o más pantallas dentro de su terminal.

Puede preguntar por qué querría abrir una pantalla dentro de mi terminal y puede definir pantalla mejor / más lejos? Por supuesto. Imagine que está utilizando un servidor SSH remoto y, de repente, su conexión de red se cae, justo en el medio de la migración de la base de datos o la copia de seguridad de producción, que se estaba ejecutando en la ventana de su terminal. Sucede con regularidad y el problema es que cualquier comando que se ejecute cuando se perdió la conexión ahora se termina sin importar en qué estado se encontrara.

Esta situación claramente molesta es la que desea evitar a toda costa. No solo puede dejar el sistema o el paquete de software en un estado indefinido, sino que todo el trabajo realizado hasta ese momento podría simplemente perderse.

Bienvenido a screen, la utilidad de Linux que le permite iniciar una sesión de terminal virtual (un 'pantalla') dentro de la sesión de terminal, con la principal y gran ventaja de que esa sesión de pantalla no terminará cada vez que se interrumpa la conexión de red o cuando la sesión de terminal que inició la screen sesión (el proceso padre). Puede esperar a que vuelva su conexión de red o abrir otra terminal si no está conectado a través de SSH y solo trabaja en la máquina local y simplemente vuelve a conectarse a la sesión de pantalla.

¿Genial? Instalamos rapidamente pantalla entonces, si aún no lo ha hecho:

Instalación pantalla

Instalar pantalla en su distribución de Linux basada en Debian / Apt (como Ubuntu y Mint), ejecute el siguiente comando en su terminal:

sudo apt install screen

Instalar pantalla en su distribución de Linux basada en RedHat / Yum (como RHEL, Centos y Fedora), ejecute el siguiente comando en su terminal:

sudo yum install screen

Ahora que la pantalla está instalada, puede comenzar a usarla de inmediato. Solo corre screen en la línea de comando y estás dentro. Es posible que deba presionar enter o la barra espaciadora para revisar el archivo screen pantalla de inicio.

La pantalla de inicio de la pantalla GNU de Linux

Verá un nuevo símbolo del sistema. Presione la secuencia de teclas CTRL+a > CTRL+d para volver al símbolo del sistema de la sesión del shell principal. Entonces, puedes realizar screen -ls para ver una lista de sesiones de pantalla activas. Al escribir el comando (en el shell principal en el que se encuentra ahora si siguió el texto de manera idéntica), screen -d -r te llevará de regreso a la screen sesión, siempre que solo esté activa una sesión de pantalla (se pueden iniciar muchas).

Si se está ejecutando más de una sesión de pantalla en su sistema (y es de su propiedad), puede escribir screen -d -r NAME Dónde está NAME es el nombre de una pantalla según la lista screen -ls, por ejemplo 367434.pts-1.roel1, incluso si solo especifica una parte antes o después del período (como 367 o pts), que aún identifica de forma única una sesión de pantalla en particular, también es suficiente.

Veamos cómo podemos ahora definir un gran perfil de pantalla, basado en un extracto de setup_server.sh, ubicado en el repositorio Percona-QA GitHub (licencia GPLv2), un script creado para configurar un servidor para pruebas de control de calidad. No recomiendo ejecutar este script ya que está desactualizado, se usa solo como referencia y generalmente se hace manualmente paso a paso. La única sección que usaremos es el archivo. .screenrc código, que se reproduce a continuación.

Definición de una configuración grande .screenrc

los .screenrc El archivo es un archivo de configuración oculto en el directorio de inicio. Para cambiarlo (probablemente aún no exista, especialmente si acaba de instalar screen, simplemente use su editor de texto favorito y abra el archivo ~/.screenrc. Si tiene experiencia con Vim, simplemente puede escribir en el indicador de su terminal vi ~/.screenrc. Si desea obtener más información sobre Vi / Vim, considere leer nuestro artículo Defina un excelente perfil de Vim usando .vimrc.

Una vez abierto ~/.screenrc, simplemente agregue el siguiente bloque de texto:

# Configuración general de vbell en vbell_msg '!  ¡Campana! '  autodetach on startup_message off defscrollback 10000 # Termcapinfo per xterm termcapinfo xterm * Z0 =  E[?3h:Z1=E[?3l:is=E[rE[mE[2JE[HE[?7hE[?1;4;6l   # Do not resize window
termcapinfo xterm* OL=1000                                                    # Increase output buffer for speed

# Remove various keyboard bindings
bind x    # Do not lock screen
bind ^x   # Idem
bind h    # Do not write out copy of screen to disk
bind ^h   # Idem
bind ^   # Do not kill all windows/exit screen
bind .    # Disable dumptermcap

# Add keyboard bindings
bind } history
bind k kill

Our .screenrc template

If you do not want to use a text editor, or want to somehow script the installation of this .screenrc file into many systems, you could use the following code instead, which will – whenever pasted, or executed from another script, create the file ~/.screenrc for the user who is executing the script. Let’s call our script make_screenrc.sh or similar.

#!/bin/bash
# Create screen script ~/.screenrc
touch ~/.screenrc
if [ -z "$(cat ~/.screenrc|grep 'termcapinfo xterm')" ];  luego gato< EOF> ~ / .screenrc # ¡Configuración general de vbell en vbell_msg '!  ¡Campana! '  autodetach on startup_message off defscrollback 10000 # Termcapinfo para xterm termcapinfo xterm * Z0 =  E[?  3h: Z1 =  E[?  3l: es =  E[r  E[m  E[2J  E[H  E[?  7h  E[?  1;  4;  6l # No cambiar el tamaño de la ventana termcapinfo xterm * OL = 1000 # Aumentar el búfer de salida para la velocidad # Eliminar varias vinculaciones del teclado vincular x # No bloquear la restricción de la pantalla ^ x # Vincular la misma h # No escribir una copia de la pantalla en la vinculación del disco ^ h # Ditto bind ^  # No mates todas las ventanas / salir de la pantalla bind.  # Deshabilitar dumptermcap # Agregar enlaces de teclado bind} bind history k kill EOF fi

El guión preselecciona una serie de configuraciones, y la mayoría de las que se muestran aquí se explican por sí mismas. Por ejemplo, startup_message off simplemente apaga la pantalla de presentación que vimos anteriormente. defscrollback 10000 define nuestro desplazamiento de regreso a 10000 líneas (puede ingresar al modo de desplazamiento / edición presionando la secuencia de teclas CTRL+a > CTRL+ESC y puede salir de este modo presionando ESC una o dos veces).

También activamos un timbre virtual (ya que no podemos escuchar el pitido del altavoz de un servidor remoto) usando el vbell on es vbell_msg '!Bell!' comandos que configuran el mensaje de campana virtual en '!Bell!'. Sin embargo, he descubierto que la campana virtual a menudo no funciona.

A continuación, configuremos algunos específicos termcapinfo códigos para ampliar el búfer de salida y ajustar el tamaño de la ventana. También eliminamos varias combinaciones de teclas potencialmente molestas y agregamos algunas configuraciones de teclado útiles.

Todo lo que tenemos que hacer para activar esto de nuevo .screenrc la configuración es abrir un nuevo archivo screen sesión. Ahora aprovecharemos las nuevas configuraciones definidas.

Terminando

Definición de un incumplimiento excelente .screenrc el archivo ayuda cuando usas screen Un monton. Deshabilitar la pantalla de bienvenida, aumentar el desplazamiento hacia atrás y mejorar el búfer de salida para la velocidad son solo algunas de las cosas que hemos hecho en nuestro .screenrc plantilla. ¡Diviértete usando la pantalla y la plantilla .screenrc!

Descubre más contenido

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir Change privacy settings