Screen : Un window manager en mode texte
Screen
Pour quels besoins ?
Avec Linux, travailler en mode texte est chose courrante. Vous avez à votre disposition 6 terminaux virtuels et autant (théoriquement) que vous voulez de terminaux sous X (Eterm, aterm, xterm ..). Cependant malgrès les efforts de Konsole et Gnome-terminal pour fournir des tabs, la gestion multiple d'applications en mode texte reste assez laborieuse.
Autre cas de figure assez déplaisant :
Vous
vous connectez en ssh à un serveur pour faire une mise à jour intégrale
du type cvsup. Tout se passe pour le mieux et d'un coup (au bout d'une
petite heure généralement) une déconnexion survient vous faisant savoir
de manière très polie que vous avez dépassé le timeout. Ceci a pour
conséquence évidente de stopper votre jolie compilation en cours.
La solution
Pour eviter celà et profiter pleinement de votre mode texte, "screen" est la pour vous. Il s'agit (description du man) d'un window manager plein écran qui permet de multiplexer des terminaux physiques (et virtuels). En bref il s'agit d'un petit programme qui vous permet d'utiliser un système multi-fenêtré dans un environnement en mode texte. Nous n'allons voir ici qu'un petit nombre de fonctions vous permettant de découvrir "screen", je vous invite à lire le man pour une liste exhaustive de ses possibilités.
Démarrage
Vous pouvez obtenir screen à l'adresse suivante :
ftp://ftp.cs.univ-paris8.fr/mirrors/ftp.gnu.org/screen/
Il est également possible d'obtenir les paquetages pour gentoo ou Debian.
Une fois l'installation terminée executez simplement :
#screen
Au début rien de palpitant, un terminal classique s'offre à vous. Pour commencer nous allons créer une nouvelle fenêtre.
Pour cela saisissez :
C-a C-c (1) (lire Contrôle-a Contrôle-c)
La encore, la première impression est plutôt décevante, rien ne donne l'impression de changement.
Saisissez alors la commande de vos rêves (par exemple ls) puis saisissez:
C-a C-p
Et vous revoila sur la première fenêtre. Saisissez encore une fois la combinaison (2) pour revenir sur votre seconde fenêtre, ou la combinaison (1) pour en créer une nouvelle.
Les opération courantes
Pour utiliser avec plus de facilité le mécanisme multi-fenêtré, vous pouvez donner des noms à chaque fenêtre.
Rendez-vous sur votre première fenêtre et saisissez :
C-a A (3)
En bas de la fenêtre devrait s'afficher le message suivant :
Set window's title to: bash
Remplacez "bash" par le nom que vous voulez.
Renouvelez l'opération pour la deuxième fenêtre (2) puis (3).
Maintenant pour voir la liste de vos fenêtre saisissez :
C-a " (4)
Devrait alors s'afficher une liste de vos deux fenêtres :
Num Name Flags
0 admin $
1 window1 $
Utilisez les touches fléchées pour séléctionner une fenêtre et appuyez sur "entrée" pour vous y rendre.
Faisons mieux, rendez vous dans la fenêtre que vous voulez et saisissez :
C-a S (5) (respectez la casse !)
Votre fenêtre devrait alors se diviser en deux horizontalement. Pour vous rendre dans la zone du bas saisissez
C-a (6)
Effectuez maintenant la combinaison (4) pour selectionner l'autre fenêtre pour l'afficher dans la zone que vous venez de créer.
Pour détruire une zone voulue, rendez-vous sur elle avec la combinaison (6) puis saisissez
C-a X (7)
Pour détruire une fenétre saisissez
C-a K (8)
Détachement et lock screen
Finissons cette présentation de "screen" en exposant des fonctionnalités de détachement et de lock. Revenons au cas de figure présenté en introduction (cvsup + ssh). Maintenant que vous possédez screen , lancez une nouvelle session avant d'effectuer les opérations souhaitées.
Ensuite pendant que la compilation (ou toute autre opération ) s'effectue saisissez :
C-a C-d (8)
Vous reviendrez alors sur le shell depuis lequel vous avez lancé votre session "screen". Vous pouvez alors vous déconnecter totalement dela machine tout continuera à s'executé côté serveur.
Reconnectez vous ensuite en ssh et saisissez
#screen -R
Ceci vous restorera votre session precédente.
Enfin si vous voulez verouiller votre session courrante saisissez simplement
C-a C-x (9)
Voilà ainsi s'achève notre petite présentation, en espérant que celà vous sera utile.