Logiciels en ligne de commande

screen : Un multiplexeur de terminal pratique

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

Qu'est ce que screen ?



Screen (GNU/Screen) est un utilitaire permettant d'ouvrir plusieurs terminaux dans une même console, de passer de l'un à l'autre et de les récupérer plus tard.
Il peut être pratique lorsque l'on souhaite lancer plusieurs commandes, et que la machine est à distance. Cela évite d'ouvrir plusieurs connexions SSH par exemple.
Aussi, si la connexion réseau coupe, lors de la reconnexion, on peut récupérer le shell tel qu'il était avant la perte de connexion.

Installation



Il suffit d'installer le paquet screen :

Red Hat / Fedora et dérivées (EPEL requis) :
Code BASH :
dnf install screen


Debian / Ubuntu :
Code BASH :
apt install screen


Gentoo :
Code BASH :
app-misc/screen



Commandes utiles



Créer un screen



Pour créer un nouveau terminal :
Code BASH :
screen -S nom


Détacher un screen



Une fois dans notre session, si on souhaite laisser tourner un programme dedans, en tâche de fond et avoir la main sur la console, on détache le terminal via la commande de touches : Ctrl + a puis d

Voir les screens créés



Pour consulter les screens créés :
Code BASH :
screen -ls


On a leur nom et leur numéro unique.

Se rattacher à un screen créé



Pour revenir sur un screen détaché :
Code BASH :
screen -r nom


ou bien, si plusieurs screens ont le même nom, on peut les récupérer avec leur numéro :
Code BASH :
screen -r num


Si on veut se rattacher à un screen déjà attaché (si on est plusieurs à vouloir se rattacher au screen ou si on a perdu une connexion et que le screen est resté "attaché" à une session fantôme) :
Code BASH :
screen -x <nom>


Cela est pratique pour suivre sur plusieurs consoles des manipulations d'un collègue en étant géographiquement éloigné ou dans le cadre de formations.

Quitter un screen



Pour quitter un screen, il suffit de faire dans celui-ci la commande exit comme si on fermait une console normale. On revient alors sur le shell qui a lancé la commande screen précédemment.

Si on veut tuer un screen détaché (pour une raison X ou Y) :

Code BASH :
screen -X -S nom kill


Créer un screen en mode détaché



Pour créer un screen, directement en mode "détaché", il suffit d'utiliser les options d et m :
Code BASH :
screen -dmS nom commande



Créer un screen en mode détaché pour un autre utilisateur



Ce cas de figure peut être pratique dans le cas où on veut lancer un screen pour un utilisateur de la machine.

Pour celà, on combine su et screen :
Code BASH :
su - utilisateur -c 'screen -dmS  titre  commande'


Naviguer dans un screen



Si on souhaite remonter dans un screen et que la console est trop petite, la molette de la souris ne fonctionne pas.
Il faut donc passer en "copy mode" avec Ctrl+a et [
Ensuite voici les combinaisons possibles :
Page Up et Page Down : Monter ou Descendre d'une page

Pour quitter ce mode : q