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
informatique:logiciels:screen [2020/10/25 14:33] – [Diviser la fenêtre (split)] pteuinformatique:logiciels:screen [2020/12/03 10:11] (current) – Copier le buffer dans un fichier pteu
Line 1: Line 1:
-{{tag>utilitaire système session}} +======Screen======
- +
-======SCREEN======+
  
 =====Présentation===== =====Présentation=====
  
-**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é. On peut par exemple ouvrir un irssi dans un terminal, se déconnecter, puis récupérer la session en se reconnectant.+**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 une version améliorée de screen (avec un menu de configuration notamment) nommée byobu.// +//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 ''~''+
- +
-Pour afficher une barre de statut : +
- +
-  hardstatus alwayslastline "%d/%m/%Y [%c] | %w" +
- +
-Pour éviter le message au lancement : +
- +
-  startup_message off+
  
  
 =====Utilisation===== =====Utilisation=====
  
-On installe et on lance screen :+Installation, lancement de screen et exécution d'une commande dedans : 
 +<code bash> 
 +aptitude install screen
  
-  aptitude install screen +screen
-  screen+
  
-Dans le terminal qu'on vient d'ouvrir, on lance un anodin+echo test 
 + test 
 +</code>
  
-  echo test +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.
-  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.+
  
 //Plus tard// on décide de récupérer (**r**attacher) notre screen : //Plus tard// on décide de récupérer (**r**attacher) notre screen :
- +<code bash> 
-  screen -r+screen -r 
 +</code>
  
 On récupère ainsi l'état dans lequel on l'avait laissé. On récupère ainsi l'état dans lequel on l'avait laissé.
Line 59: Line 45:
  
 Pour lancer un script dans un screen au démarrage par exemple, on utilise : Pour lancer un script dans un screen au démarrage par exemple, on utilise :
- +<code bash> 
-  screen -d -m script.sh +screen -d -m script.sh 
- +</code> 
-pour créer une nouvelle session sans l'attacher.+... pour créer une nouvelle session sans l'attacher.
  
  
 =====Combinaisons de touches===== =====Combinaisons de touches=====
  
-Une fois screen lancéon peut diviser l'écran en panneaux (split), toujours avec la combinaison de touche ''ctrl+a'' suivie de :+Pour afficher les raccourcis courantsappuyer sur la touche de préfixe ''Ctrl+a'' suivie de ''?''.
  
-  * ''c'' : pour créer un nouveau terminal +Une fois screen lancé, saisir la hotkey ''Ctrl+a'' suivie de : 
-  * ''k'': killer le terminal courant (une confirmation vous est demandée (y/n)) + 
-  * ''n'': se déplacer vers le terminal suivant +  * ''c'' : pour **c**réer une nouvelle fenêtre (nouveau terminal) 
-  * ''p'' : se déplacer vers le terminal précédent +  * ''k'': **k**iller le terminal courant (une confirmation vous est demandée (y/n)) 
-  * ''<n>'' : se déplacer vers le terminal <n>,  avec <n> son numéro (0, 1, ...)+  * ''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   * ''"'' : voir la liste des terminaux ouverts
-  * ''ctrl+a''se délacer vers le dernier terminal consulté+  * ''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   * ''A'' : pour renommer le titre du terminal courant
   * ''ctrl+x'' : verrouiller la session screen. En fonction de votre implémentation de screen :   * ''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 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)     * 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
 +  * '':'' : permet d'afficher le prompt pour passer en mode commande
  
  
Line 87: Line 78:
  
 Pour diviser la fenêtre : ''Ctrl+a'' suivi de : Pour diviser la fenêtre : ''Ctrl+a'' suivi de :
-  * ''S'' ("s" majuscule) pour diviser l'écran horizontalement+  * ''S'' pour diviser l'écran horizontalement
   * ''|'' pour diviser l'écran verticalement   * ''|'' pour diviser l'écran verticalement
  
 Autres raccourcis liés au split : Autres raccourcis liés au split :
-  * ''z'' (ou ''X'': fermer le panneau (split) courant +  * ''X'' : fermer le panneau courant 
-  * ''<tab>'' pour passer de l'un à l'autre panneau+  * ''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===== 
 + 
 +Le fichier de configuration général se nomme se trouve dans ''/etc/screenrc'', mais chaque utilisateur peut la surcharger dans son fichier ''~/.screenrc''
 + 
 +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''
 + 
 + 
 +=====Tips===== 
 + 
 +====Copier le buffer dans un fichier==== 
 + 
 +Pour enregistrer le buffer screen dans un fichier texte, il suffit de saisir ''Ctrl+a :'' pour passer en mode commande, puis ''hardcopy -h <fichier.txt>''
 + 
 +Une autre méthode, plus compliquée mais qui permet de comprendre le mécanisme de copies de screen : 
 +  - Passer en mode scrollback buffer : ''Ctrl+a ['' (ou ''Esc''
 +  - Sélectionner le texte à copier ; pour copier l'intégralité du buffer : ''g'' (aller en début du buffer), ''espace'' (marquer le début de la sélection), ''G'' (aller à la fin du buffer), ''<enter>'' (marquer la fin de la sélection) 
 +  - Lancer un éditeur de texte, par exemple vi (pour éviter les problèmes d'indentation, penser à passer en mode "paste": '':set paste'' 
 +  - Coller le buffer : ''Ctrl+a ]'' 
  
 =====Annexes===== =====Annexes=====
  
-====Exemple de template====+====Exemple de template de conf====
  
 <code bash> <code bash>
-/etc/screenrc+ne pas afficher le message au lancement
 startup_message off startup_message off
 deflogin on deflogin on
Line 115: Line 135:
 hardstatus off hardstatus off
 termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007 termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007
 +# Pour afficher une barre de statut :
 +#hardstatus alwayslastline "%d/%m/%Y [%c] | %w"
 +# ou
 hardstatus alwayslastline "%-w%{.BW}%n %t%{-}%+w %= %l | %d/%m/%y %c" hardstatus alwayslastline "%-w%{.BW}%n %t%{-}%+w %= %l | %d/%m/%y %c"
 termcapinfo xterm*|linux*|rxvt*|Eterm* OP termcapinfo xterm*|linux*|rxvt*|Eterm* OP
informatique/logiciels/screen.1603636398.txt.gz · Last modified: 2020/10/25 14:33 by pteu