Agence web » Actualités du digital » Définir un excellent profil d’écran GNU à l’aide de .screenrc –

Définir un excellent profil d’écran GNU à l’aide de .screenrc –

Shutterstock / Andrey Suslov

screen, l’utilitaire Linux qui permet de démarrer un «écran» à l’intérieur d’un terminal, est par défaut un peu sous-configuré. Apprenez à créer un excellent profil d’écran qui est chargé automatiquement chaque fois que vous utilisez screen.

Qu’est-ce que écran?

Screen est un utilitaire GNU (GNU est une grande collection de logiciels open source, et leur regroupement dans un système d’exploitation est communément appelé Linux) qui vous permet de démarrer un ou plusieurs écrans à l’intérieur de votre terminal.

Vous pouvez demander pourquoi je voudrais démarrer un écran dans mon terminal, et pouvez-vous définir écran mieux / plus loin? Sûr. Imaginez que vous utilisez un serveur distant de SSH et que votre connexion réseau est soudainement interrompue, en plein milieu de la migration de la base de données ou de la sauvegarde de production, qui s’exécutait dans la fenêtre de votre terminal. Cela arrive régulièrement, et le problème est que toute commande qui était en cours d’exécution lorsque la connexion s’est interrompue est maintenant terminée, quel que soit l’état dans lequel elle se trouvait.

Cette situation clairement ennuyeuse est celle que vous voulez éviter à tout prix. Non seulement cela peut laisser le système ou le progiciel dans un état indéfini, mais tout votre travail effectué jusqu’à présent peut être tout simplement perdu.

Bienvenue à screen, l’utilitaire Linux qui vous permet de démarrer une session de terminal virtuel (un ‘écran‘) à l’intérieur de votre session de terminal, avec le principal et grand avantage qu’une telle session d’écran ne sera pas terminée chaque fois que la connexion réseau est interrompue, ou lorsque vous fermez la session de terminal qui a démarré le screen session (le processus parent). Vous pouvez simplement attendre que votre connexion réseau revienne, ou ouvrir un autre terminal si vous n’êtes pas connecté via SSH et que vous travaillez uniquement sur la machine locale, et vous reconnecter simplement à votre session écran.

Génial? Installons rapidement écran alors si vous ne l’avez pas déjà fait:

Installation écran

À installer écran sur votre distribution Linux basée sur Debian / Apt (comme Ubuntu et Mint), exécutez la commande suivante dans votre terminal:

sudo apt install screen

À installer écran sur votre distribution Linux basée sur RedHat / Yum (comme RHEL, Centos et Fedora), exécutez la commande suivante dans votre terminal:

sudo yum install screen

Maintenant que l’écran est installé, vous pouvez commencer à l’utiliser immédiatement. Exécutez simplement screen sur la ligne de commande et vous êtes dedans. Vous devrez peut-être appuyer sur entrée ou espace pour parcourir le screen écran de démarrage.

L'écran de démarrage de l'écran Linux GNU

Vous verrez une nouvelle invite de commande. Appuyez sur la séquence de touches CTRL+a > CTRL+d pour revenir à l’invite de commande de la session shell parent. Ensuite, vous pouvez exécuter screen -ls pour voir une liste des sessions d’écran actives. Taper la commande (dans le shell parent dans lequel vous vous trouvez maintenant si vous avez suivi le texte à l’identique), screen -d -r vous ramènera dans le screen session, à condition qu’il n’y ait qu’une seule session d’écran active (vous pouvez en démarrer plusieurs).

S’il y a plus d’une session d’écran en cours d’exécution sur votre système (et que vous possédez), vous pouvez taper screen -d -r NAMENAME est le nom d’un écran répertorié par screen -ls, par exemple 367434.pts-1.roel1, mais en spécifiant simplement n’importe quelle partie avant ou après le point (comme 367 ou pts), qui identifie toujours de manière unique une session d’écran particulière, est également suffisante.

