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.
Pré-requis
- Disposer des droits d'administration ;
- Disposer d'une connexion à Internet configurée et activée ;
- Avoir activé l'accès aux dépôts Universe et Multiverse ;
Installation
Installez le paquet screen.
Utilisation/Configuration
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
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
- 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)
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.
Liens
- Les pages du manuel man screen et info screen
- La page du projet http://www.gnu.org/software/screen (en)
Contributeurs : Termitor (réorganisation à continuer), Benoît « Beny » Pineau.