
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.
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.
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
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