Screen (GNU Screen) est un « multiplexeur de terminaux » 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 :
S'il ne l'est pas déjà, installez le paquet screen
Nous allons lancer dans le screen une application en ligne de commande, puis « nous détacher » de la session du screen en laissant l'application tourner dedans. Ensuite, à partir du même poste ou d'un poste distant (avec ssh par exemple) nous pourrons « nous rattacher » à la session du screen et récupérer exactement la même chose que lorsque nous nous étions détaché.
screen -S nom_de_la_session
Un message annonçant la version utilisée et indiquant que ce programme est publié sous licence GPL s'affiche à l'écran. Il ne reste plus qu'à presser la touche [ESPACE].
La nouvelle session du shell s'affiche et attend qu'on saisisse une commande, par exemple :
echo test
Le shell se présente alors comme ça :
foo@bar $ echo test test foo@bar $
Saisir la suite de touche clavier suivante : [CTRL]+[a] suivi de [d]
OU fermer le terminal et/ou ouvrir un autre terminal OU tapez exit
screen -r nom_de_la_session
screen -S toto
Une fois passé l'écran de version, nous avons devant nous un terminal prêt à servir, nous pouvons l'utiliser comme d'habitude (en dehors des applications en mode graphique).
screen -ls
screen -r
Si plusieurs screen sont en cours d'exécution, voilà ce que
screen -r
va afficher :
There are several suitable screens on: 13379.toto1 (Detached) 13308.toto2 (Detached) 13334.toto3 (Attached) 13356.toto4 (Dead ???) Type "screen [-d] -r [pid.]tty.host" to resume one of them.
Nous avons donc le choix entre plusieurs screen que l'on va préciser simplement par
screen -r 13379
ou
screen -r toto1
Si le screen que nous essayons de rattacher n'a pas été détaché (toto3 dans l'exemple ci-dessus), il est possible de forcer son détachement de la console précédente :
screen -d toto3
Pour avoir plusieurs attachements simultanés (option "-x"), voir la section Partager un terminal.
Si un screen est mort (toto4 dans l'exemple ci-dessus), il est possible de le supprimer en saisissant la commande
screen -wipe
Saisir la suite de touche clavier suivante : [CTRL]+[a] suivi de [c]
Si vous avez auparavant exécuté une commande, le contenu du terminal devrait visiblement changer : vous êtes dans le nouveau terminal dont vous venez de demander la création.
Lorsque on est logué sur un screen, pour le « tuer » (kill) :
exit
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 :)
screen -S toto
Votre ami se connecte sur votre machine via ssh par exemple et saisit la commande suivante :
screen -x toto
À partir de là, tout ce qui est saisi dans un des 2 terminaux (le vôtre ou le sien) apparaît sur les deux. Si il n'y a qu'un seul screen de lancé, il n'est pas nécessaire de préciser son nom lors de la connexion.
Séparation de la console :
A noter que la suppression d'une ou plusieurs régions ne supprime pas les consoles qui s'y trouvaient.
Divers :
Déplacement et copie :
Il est possible pour chaque utilisateur du système de personnaliser son screen grâce à un fichier de configuration spécifique : «~/.screenrc». Un exemple d'un tel fichier est disponible dans /etc/screenrc. Il vous suffit de faire :
cp /etc/screenrc ~/.screenrc
Et vous pourrez ensuite le personnaliser comme bon vous semble.
Contributeurs : Termitor, Benoît « Beny » Pineau, loack, petitchevalroux, boubou_cs, mydjey