Ernest

Screen

Dernière modification : 2014-10-22 21:27:56

Le logo de GNU

Sommaire


Introduction

Pour bien comprendre l'utilité de screen imaginons la situation suivante: je suis chez moi sur IRC et je dois interrompre la conversation pour aller travailler. Une fois au travail, je souhaite reprendre ma session IRC avec mon compte, et en lisant les dialogues produits en mon absence. Bref je voudrais être devant l'ecran de ma machine chez moi.

Ceci est possible grâce à screen. Screen est un terminal virtuel capable d'ouvrir plusieurs sessions shell simultanément et qui permet par la suite de détacher et réattacher ces sessions depuis n'importe quel terminal.

L'installation est on ne peut plus classique (sur Debian, apt-get install screen).

[ sommaire ] | [ home ]


Utilisation

Lancer screen

Pour lancer screen, utilisez la commande suivante:


stephane@paranoia:~$ screen -Am

Le terminal apparait et affiche donc bêtement votre shell habituel. Pour le moment screen est donc un programme qui ne sert a rien. Le shell est un "vrai" shell, vous pouvez donc lancer n'importe quelle application: irssi, mutt, tin, ce que vous voulez, ca marche normalement.

Maintenant que l'application tourne, essayez la combinaison de touches [CTRL] + a, puis d.

Pas de panique, vous venez de détacher votre application du terminal courant. C'est à dire qu'elle continue à tourner en tâche de fond, mais qu'elle n'affiche plus de sortie nulle part. Elle est donc maintenant ELLE AUSSI inutile. Et c'est CA la puissance de SCREEN :-)

Rattacher l'application

Et voici la commande pour réattacher le screen.


stephane@paranoia:~$ screen -r

Et vous voilà de retour sur votre application. Vous pouvez donc lancer un xterm, ouvrir un terminal virtuel dans cet xterm, y lancer une application et revenir sur le shell de depart, continuer votre travail, retourner à l'appli etc. Bref vous disposez de ce qu'on utilise beaucoup en mode console: les consoles virtuelles.

Maintenant vous aimeriez pouvoir garder sous la main votre mutt, votre tin, et votre irssi: rien de plus facile ! Essayez [CTRL] + a, puis c : nous ouvrons comme cela un nouveau terminal virtuel en plus du premier dans lequel nous pourrons lancer une nouvelle application.

Pour passer d'un terminal virtuel à un autre, utilisez [CTRL] + c, puis [SPACE] (Vous pourrez en trouver d'autres dans le man de screen.)

Une commande plutot indispensable: [CTRL] + a, puis d va détacher le screen et vous n'avez plus rien qui tourne en arrière plan.

Il faut bien comprendre que ceci fonctionne depuis N'IMPORTE quel terminal: cela veut dire y compris à distance. Reprenons notre exemple du début: vous utilisez IRC, vous sortez dans un cybercafé, au boulot ou chez un ami qui a une connexion... Il suffit de vous logguer sur la machine en SSH et de faire un screen -r et vous voila de nouveau sur votre client IRC qui n'a rien vu et vous croit encore devant la machine : plus de messages perdus \o/

[ sommaire ] | [ home ]


Astuces

Se connecter et rattacher un screen en une commande

Pour lancer un ssh sur une machine distante 10.0.0.1 et attaché au screen 12345 en une seule ligne de commande (idéal pour se créer des icones par exemple), on utilise la ligne suivante:


ssh -t 10.0.0.1 screen -r 12345

Si le screen est ouvert avec l'option -S, on définit un nom pour le terminal virtuel, ce qui permet de le rattacher ensuite sans connaître son numéro. Par exemple un screen ouvert avec screen -S irssi se récupère avec screen -r irssi. Ce qui nous donne, toujours en une ligne:

 
ssh -t 10.0.0.1 screen -r irssi

Idéal par exemple pour créer un raccourci dans votre window manager qui pourra se connecter en ssh et reprendre un screen là où vous l'aviez laissé, le tout en un clic \o/

[ sommaire ] | [ home ]


Liens utiles

Le site officiel de Screen
Ce document est une version tunée du PUISSANT tuto vim de Guillaume B. Merci Yom.

[ sommaire ] | [ home ]