User Tools

Site Tools


informatique:logiciels:screen

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
informatique:logiciels:screen [2011/03/02 20:15] – modification externe 127.0.0.1informatique:logiciels:screen [2020/10/26 14:11] – retouche pteu
Line 1: Line 1:
-{{tag>utilitaire système session}} +======Screen======
- +
-======SCREEN======+
  
 =====Présentation===== =====Présentation=====
  
-**Screen** permet de créer un nouveau terminal qu'on pourra quitter, puis récupérer dans l'état ou on l'a laissé. On lance un nouveau terminal, on lance une application dedans, puis on le //détache//. L'application continue de tourner, et on peut, plus tard, récupérer le terminal en le //rattachant//.+**Screen** est un gestionnaire de terminal en mode texte ; il permet, dans un terminal, de créer de nouvelles sessions qu'on pourra quitter, puis récupérer dans l'état ou on l'a laissé.
  
 +//NB : Il existe d'autres gestionnaires de terminaux comme tmux ou byobu, une version améliorée de screen.//
  
-=====Configuration===== 
  
-Le fichier de configuration se nomme ''.screenrc'', que l'on peut placer dans ''/etc'' ou ''~''.+=====Utilisation=====
  
-Pour afficher une barre de statut :+Installation, lancement de screen et exécution d'une commande dedans : 
 +<code bash> 
 +aptitude install screen
  
-  hardstatus alwayslastline "%d/%m/%Y [%c] | %w"+screen
  
-Pour éviter le message au lancement :+echo test 
 + test 
 +</code>
  
-  startup_message off+On va ensuite **d**étacher la console avec la combinaison ''Ctrl-a'' puis ''d'' ; on va donc revenir à la console depuis laquelle on a lancé screen.
  
 +//Plus tard// on décide de récupérer (**r**attacher) notre screen :
 +<code bash>
 +screen -r
 +</code>
  
-=====Utilisation=====+On récupère ainsi l'état dans lequel on l'avait laissé.
  
-On installe et on lance screen :+On peut également **c**réer d'autres terminaux virtuels ; quand on est dans screen, faire un ''ctrl+a'' et ''c''. On passe alors de l'un à l'autre avec ''ctrl+a'' et ''n'' (**n**ext) ou encore ''ctrl+a'' et ''p'' (**p**revious). ''ctrl+a'' ''ctrl+a'' permet de revenir à l'ancien terminal virtuel. Pour fermer une session screen : ''Ctrl+a d'' (detach).
  
-  aptitude install screen +Pour la rejoindre plus tard : ''screen -x'' ou ''screen -r''. S'il en existe plusieurs, ''screen -r'' affichera la liste et il faudra ajouter l'ID de la session à la suite : 
-  screen+<code bash> 
 +screen -r 
 +There are several suitable screens on: 
 +     314..soekris-01 (Detached) 
 +     9364..soekris-01        (Detached) 
 +Type "screen [-d] -r [pid.]tty.host" to resume one of them.
  
-Dans le terminal qu'on vient d'ouvrir, on lance un anodin+screen -r 314..soekris-01 
 +</code>
  
-  echo test +Sinon, pour simplement lister les sessions existantes : ''screen -ls''
-  test+
  
-On va ensuite **d**étacher la console avec la combinaison ''ctrl+a'' puis ''d''on va donc revenir à la console d'où on a lancer screen.+Pour lancer un script dans un screen au démarrage par exemple, on utilise : 
 +<code bash> 
 +screen --m script.sh 
 +</code> 
 +... pour créer une nouvelle session sans l'attacher.
  
-//Plus tard// on décide de récupérer (**r**attacher) notre screen : 
  
-  screen -r+=====Combinaisons de touches=====
  
-On récupère ainsi l'état dans lequel on l'avait laissé.+Pour afficher les raccourcis courants, appuyer sur la touche de préfixe ''Ctrl+a'' suivie de ''?''.
  
-On peut également **c**réer d'autres terminaux virtuels ; quand on est dans screen, faire un ''ctrl+a'' et ''c''. On passe alors de l'un à l'autre avec ''ctrl+a'' et ''n'' (**n**ext) ou encore ''ctrl+a'' et ''p'' (**p**revious). ''ctrl+a'' ''ctrl+a'' permet de revenir à l'ancien terminal virtuel.+Une fois screen lancésaisir la hotkey ''Ctrl+a'' suivie de :
  
