Utilisation de GNU screen

Utilisation de GNU screen

Photo by Clint Patterson on Unsplash


Screen est un utilitaire permettant de disposer dans un seul terminal de plusieurs sessions virtuelles. C’est très utile par exemple pour lancer plusieurs commandes longues dans une unique session SSH.

Screen est proposé avec la majorité des distributions et s’installe avec votre gestionnaire de paquets favori.

Créer un nouveau screen en nommant la session

screen -S ma_session

Cela va démarrer screen, créer un écran virtuel et lancer un shell dedans.

Toutes les touches saisies vont être transmises à l’application lancée dans l'écran en cours de screen, sauf la touche CTRL+a qui sert à déclencher les commandes de screen lui-même.

Note : sans paramètre, la commande lance screen et crée une session avec un nom automatique.

Lister les sessions screen

screen -ls

Se rattacher une session screen existante

screen -r nom_de_la_session

Plutôt que le nom de la session, on peut préciser son PID (qui est aussi renvoyé par la commande screen -ls).

Terminer la session screen

exit

Détacher la session screen

Elle continue alors de tourner en arrière plan, y compris si on ferme la connexion SSH. C’est très pratique pour laisser tourner un script sur un serveur.

Il faut utiliser le raccourci clavier : [CTRL]+[a] - [d]

Raccourcis clavier

Voici les principales commandes de screen :

Raccourci Action
[CTRL]+[a] - [c] Crée un nouvel écran virtuel
[CTRL]+[a] - ["] Liste les écrans virtuels
[CTRL]+[a] - [0] .. [9] Bascule sur l'écran 0 .. 9
[CTRL]+[a] - ['] Permet de saisir dans le prompt le numéro du terminal à activer.
[CTRL]+[a] - ["] Liste les différents terminaux avec la possibilité d’en choisir un.
[CTRL]+[a] - [w] Liste les différents terminaux avec leur nom.
[CTRL]+[a] - [n] Va au terminal suivant (next).
[CTRL]+[a] - [p] Va au terminal précédent (previous).
[CTRL]+[a] - [a] Retourne au terminal d’où on vient.
[CTRL]+[a] - [A] Renomme l'écran en cours
[CTRL]+[a] - [S] Sépare l’affichage horizontalement
[CTRL]+[a] - [\|] Sépare l’affichage verticalement
[CTRL]+[a] - [TAB] Change l'écran actif entre les deux zones découpées
[CTRL]+[a] - [CTRL]+[a] Alterne entre deux écrans virtuels
[CTRL]+[a] - [Q] Ferme tous les écrans virtuels sauf celui en cours
[CTRL]+[a] - [X] Ferme l'écran virtuel en cours

Les commandes de split sont très pratiques pour lancer par exemple une commande top, un iftop ou un tail -f sur un serveur tout en continuant à saisir des commandes.