Ceci est une ancienne révision du document !
Principe
Screen (Gnu/Screen) est un utilitaire pour terminal permettant pas mal de choses :
- La possibilité d'attacher et de détacher une session, commode pour reprendre la main sur un irssi
- La possibilité de partager un terminal avec un autre utilisateur, idéal pour aider un utilisateur distant
Aperçu des possibilités
Attacher / détacher une session
Dans Screen, vous allez pouvoir créer des terminaux. Un des intérêts est de pouvoir lancer une application en console (par exemple irssi) 'détacher' le screen en laissant l'application tourner dedans. Ensuite, à partir du même poste ou d'un poste distant (avec ssh par exemple) vous pourrez le rattacher et récupérer éxactement la même chose que lorsque vous l'avez détaché. Pour comprendre un peu le mécanisme je vous suggère de tester la manipulation suivante :
tout d'abord, on lance screen :
screen
on se retrouve alors avec un 'shell' qui attend qu'on lui donne des commandes :) Pour l'exemple on va faire un truc inutile, mais c'est à but pédagogique :
echo test
On se retrouve alors avec quelque chose comme ça :
kael@agonie:/home/kael% echo test test kael@agonie:/home/kael%
C'est là qu'on va commencer la magie. On commence par détacher le Screen avec le raccourci clavier suivant : ctrl + a puis la touche d
là on peut fermer le terminal et/ou en ouvrir un autre. Dans ce nouveau terminal, on peut faire :
screen -r
C'est magique, on retrouve ce qu'on avait :) à noter que le nouveau terminal peut très bien être sur un PC distant (on accède alors à notre PC avec ssh)
Une fois dans le screen, on peut aussi créer d'autre terminaux virtuels à l'intérieur du screen avec le racourci clavier suivant : ctrl+a puis c
On peut ensuite passer d'un terminal virtuel à un autre avec les racourcis suivants : ctrl+a puis p (pour aller au précédent), ctrl+a puis n (pour aller au suivant), ctrl+a puis a (pour retourner de celui d'où on vient) ou encore ctrl+a puis " pour voir la liste des terminaux ouverts dans le screen. Pour s'y retrouver plus facilement, on peut également nommer les terminaux dans le screen avec ctrl+a puis A
Pour fermer une fenêtre, il suffit de fermer le shell qu'elle contient (combinaison de touches Ctrl-d ou commande logout).
Partager un terminal
Imaginez que vous vouliez que quelqu'un fasse quelque chose à distance sur votre PC, mais que vous souhaiteriez voir ce qu'il fait, alors Screen va vous aider :)
sur votre PC, vous lancez screen :
screen
votre ami se connecte sur votre PC via ssh par exemple et tape la commande suivante (pour tester, vous pouvez le faire dans un autre terminal mais ça perd un peu son intérêt, c'est juste marrant :) ) :
screen -x
Et là encore une fois, c'est magique, tout ce qui est tapé dans un des 2 terminaux (le vôtre ou le sien) apparait sur l'autre.