Dans mon ‘ancienne vie’ un estimé collègue m’a introduit à un petit logiciel complétement génial: screen.
screen est un multiplexeur de terminal en ligne de commande.
Vous allez me demande à quoi ça sert puisqu’en mode graphique il suffit soit de se connecter plusieurs fois, soit de lancer plusieur terminaux; et si vous accéder à la machine à distance de s’y connecter plusieurs fois.
Sauf que vous allez voir que vous n’allez plus pouvoir vous en passer.
Une fois lancé, screen ne quitte que lorsque vous avez fermé le dernier terminal. Mais vous pouvez vous en détacher … pour vous y rattacher ensuite.
A quoi ça sert? Ouvrez un terminal (Eterm, aterm, ou n’importe quoi d’autre), lancer une compilation du pépin linux, fermez le terminal. Il se passe quoi? vous avez, en fermant le terminal, interrompu la compilation.
Ouvrez un terminal, lancer screen, lancer une compilation, fermez le terminal. Il se passe quoi? vous vous êtes détaché de screen, mais screen continue à faire tourner la compilation!
Pour récupérer le screen que vous avez lâchement abandonné, lancer un terminal et faite ’screen -Dr’. Si vous n’avez pas lancé plusieurs screen, cette commande va vous rattacher au seul screen lancé: celui que vous avez abandonné.
Et ça marche aussi à distance: connectez-vous à un serveur depuis votre ordi, lancer screen, éteignez votre ordi, partez en vacances, revenez, reconnectez-vous au serveur d’une manière ou d’une autre (en locale, à distance depuis votre ordi ou un autre), faites ’screen -Dr’ et pof! vous récupérez votre screen!
Vous pouvez aussi imbriquer les screen: lancer-en un sur votre ordi, dans un des terminaux connectez-vous à une autre machine, lancer screen sur cette machine.
Je vais pas vous décrire ici les raccourcis clavier pour créer, renommer, se détacher, toussa. Je vous laisse regarder la page man, qui est très compléte.
Ah oui: vous pouvez aussi faire du Chat, avec screen: lancez-en un, disons en tant que root, demandez à une autre personne de se connecter à la machine sur laquelle il y a le screen, de passer root, puis de faire ’screen -x’. Vous voilà tous les deux dans les même terminaux: ce que tape l’un est visible par l’autre, et vice versa.
Perso, ça m’a super servi: je montrais ainsi à distance au client comment faire certaines choses en ligne de commande: on se connectait tous les deux sur la même machine avec le même compte, je lançais un screen, il s’y rattachait, et pendant que je l’avais au téléphone je lui montrait en ligne de commande. Trop pratique!
Tout ceux à qui j’ai présenté screen l’ont adopté, et ne peuvent plus s’en passer depuis