Screen / Byobu

Facebooktwitterredditpinterestlinkedinmail

Screen est un multiplexeur de terminal en mode texte issu du projet GNU. Il permet d’ouvrir plusieurs terminaux en un seul, et donc d’utiliser plusieurs applications en même temps, sur plusieurs machines, mais dans un seul terminal.

Edit du 23/10/2011: Byobu est une sur-couche de screen ou tmux apportant des fonctionnalités supplémentaires.

Edit du 09/05/2015: Pour installer une version récente de Byobu sur Debian, il est nécessaire d’activer les backports.

Voici une configuration possible avec Screen :

Console 1 Console 2 Console 3

Capture terminal 1 actif (Dev bash) Capture Terminal 2 actif (Re7 bash) Capture Terminal 3 actif (Prd bash)

On nomme son terminal avec ctrl+a A, puis on en crée un nouveau avec ctrl+a c, on le nomme aussi avec ctrl+a A. Ensuite pour passer de l’un à l’autre, on tappe ctrl+a suivi du numéro du screen (ici ctrl+a 0 pour le terminal “Dev console”, ctrl+a 1 pour “Re7 console”, et ctrl+a 2 pour “Prd console”).

Le terminal de gnome permet déjà de créer des onglets, mais avec screen on peut le faire même sur une machine distante, sans avoir à ouvrir une nouvelle session. Par exemple on peut sur une machine distante avoir un terminal utilisateur et un terminal root actifs en même temps. On peut aussi avoir à la fois un terminal, un explorateur de fichier (mc), un moniteur de ressources (htop) et un fichier log en mise à jour auto (tail -f); et passer de l’un à l’autre comme on veut.

Le système de reprise de session permet de les rendre portables. Je m’explique. Je suis au bureau, et je gère un serveur par SSH. Ja n’ai pas terminé ce que je faisais mais je dois filer. Je ferme mon terminal et je le rouvrirais de chez moi, dans son état actuel, en indiquant son PID (screen -R 12345, où 12345 est le PID du terminal que j’avais laissé ouvert au bureau).

On peut aussi être à plusieurs sur le même terminal grâce à cela. Un collègue m’appelle parce qu’il est bloqué sur une manip qu’il doit faire. Il lance son Screen, me communique son PID, et je peux reprendre le même terminal, et le guider par téléphone tout en voyant ce qu’il fait et le résultat de ses commandes. Dans le même genre, un professeur peut guider ses élèves en ayant un même terminal partagé par lui et ses 20 élèves …

Configuration

Il y a trois modes de paramétrages possible de Screen.

  • Ses options de lancement, en ligne de commande
  • Le fichier .screenrc dans le home de l’utilisateur qui le lance
  • Ses commandes internes, commençant par ctrl+a

Par exemple, j’utilise principalement des terminaux gnome, et j’ai une fâcheuse tendance à les fermer quand ils me gênent, au lieu de les réduire. J’ai donc placé un alias dans mon .bash_aliases : alias screen=“screen -RU”.

Ce qui me permet de lancer screen en sachant qu’il essaiera systématiquement de reprendre ma dernière session ouverte et de forcer l’UTF-8. Résultat, je peux fermer mes terminaux sans souci, je récupèrerais mes onglets au prochain lancement de screen.

Liens

Facebooktwitterredditpinterestlinkedinmail

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *