Consoles virtuelles screen

1. Logiciel screen

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.

Vérifiez la présence du logiciel sur votre système avec la commande which :

sudo which screen
sudo apt-get install screen || sudo yum install screen

2. Créer un terminal, s’en détacher, s’y rattacher

Créer un nouveau “screen” en nommant la session :

screen -S nom_de_la_session

Un message annonçant la version utilisée et indiquant que ce programme est publié sous licence GPL s’affiche à l’écran.

Il ne reste plus qu’à presser la touche [ESPACE].

Pour se détacher de la session du screen :

  • Saisir la suite de touche clavier suivante : [CTRL]+[a] suivi de [d]
  • OU fermer le terminal et/ou ouvrir un autre terminal

Pour se rattacher à la session du screen :

screen -r nom_de_la_session

3. Gérer les terminaux

Connaître les terminaux existants :

screen -ls

Rattacher un “screen” existant :

screen -r

Tuer un “screen” :

exit

4. Raccourcis screen

Créer un nouveau terminal :

  • Saisir la suite de touche clavier suivante : [CTRL]+[a] suivi de [c]
  • Si vous avez auparavant exécuté une commande, le contenu du terminal devrait visiblement changer : vous êtes dans le nouveau terminal dont vous venez de demander la création.

Naviguer entre les terminaux du 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.

« Tuer » un terminal screen. Lorsque on est logué sur un terminal screen, pour le « tuer » (kill) :

  • exit
  • [CTRL]+[D] : équivalent à exit. Lorsqu’il n’y a plus qu’une seule console quitte screen.

Détacher un terminal “screen” :

  • [CTRL]+[a] suivi de [d]: pour détacher screen
  • [CTRL]+[a] suivi de [DD]: pour détacher screen et fermer la session

5. Screen comme émulateur de terminal (câble console/null modem)

On désigne le port console (/dev/ttyS0, /dev/ttyUSB0, …) avec screen plusd que probablement avec des droits priviliégés :

screen <console port> <speed>

Pour une connexion sur un routeur Cisc* à partir d’un convertisseur “usb-to-serial” :

screen /dev/ttyUSB0 9600

Pour une connexion sur Raspberry Pi 3 à partir du port COM1 du PC :

screen /dev/ttyS0 115200