screen : Un multiplexeur de terminal pratique
Table des matières
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 a distance. Cela évite d'ouvrir plusieurs connexions SSH par exemple.
Exemple concret : On est connecté sur une machine distante en SSH et on souhaite lancer une tâche ou un programme (long à exécuter), On peut alors lancer le programme dans un «screen» que l'on peut «détacher». Ainsi, on peut se déconnecter, et la tâche tourne toujours en fond.
Pour l'installer : installer le paquet screen.
Pour créer un nouveau terminal saisir:
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
Pour consulter les screens créés, on exécute la commande :
On a leur nom et leur numéro unique.
Pour revenir sur un screen détaché, on passe par la commande :
ou bien, si plusieurs screens ont le même nom, on peut les récupérer avec leur numéro :
Parfois, si on est plusieurs à vouloir se rattacher au screen créé on peut utiliser
Pratique pour suivre sur plusieurs consoles des manipulations d'un collègue en étant géographiquement éloignés !
Pour quitter un screen, il suffit de faire dans celui-ci la commande exit comme si on fermait une console normale.
Si on veut tuer un screen détaché (pour une raison X ou Y) on peut exécuter la commande
Pour créer un screen, directement en mode "détaché", il suffit d'utiliser les options d et m
Exemple :
Cela créé une session screen détachée, avec comme nom optimus dont la commande lancée dedans est optirun read -p optimus
Ce cas de figure peut être pratique dans le cas où on veut lancer un screen au démarrage, (donc par root) pour un utilisateur de la machine.
Pour celà, on combine su et 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 [ (AltGr + ( )
Ensuite voici les combinaisons possibles :
Ctrl + U et Ctrl + D : Monter ou Descendre d'une demi page
Ctrl + B et Ctrl + F : Monter ou Descendre d'une page
H ou J ou K ou L : Déplacer le curseur d'un caractère à Gauche, Bas, Haut ou Droite
Pour quitter ce mode : q
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 a distance. Cela évite d'ouvrir plusieurs connexions SSH par exemple.
Exemple concret : On est connecté sur une machine distante en SSH et on souhaite lancer une tâche ou un programme (long à exécuter), On peut alors lancer le programme dans un «screen» que l'on peut «détacher». Ainsi, on peut se déconnecter, et la tâche tourne toujours en fond.
Pour l'installer : installer le paquet screen.
Commandes utiles
Créer un screen
Pour créer un nouveau terminal saisir:
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, on exécute la commande :
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é, on passe par la commande :
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 <numero>
Parfois, si on est plusieurs à vouloir se rattacher au screen créé on peut utiliser
Code BASH :
screen -x <nom>
Pratique pour suivre sur plusieurs consoles des manipulations d'un collègue en étant géographiquement éloignés !
Quitter un screen
Pour quitter un screen, il suffit de faire dans celui-ci la commande exit comme si on fermait une console normale.
Si on veut tuer un screen détaché (pour une raison X ou Y) on peut exécuter la commande
Code BASH :
screen -X -S lenom 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 "<titre>" <commande>
Exemple :
Code BASH :
screen -dmS optimus optirun read -p optimus
Cela créé une session screen détachée, avec comme nom optimus dont la commande lancée dedans est optirun read -p optimus
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 au démarrage, (donc par root) 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 [ (AltGr + ( )
Ensuite voici les combinaisons possibles :
Ctrl + U et Ctrl + D : Monter ou Descendre d'une demi page
Ctrl + B et Ctrl + F : Monter ou Descendre d'une page
H ou J ou K ou L : Déplacer le curseur d'un caractère à Gauche, Bas, Haut ou Droite
Pour quitter ce mode : q