Screen
Contents
-
Screen
- Utilisation basique
-
Trucs & astuces
- Supprimer le message d'accueil au lancement de screen
- Détacher automatiquement le screen en cas de coupure de connexion
- Utiliser la séquence de commande <ctrl-a> dans une application/shell
- Prendre une "capture d'écran" d'une fenêtre
- Remonter dans l'historique (mode scrollback)
- Faire des copier/coller
- Être averti de l'activité dans les autres fenêtres du screen
- Changer le dossier courant
- Exécuter une commande dans toutes les fenêtres d'un screen
Utilisation basique
Lancement de l'application
Il existe plusieurs manières de lancer screen : soit en créant une nouvelle session du programme soit en en récupérant une existante. Voici une petite liste de paramètres utiles de la commande screen :
aucun paramètre lancer une nouvelle session de screen
-ls lister les sessions existantes avec leur identifiants
-r récupérer ("rattacher") une ancienne session (fonctionne uniquement s'il n'existe qu'une session)
-r identifiant rattacher une ancienne session par son identifiant
-S identifiant créer une nouvelle session en définissant son identifiant
Gestion des fenêtres dans une session
<ctrl-a> c créer une nouvelle fenêtre <ctrl-a> <ctrl-p> revenir à la fenêtre précédente (dans l'ordre) <ctrl-a> <ctrl-n> aller à la fenêtre suivante (dans l'ordre) <ctrl-a> <ctrl-a> retour rapide à la fenêtre précédente <ctrl-a> " afficher la liste des fenêtres existantes <ctrl-a> ' aller à une fenêtre en spécifiant son nom ou numéro <ctrl-a> A renommer la fenêtre actuelle (utile pour la comande ci-dessus) <ctrl-a> k tuer (kill) une fenêtre (en cas de blocage)
Sortir d'une session
<ctrl-d> (ou exit) quitter screen (comme en Bash) <ctrl-a> <ctrl-d> détacher l'application du terminal <ctrl-a> D D détacher l'application du terminal et se délogger <ctrl-a> <ctrl-\> tuer toutes les fenêtres et quitter l'application
Divers
<ctrl-a> ? afficher l'aide <ctrl-a> C effacer le contenu de la fenêtre <ctrl-a> <ctrl-x> verrouiller la session (mot de passe - shell - de l'utilisateur requis pour déverrouiller)
Trucs & astuces
Les directives suivantes sont à consigner dans le fichier de configuration utilistateur ~/.screenrc, ou dans /etc/screenrc afin de leur donner une portée globale au système.
Supprimer le message d'accueil au lancement de screen
startup_message off
Détacher automatiquement le screen en cas de coupure de connexion
autodetach on
Utiliser la séquence de commande <ctrl-a> dans une application/shell
Si vous avez besoin d'utiliser la séquence <ctrl-a> dans une fenêtre - typiquement, pour le raccourci clavier identique en Bash - deux solutions sont possibles :
utiliser la séquence de commande litérale
<ctrl-a> a
modifier la séquence de commande en autre chose que <ctrl-a>
escape ^ww la séquence de commande est désormais <ctrl-w> (autre exemple : ^zz donnera <ctrl-z>, etc.)
Note : il est également possible de modifier cette directive lors de la creation d'une session avec l'option -e (exemple : screen -e ^ww)
Prendre une "capture d'écran" d'une fenêtre
(Manipulation à effectuer dans une fenêtre, pas dans les fichiers de configuration)
<ctrl-a> h
Remonter dans l'historique (mode scrollback)
Il n'est pas possible de consulter l'affichage de commandes précédentes de la même manière qu'en console traditionnelle, il existe pour ce faire un mode dit scrollback :
<ctrl-a> [ passer en mode scrollback (fonctionne également avec <ctrl-a> <Echap>
Une fois en mode scrollback, vous pouvez remonter/redescendre dans l'historique avec les flèches Haut/Bas, ainsi que PageUp/PageDown.
<Echap> quitter le mode scrollback
Faire des copier/coller
En mode "scrollback" vous pouvez remonter dans les lignes précédentes du buffer d'affichage de la fenêtre (manipulation à effectuer dans une fenêtre, pas dans les fichiers de configuration).
<ctrl-a> [ passer en mode scrollback : appuyez sur la touche <Espace> une première fois pour
commencer à sélectionner, selectionnez votre texte et appuyez une deuxième fois pour copier en mémoire tampon.
<ctrl-a> ] coller le contenu de la mémoire tampon
Vous pouvez copier/coller entre plusieurs fenêtres également
Être averti de l'activité dans les autres fenêtres du screen
Avoir plusieurs fenêtres ouvertes en même temps c'est bien, mais on ne peut pas les regarder en même temps. La séquence suivante (dés)active la notification d'événements dans les autres fenêtres par un message dans la barre d'état :
<ctrl-a> M
Changer le dossier courant
<ctrl-a> :chdir /mon/nouveau/chemin
Exécuter une commande dans toutes les fenêtres d'un screen
Il peut être très pratique de pouvoir exécuter une même commande dans plusieurs fenêtres d'une session screen, typiquement si vous avez une fenêtre ouverte sur plusieurs machines d'un cluster à la manière d'un dsh ou cluster-ssh :
<ctrl-a> :at "#" stuff "unecommande^M"
Vous pouvez remplacer "#" par \#, et ^M indique à screen qu'il doit exécuter la commande (l'équivalent d'appuyer sur la toucher <Enter> pour exécuter une commande) : sans cela screen ne fera qu'écrire la ligne de commande sans l'exécuter.
Il est également possible de spécifier une fenêtre dans laquelle exécuter la commande en précisant son numéro ou encore son nom, si vous l'avez renommée :
<ctrl-a> :at "2#" stuff "uname -a^M" exécute la commande "uname -a" dans la fenêtre n°2 <ctrl-a> :at "plop#" stuff "top^M" exécute la commande "top" dans la fenêtre nommée "plop"