Table des matières

Screen

Introduction

Screen (GNU Screen) est un « multiplexeur de terminaux » 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 offre d'autres services très utiles comme :

Installation

L'installation se fait à travers les miroires officiels de chaque distribution.

Pour les distributions Debian et dérivée :

# apt-get install screen

Pour les distributions RedHat et dérivée :

# yum install screen

Commandes utiles

Créer un screen

Pour créer un nouveau terminal saisir:

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

Visualiser les screens

Pour visualiser les screens créés, on exécute la commande :

screen -ls

On a leur nom et leur numéro unique.

Se rattacher à un screen

Pour revenir sur un screen détaché, on passe par la commande :

screen -r <nom>

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

screen -r <numero>

Parfois, si on est plusieurs à vouloir se rattacher au screen créé on peut utiliser

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

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

screen -dmS "<titre>"  <commande>

Exemple :

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” :

su - utilisateur -c 'screen -dmS  titre  commande'

Pour naviguer dans les screen :

  [CTRL]+[a] suivi de [n]: pour «next», aller au terminal suivant.
  [CTRL]+[a] suivi de [p]: pour «previous», aller au terminal précédent.
  [CTRL]+[a] suivi de [0]..[9]: aller au terminal n.
  [CTRL]+[a] suivi de [']: saisir dans le prompt le numéro du terminal.
  [CTRL]+[a] suivi de ["]: lister des différents terminaux, avec la possibilité d'en choisir un.
  [CTRL]+[a] suivi de [w]: lister les terminaux actuels avec leur nom.
  [CTRL]+[a] suivi de [a]: retourner au terminal d'où l'on vient.
  [CTRL]+[a] suivi de [A]: nommer les terminaux et s'y rendre par la suite plus aisément.

Séparation de la console :

  [CTRL]+[a] suivi de [AltGr]+[6] (|): Sépare la console courante en deux consoles verticalement (la console courante devient celle de gauche).
  [CTRL]+[a] suivi de [S]: Sépare la console courante en deux consoles horizontalement (la console courante devient celle du dessus).
  [CTRL]+[a] suivi de [TAB]: Une fois la console séparée, ce raccourci permet de se positionner sur la console suivante.
  [CTRL]+[a] suivi de [Q]: Supprime toutes les régions, sauf la région courante.
  [CTRL]+[a] suivi de [K]: Tue la console courante ainsi que les processus qui s'y trouvent.
  [CTRL]+[a] suivi de [X]: Ferme la région courante.

Divers :

  [CTRL]+[a] suivi de [F]: Redimensionnement de la fenêtre à la taille de son terminal. Utile lorsque l'on est plusieurs sur une même console et que l'on enrage de ne pas avoir un écran 16/9e.
  [CTRL]+[a] suivi de [H]: Permet de logguer tout ce qui passe à l'écran dans un fichier $HOME/screenlog.XX (XX : no de la console)
  [CTRL]+[a] suivi de [?]: Affiche une petite aide

Déplacement et copie :

  [CTRL]+[a] suivi de [ESC]: Entre en mode copie/scrollback. On peut se déplacer dans le screen avec les flèches directionnelles.
  ENTER : Permet de commencer une sélection. Appuyer une nouvelle fois sur ENTER pour terminer la sélection.
  [CTRL]+[a] suivi de []]: Colle le contenu sélectionné précédemment.

Personnaliser son screen

Il est possible pour chaque utilisateur du système de personnaliser son screen grâce à un fichier de configuration spécifique : «~/.screenrc». Un exemple d'un tel fichier est disponible dans /etc/screenrc. Il vous suffit de faire :

cp /etc/screenrc ~/.screenrc

Et vous pourrez ensuite le personnaliser comme bon vous semble.

Annexe

Voici les commande les plus utilisé pour gérer Screen :