« Screen » : différence entre les versions

De WikiBR
(Nouvelle page : = Configuration = == Activer les bips == L'objectif de cette section est d'activer le bip du terminal lorsqu'on est dans un screen sur une machine distante. La commande suivante doi...)
 
(désarchivage)
 
(17 versions intermédiaires par 4 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
= 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 ({{c|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 [http://linux.die.net/man/1/screen 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 =
= Configuration =
== Activer les bips ==
== Activer les bips ==
L'objectif de cette section est d'activer le bip du terminal lorsqu'on est dans un screen sur une machine distante.
L'objectif de cette section est de configurer les bips du terminal lorsqu'on est dans un screen sur une machine distante.


La commande suivante doit normalement émettre un bip (l'option 'n' pour empêcher un retour à la ligne et l'option 'e' pour activer l'interpretation des backslash escapes) :
=== Identifier la source d'absence des bips ===
echo -ne '\007'
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 :
les commandes suivantes fonctionnent aussi :
  printf \\a
  printf \\a
  echo -ne '\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.


;Ne fonctionne pas dans un terminal local
Exemple de configuration :
:Le problème vient de la configuration du terminal local. Voir dans les paramètres du terminal ou le fichier 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"


;Ne fonctionne pas dans un ssh
== La barre de status ==
:Le ssh ne renvoie pas le bip. Voir dans les paramètres du client ssh ou le fichier de configuration.
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}"


;Ne fonctionne pas dans un screen dans un ssh
[[Catégorie:IRC]]
:Le problème vient de la configuration de screen. Pour activer les bips, modifier les lignes suivantes dans ~/.screenrc (ou ajouter si elle n'y sont pas) :
vbell_msg "^G Bell in window %n"
vbell on
: Pensez enfin à relancer screen pour tester
: ''Note'' : chez moi ([[Utilisateur:Qt|Qt]]), il manquait juste le 'v' de la première ligne.

Version actuelle datée du 14 avril 2023 à 21:52

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}"