Ceci est une ancienne révision du document !


Screen le multiplexeur de terminaux

Screen (Gnu/Screen) est un utilitaire permettant d'ouvrir plusieurs terminaux dans une même console, de passer de l'un à l'autre et de les récupérer plus tard. Il offre d'autres services très utiles comme :

  • 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.

Détachement/Rattachement

Exemple d'utilisation de screen

Nous allons lancer dans le screen une application en console, par exemple irssi. Puis '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) nous pourrons rattacher le screen et récupérer exactement la même chose que lorsque nous l'avons détaché.

  • Lancer screen
  screen

Un message annoncant la version utilisée et indiquant que ce programme est publiée sous licence GPL s'affiche à l'écran. Il ne reste plus qu'à presser la touche [ESPACE].

On se retrouve avec un shell qui attend qu'on lui donne des commandes. Par exemple

  echo test

Le shell présente alors quelque chose comme ça

  foo@bar $ echo test
  test
  foo@bar $
  • Détacher screen

Taper la suite de touche clavier suivante : [CTRL]+[A] suivi de [D]

  • Fermer le terminal et/ou en ouvrir un autre terminal
  • Rattacher screen
  screen -x

Si nous avions plusieurs screens en cours, voilà ce que screen -x pourrait afficher:

There are several suitable screens on: 
      13379.pts-3.proton (Detached) 
      13308.pts-4.proton (Detached) 
Type "screen [-d] -r [pid.]tty.host" to resume one of them.

Nous avons donc le choix entre plusieurs screens que l'on va préciser simplement par

screen -r 13379
Si ce n'est pas le bon vous pouvez réitérer le détachement/rattachement.
Le terminal pour le rattachement peut très bien être distant. Nous accédons alors à notre machine via un accès ssh par exemple.

Création de terminaux et navigation

Normalement une fois passé l'écran de version, nous avons devant nous un terminal tout prêt à servir, nous pouvons l'utiliser comme d'habitude (en dehors des applications en mode graphique).

  • Créer un autre terminal

Taper la suite de touche clavier suivante : [CTRL]+[A] suivi de [C]

Si vous avez auparavant executé une commande le contenu du terminal devrait visiblement changer.

  • Naviguer entre les terminaux du screen
  • [CTRL]+[A] suivi de [N]: pour next, aller au terminal suivant.
  • [CTRL]+[A] suivi de [P]: pour previous, aller au terminal précédent.
  • [CTRL]+[A] suivi de [0]..[9]: aller au terminal n.
  • [CTRL]+[A] suivi de [']: saisir dans le prompt le numéro du terminal.
  • [CTRL]+[A] suivi de ["]: propose la liste des différents terminaux.
  • [CTRL]+[A] suivi de [A]: pour nommer les terminaux et sý rendre par la suite plus aisément.

Fermer un terminal

exit

Partager un terminal

Imaginez que vous vouliez que quelqu'un fasse quelque chose à distance sur votre machine, mais que vous souhaiteriez voir ce qu'il fait, alors Screen va vous aider :)

  • Lancer screen sur votre machine
  screen

Votre ami se connecte sur votre machine via ssh par exemple et tape la commande suivante

  screen -x

À partir de là, tout ce qui est tapé dans un des 2 terminaux (le vôtre ou le sien) apparaît sur les deux.

Pratique

Comment toujours garder sa connexion à un canal IRC ou reprendre une action non terminée sur un serveur par exemple ?
  • Dans un screen saisir
ls -l
  • Détacher le screen (voir plus haut)
  • Changer de compte utilisateur
  • Rattacher screen avec l'option -r (voir plus haut)
screen -ls indique quels sont les screens détachés.

SSH

Screen est aussi très utile pour les connexions ssh, il permet aussi de récupérer les paramètres de l'arborescence d'une session précédente.


Contributeurs : Termitor (réorganisation à continuer), Benoît « Beny » Pineau.

  • screen.1214216770.txt.gz
  • Dernière modification: Le 18/04/2011, 14:42
  • (modification externe)