Voyons comment nous pouvons maintenant définir un excellent profil d’écran, basé sur un extrait de setup_server.sh, situé dans le référentiel Percona-QA GitHub (sous licence GPLv2), un script créé pour configurer un serveur pour les tests d’assurance qualité. Je ne vous recommande pas d’exécuter ce script car il est obsolète, utilisé comme référence uniquement et généralement exécuté manuellement étape par étape. La seule section que nous utiliserons est la .screenrc code, reproduit ci-dessous.

Définition d’une excellente configuration .screenrc

Le .screenrc file est un fichier de configuration caché dans votre répertoire personnel. Pour le modifier (il n’existera probablement pas encore, surtout si vous venez d’installer screen, utilisez simplement votre éditeur de texte préféré et ouvrez le fichier ~/.screenrc. Si vous êtes expérimenté avec Vim, vous pouvez simplement taper à l’invite de votre terminal vi ~/.screenrc. Si vous souhaitez en savoir plus sur Vi / Vim, envisagez de lire notre article Définir un excellent profil Vim en utilisant .vimrc.

Une fois que vous avez ouvert ~/.screenrc, ajoutez simplement le bloc de texte suivant:

# Paramètres généraux vbell sur vbell_msg '! Bell!'  autodetach sur startup_message off defscrollback 10000 # Termcapinfo pour 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')" ];  then cat << EOF> ~ / .screenrc # Paramètres généraux vbell on vbell_msg '! Bell!'  autodetach on startup_message off defscrollback 10000 # Termcapinfo pour xterm termcapinfo xterm * Z0 =  E[? 3h: Z1 =  E[? 3l: is =  E[r  E[m  E[2J  E[H  E[ ? 7h  E[? 1; 4; 6l # Ne pas redimensionner la fenêtre termcapinfo xterm * OL = 1000 # Augmenter la mémoire tampon de sortie pour la vitesse # Supprimer diverses liaisons de clavier bind x # Ne pas verrouiller la liaison d'écran ^ x # Idem bind h # Ne pas écrire une copie de l'écran sur le disque bind ^ h # Idem bind ^  # Ne pas tuer toutes les fenêtres / quitter l'écran bind.  # Désactiver dumptermcap # Ajouter des liaisons clavier bind} history bind k kill EOF fi

Le script prédéfinit un certain nombre de paramètres, et la plupart de ceux ici sont assez explicites. Par exemple, startup_message off éteint simplement l’écran Splash que nous avons vu plus tôt. defscrollback 10000 définit notre défilement à 10000 lignes (vous pouvez accéder au mode défilement / édition en appuyant sur la séquence de touches CTRL+a > CTRL+ESC et vous pouvez quitter ce mode en appuyant une ou deux fois sur ESC).

Nous activons également une cloche virtuelle (car nous n’entendons pas le haut-parleur d’un serveur distant émettre un bip) en utilisant le vbell on et vbell_msg '!Bell!' commandes qui définissent le message de cloche virtuelle sur '!Bell!'. J’ai cependant constaté que la cloche virtuelle ne fonctionne souvent pas.

Ensuite, nous définissons des termcapinfo codes pour agrandir le tampon de sortie et ajuster le redimensionnement de la fenêtre. Nous supprimons également diverses combinaisons de touches potentiellement ennuyeuses et ajoutons quelques paramètres de clavier pratiques.

Tout ce que nous avons à faire pour activer ce nouveau .screenrc la configuration consiste à ouvrir un nouveau screen session. Nous allons maintenant bénéficier des paramètres nouvellement définis.

Emballer

Définir un excellent défaut .screenrc fichier aide lorsque vous utilisez screen beaucoup. La désactivation de l’écran de démarrage, l’augmentation du défilement et l’amélioration de la mémoire tampon de sortie pour la vitesse ne sont que quelques-unes des choses que nous avons faites dans notre .screenrc modèle. Profitez de l’utilisation de screen et du modèle .screenrc!

★★★★★