-On peut aussi partager un terminal : il faut créer un ''screen'', puis quelqu'un d'autre se rattache dessus avec un ''screen -x''+  * ''c'' : pour **c**réer une nouvelle fenêtre (nouveau terminal
-On utilise cette fonctionnalité avec un utilisateur distant connecté en SSH par exemple.+  * ''k''**k**iller le terminal courant (une confirmation vous est demandée (y/n)) 
 +  * ''n'' (**n**ext) : se déplacer vers le terminal suivant 
 +  * ''p'' (**p**revious) : se déplacer vers le terminal précédent 
 +  * ''<nb>'' : se déplacer vers le terminal <nb>,  avec <nb> son numéro (0, 1, ...) 
 +  * ''"'' : voir la liste des terminaux ouverts 
 +  * ''ctrl+a'' : sélectionner la dernière fenêtre consultée 
 +  * ''Ctrl+<space>'' : sélectionner la prochaine fenêtre 
 +  * ''A'' : pour renommer le titre du terminal courant 
 +  * ''ctrl+x'' : verrouiller la session screenEn fonction de votre implémentation de screen : 
 +    * soit le mdp de votre utilisateur vous sera demandé pour rouvrir la session (e.g. sous Debian); 
 +    * soit il demande un mdp avant de la verrouiller, qu'il faudra redonner pour la rouvrir (e.g. sous macOSX) 
 +  * ''F'' : rafraîchir la fenêtre
  
-On peut lancer plusieurs screen à la fois ; pour se rattacher à l'un d'entre eux on utilise la syntaxe : 
  
-  screen -r +=====Diviser la fenêtre (split)=====
-   There are several suitable screens on: +
-        314..soekris-01 (Detached) +
-        9364..soekris-01        (Detached) +
-   Type "screen [-d] -r [pid.]tty.host" to resume one of them. +
-  screen -r 314..soekris-01+
  
-Pour lancer un script dans un screen au démarrage par exemple, on utilise :+Plutôt que d'avoir un terminal par écran, on peut agencer l'affichage des terminaux en divisant l'écran en panneaux/régions, pour en afficher plusieurs ; mais tous les terminaux sont accessibles dans chaque panneau.
  
-  screen -d -m script.sh+Pour diviser la fenêtre : ''Ctrl+a'' suivi de : 
 +  * ''S'' pour diviser l'écran horizontalement 
 +  * ''|'' pour diviser l'écran verticalement
  
-pour créer une nouvelle session sans l'attacher.+Autres raccourcis liés au split : 
 +  * ''X'' : fermer le panneau courant 
 +  * ''Q'' : supprimer tous les panneaux sauf celui sélectionné 
 +  * ''F'' : redimensionner la fenêtre sur la taille du panneau sélectionné 
 +  * ''<tab>'' sélectionner le prochain panneau 
 +Il n'existe pas d'inverse du ''Ctrl-a <tab>'' (sélectionner le précédent panneau). Par contre il est possible de créer des raccourcis pour sélectionner le panneau du haut/bas : pour cela il faut éditer le fichier **~/.screenrc** et ajouter ces lignes : 
 +<code bash> 
 +bind k focus down 
 +bind j focus up 
 +bind t focus top 
 +bind b focus bottom 
 +</code>
  
 +=====Configuration=====
  
-=====Combinaisons de touches=====+Le fichier de configuration général se nomme se trouve dans ''/etc/screenrc'', mais chaque utilisateur peut la surcharger dans son fichier ''~/.screenrc''.
  
-Une fois screen lancéon utilise la combinaison de touche ''ctrl+a'' suivie de : +Lorsqu'un screen est lancé et que l'on veut recharger le fichier de configuration (pour prendre en compte une modif par exemple), faire ''Ctrl-a'' puis saisir '':source ~/.screenrc''.
- +
-  * c pour créer un nouveau terminal +
-  * k : killer le terminal courant (une confirmation vous est demandée (y/n)) +
-  * n : se déplacer vers le terminal suivant +
-  * p : se déplacer vers le terminal précédent +
-  * <n> : se déplacer vers le terminal <n>,  avec <n> son numéro (0, 1, ...) +
-  * " : voir la liste des terminaux ouverts (on peut en sélectionner un façon "selectbox" en HTML) +
-  * ctrl+a : se délacer vers le dernier terminal consulté +
-  * A : pour renommer le titre du terminal courant +
-  * ctrl+x : verrouiller la session screen. En fonction de votre implémentation de screen : +
-    * soit le mdp de votre utilisateur vous sera demandé pour rouvrir la session (e.g. sous Debian); +
-    * soit il demande un mdp avant de la verrouiller, qu'il faudra redonner pour la rouvrir (e.g. sous macOSX)+
  
  
 =====Annexes===== =====Annexes=====
  
-====Ma conf====+====Exemple de template de conf====
  
-  /etc/screenrc +<code bash> 
-  startup_message off +ne pas afficher le message au lancement 
-  deflogin on +startup_message off 
-  vbell on +deflogin on 
-  vbell_msg "   Wuff  ----  Wuff!! +vbell on 
-  defscrollback 1024 +vbell_msg "   Wuff  ----  Wuff!! 
-  bind ^k +defscrollback 1024 
-  bind ^\ +bind ^k 
-  bind \\ quit +bind ^\ 
-  bind K kill +bind \\ quit 
-  bind I login on +bind K kill 
-  bind O login off +bind I login on 
-  bind } history +bind O login off 
-  termcapinfo vt100 dl=5\E[M +bind } history 
-  hardstatus off +termcapinfo vt100 dl=5\E[M 
-  termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007 +hardstatus off 
-  hardstatus alwayslastline "%-w%{.BW}%n %t%{-}%+w %= %l | %d/%m/%y %c" +termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007 
-  termcapinfo xterm*|linux*|rxvt*|Eterm* OP +# Pour afficher une barre de statut : 
-  termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'+#hardstatus alwayslastline "%d/%m/%Y [%c] | %w" 
 +# ou 
 +hardstatus alwayslastline "%-w%{.BW}%n %t%{-}%+w %= %l | %d/%m/%y %c" 
 +termcapinfo xterm*|linux*|rxvt*|Eterm* OP 
 +termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
  
 +# ~/.screenrc
 +defscrollback 4096
 +startup_message off
 +caption always "%{bw}%H%{g} |%c %{y}%d.%m.%Y%{k} | %?%-Lw%?%{+b wk}%n*%f %t%?(%u)%?%{-b kw}%?%+Lw%? | %{-b rw} Load: %l %{k}"
 +</code>
informatique/logiciels/screen.txt · Last modified: 2020/12/03 10:11 by pteu