Screen

De WikiBR

Utilisation

Commandes en shell

  • Pour lister les screens en cours :
screen -ls
  • Pour reprendre le screen en cours (qui a été détaché) :
screen -x
  • Pour reprendre un screen en détachant tous les autres utilisateurs connectés (via un Power Detach)
screen -RD
  • Pour faire un screen multi-utilisateurs : Tout le monde se connecte en root (sudo -s) sur la même machine, quelqu'un créée le screen :
screen -S nom_du_screen

et les autres le rejoignent :

screen -x nom_du_screen

Raccourcis clavier dans screen

Attention aux majuscules !

Niveau facile:

  • ctrl+a k : killer la fenêtre en cours
  • ctrl+a c : créer une nouvelle fenêtre
  • ctrl+a d : détacher le screen
  • ctrl+a 0 : aller à la fenêtre 0
  • ctrl+a 1 : aller à la fenêtre 1

Niveau moyen:

  • ctrl+a [ ou ctrl+a (ESC) : permet de remonter dans le buffer
  • ctrl+a A : renomme la fenêtre
  • ctrl+a p : fenêtre précédente
  • ctrl+a n : fenêtre suivante
  • ctrl+a ? : afficher l'aide rapide, détaillée dans la page de manuel

Niveau avancé:

  • ctrl+a S : splitter le screen en 2 (haut-bas)
  • ctrl+a | : splitter le screen en 2 (gauche-droite) /!\ ne marche pas partout (pas sur mac)
  • ctrl+a Q : retour à une seule fenêtre, sans split
  • ctrl+a tab : passer à la fenêtre suivante dans une vue splittée
  • (ctrl+a)*2 : voir la fenêtre suivante

Configuration

Activer les bips

L'objectif de cette section est de configurer les bips du terminal lorsqu'on est dans un screen sur une machine distante.

Identifier la source d'absence des bips

Avant d'activer les bips dans screen, il faut être sûr que l'absence de bips vient bien de screen. Pour cela exécuter la commande suivante dans un ssh (avant de taper screen) qui doit normalement émettre un bip :

printf \\a

Si aucun bip ne sort, c'est que le problème vient du client ssh ou du terminal. Voir les paramètres des logiciels utilisés (Putty) ou les fichiers de configuration.

La bell de screen

La configuration de la bell (qui émet les bips) se trouve dans le fichier de configuration de screen, dans son répertoire perso :

vim ~/.screenrc

Les 3 champs qui nous concernent sont (entres parenthèses, valeurs par défaut si la ligne n'apparaît pas) :

  • vbell (on) : booléen
    • sur on : vbell (visual bell) activée donc pas de bips, juste des messages
    • sur off : vbell desactivée : les bips de la fenêtres actives sont émis mais les bips des fenêtres en arrière plan sont transformés en messages
  • vbell_msg ("Wuff --- Wuff !!") : message pour un bip d'une fenêtre active
  • bell_msg ("Bell in window %n") : message pour un bib de la fenêtre %n si elle est en arrière plan

Super astuce : si le caractère '^G' apparaît dans un des 2 messages bell_msg et vbell_msg, un bip est émis ! On peut aussi mettre '^G^G' pour émettre un double-bip.

Exemple de configuration :

# On désactive tous les bips (ils seront en fait émis par les '^G' dans les messages)
vbell on
# Message qui s'affiche (et qui émet un bip car '^G') lors d'un bip dans la fenêtre active
vbell_msg "^G*Bell*"
# Message qui s'affiche (et qui émet un bip car '^G') lors d'un bip dans une fenêtre en arrière plan
bell_msg "^GBell in window %n"

La barre de status

Voici deux lignes assez utiles à copier dans ~/.screenrc afin de disposer d'une barre de status qui indique les différentes fenêtres

caption always
caption string "%{= g}[ %{G}${USER}@%H%{g} ][%= %{= w}%?%-Lw%?%{r}(%{W}%n*%f %t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c:%s %{g}][%{Y}%l%{g}]%{=b C}%{W}"