Outils pour utilisateurs

Outils du site


linux:screen (lu 62543 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
linux:screen [26-05-2013 00:58]
edmc73
linux:screen [11-02-2019 15:59] (Version actuelle)
edmc73 [Personnaliser]
Ligne 1: Ligne 1:
 ====== Screen ====== ====== Screen ======
  
-A pofiner lol+Toute la doc -> http://durak.org/sean/pubs/software/screen/screen.html
  
 ===== Partager un screen à plusieurs ===== ===== Partager un screen à plusieurs =====
  
-J'ai fait un test avec screen et ca déchire +Créer une session screen avec la commande 
 +  screen -S toto
  
-genre moi je tape screen -toto+La 2ème personne tape la commande suivante 
 +  screen -toto
  
-toi tu tapes screen -x toto+Maintenant les 2 personnes sont sur la même console interactivement 
  
-et hop, on est tous les 2 sur la même console interactivement  
- 
-A tester !!! 
  
 ===== Screen simplement ===== ===== Screen simplement =====
Ligne 22: Ligne 21:
 Lancez vos taches puis sortir de screen sans le fermer tapez Lancez vos taches puis sortir de screen sans le fermer tapez
   Ctrl+a puis d   Ctrl+a puis d
 +  
 +Un Ctrl+d supprimera la fenêtre et killera la session screen.
      
 Pour le récupérer plus tard lors d'une autre session ssh, tapez Pour le récupérer plus tard lors d'une autre session ssh, tapez
   screen -r   screen -r
 +  
 +Pour lister les screen
 +  screen -ls
 +  
 +===== En cas de plantage ou déconnexion involontaire =====
 +
 +Si vous vous êtes fait déconnecter pour n'importe quel raison, lorsque vous reviendrez sur votre serveur, la commande **screen -r** affichera quelque chose comme ça
 +<code>:~$ screen -r
 +There is a screen on:
 +        2453.pts-4.MonServer    (25/05/2013 23:18:02)   (Attached)
 +There is no screen to be resumed.</code>
 +
 +Pas de panique, tapez la commande
 +  screen -d
 +qui permet de détacher les screen actuellement attaché. Ensuite reprenez les vieilles habitude en tapant
 +  screen -r
 +
  
 ===== les raccourcis clavier ===== ===== les raccourcis clavier =====
Ligne 30: Ligne 48:
 Tout se fait avec Ctrl+a puis lachez tout et tapez une touche. Tout se fait avec Ctrl+a puis lachez tout et tapez une touche.
  
-La liste des touches est dans l'aide en faisant Ctrl+a puis ?+La liste des touches est dans l'aide en faisant  
 +  Ctrl+a puis ?
  
 Les principales commandes de screen Les principales commandes de screen
  
-Je ne connais pas toutes ces commandes, mais je vais vous en présenter les principales, celles qui selon moi peuvent vous être utiles.+Je ne connais pas toutes les commandes, mais je vais vous en présenter les principales, celles qui selon moi peuvent vous être utiles. 
 + 
 +créer une nouvelle « fenêtre » 
 +  Ctrl + a puis c 
 + 
 + 
 +afficher la liste des « fenêtres » actuellement ouvertes. En bas de l'écran vous verrez par exemple apparaître : 0-$ bash  1*$ bash. Cela signifie que vous avez deux fenêtres ouvertes, l'une numérotée 0, l'autre 1. Celle sur laquelle vous vous trouvez actuellement contient une étoile * (on se trouve donc ici dans la fenêtre n° 1). 
 +  Ctrl + a puis w 
 +   
 +renommer la fenêtre actuelle. Ce nom apparaît lorsque vous affichez la liste des fenêtres avec Ctrl + a puis w. 
 +  Ctrl + a puis A 
 + 
 +passer à la fenêtre suivante (next). 
 +  Ctrl + a puis n 
 + 
 +passer à la fenêtre précédente (previous). 
 +  Ctrl + a puis p 
 + 
 +revenir à la dernière fenêtre utilisée 
 +  Ctrl + a puis Ctrl + a. 
 + 
 +passer à la fenêtre n° X. 
 +  Ctrl + a puis un chiffre de 0 à 9 
 + 
 +choisir la fenêtre dans laquelle on veut aller. 
 +  Ctrl + a puis " 
 + 
 +fermer la fenêtre actuelle (kill). 
 +  Ctrl + a puis k 
 + 
 + 
 +Invite de commande scree 
 +  Ctrl+a puis : 
 +   
 +===== Splitter ===== 
 + 
 +Pour avoir plusieurs fenêtre en même temps horizontalement, faites la combinaison 
 +  Ctrl+a puis S 
 +   
 +Verticalement 
 +  Ctrl+a puis | 
 + 
 +Naviguer avec 
 +  Ctrl+a puis TAB 
 + 
 +Fermer une fenêtre avec 
 +  Ctrl+a puis X 
 +ou 
 +  Ctrl+a puis Q 
 +   
 +===== Scroll ===== 
 + 
 +Pour remonter dans l'historique de la console, il faut se mettre en mode copy 
 +  Ctrl+a Echap 
 +   
 +A partir de la, utilisez les flèches, les page up et page down, vous pouvez même faire une recherche comme dans **less** **vim** ou encore **aptitude** en tapant 
 +  / suivi du mot que vous recherchez 
 +Ensuite tapez **n** pour accéder à l’occurrence suivante ou **N** pour accéder à l'occurrence précédente. 
 + 
 +Tapez **Echap** pour sortir de ce mode 
 + 
 +===== Personnaliser ===== 
 + 
 +On peut personnaliser screen soit dans le fichier /etc/screenrc pour appliquer à tout le serveur soit dans son home/.screenrc 
 + 
 +Vous pouvez télécharger un fichier tout fait 
 + 
 +http://uploads.siteduzero.com/ftp/mateo21/linux/.screenrc 
 + 
 +<file bash screenrc> 
 +#shell /bin/zsh 
 +# config de screen par bennyben 
 +# raccourcis avec Ctrl-x puis une touche 
 +# ou alors Ctrl-meta-une touche, voire Shirt-Ctrl-Meta 
 + 
 +# $Id: screenrc,v 1.8 2002/03/20 22:20:21 laz Exp $ 
 +
 +# /etc/screenrc 
 +
 +#   This is the system wide screenrc. 
 +
 +#   You can use this file to change the default behavior of screen system wide 
 +#   or copy it to ~/.screenrc and use it as a starting point for your own 
 +#   settings. 
 +
 +#   Commands in this file are used to set options, bind screen functions to 
 +#   keys, redefine terminal capabilities, and to automatically establish one or 
 +#   more windows at the beginning of your screen session. 
 +
 +#   This is not a comprehensive list of options, look at the screen manual for 
 +#   details on everything that you can put in this file. 
 +
 + 
 +# ------------------------------------------------------------------------------ 
 +# SCREEN SETTINGS 
 +# ------------------------------------------------------------------------------ 
 + 
 +startup_message off 
 +#nethack on 
 + 
 +#defflow on # will force screen to process ^S/^Q 
 +deflogin on 
 +autodetach on 
 + 
 +# turn visual bell on 
 +vbell on 
 +vbell_msg "   Wuff  ----  Wuff!! 
 + 
 +# define a bigger scrollback, default is 100 lines 
 +defscrollback 1024 
 + 
 +# ------------------------------------------------------------------------------ 
 +# SCREEN KEYBINDINGS 
 +# ------------------------------------------------------------------------------ 
 + 
 +# Remove some stupid / dangerous key bindings 
 +#bind '^k' 
 +#bind 'L' 
 +#bind '^\' 
 +# Make them better 
 +#bind '\\' quit 
 +#bind 'K' kill 
 +#bind 'I' login on 
 +#bind 'O' login off 
 +#bind '}' history 
 + 
 +#bind 'R' colon "screen -ln rlogin faui -8^b^b^b" 
 +#bind 'P' colon "^p" 
 + 
 +# escape "" 
 +#escape "^xx" 
 +#bindkey \033^b break 
 +
 +
 + # ctrl-meta-insert 
 +
 +#bindkey \033^V digraph 
 +#bindkey \033^. dumptermcap 
 +#bindkey \033^F fit 
 +#bindkey \033^f flow 
 +#bindkey \033^I focus 
 +#bindkey \033^h hardcopy 
 + 
 +#bindkey \033^{ history 
 +#bindkey \033^i info 
 +#bindkey \033^m lastmsg 
 +#bindkey \033^, license 
 +#bindkey \033^H log 
 +#bindkey \033^L login 
 +#bindkey \033^M monitor 
 +#bindkey \033^n next 
 + 
 +#bindkey \033^N number 
 +#bindkey \033^Q only 
 +#bindkey \033^X other 
 +#bindkey \033^B pow_break 
 +#bindkey \033^D pow_detach 
 +#bindkey \033^\ quit 
 +#bindkey \033^< readbuf 
 +#bindkey \033^l redisplay 
 +#bindkey \033^X remove 
 +#bindkey \033^= removebuf 
 +#bindkey \033^Z reset 
 +#bindkey \033^' select 
 +#bindkey \033^_ silence 
 +#bindkey \033^S split 
 +#bindkey \033^z suspend 
 +#bindkey \033^t time 
 +#bindkey \033^A title 
 +#bindkey \033^G vbell 
 +#bindkey \033^v version 
 +#bindkey \033^W width 
 +#bindkey \033^r wrap 
 +#bindkey \033^> writebuf 
 +#bindkey \033^s xoff 
 +#bindkey \033^q xon 
 + 
 +#bindkey \033^x next 
 +#bindkey \033^w prev 
 +#bindkey \033^n next 
 +#bindkey \033^p prev 
 +#bindkey \033^c screen 
 +#bindkey \033^d detach 
 +#bindkey \033: colon 
 +#bindkey \033? help 
 +#bindkey \033^l clear 
 +#bindkey \033² displays 
 +#bindkey \033^P hardcopy 
 +#bindkey \033^k kill 
 +#bindkey \033^L log 
 +#bindkey \033^m monitor 
 +#bindkey \033ù silence 
 +#bindkey \033^t title 
 +#bindkey \033^S split 
 +#bindkey \033^f fit 
 +#bindkey \033^q xon 
 +#bindkey \033^s xoff 
 +#bindkey \033\033[2\^ copy 
 +#bindkey \033^k digraph 
 +#bindkey \033^a focus up 
 +#bindkey \033^z focus down 
 +#bindkey \033* lockscreen 
 + 
 +# An example of a "screen scraper" which will launch urlview on the current 
 +# screen window 
 +
 +#bind ^B eval "hardcopy_append off" "hardcopy -h $HOME/.screen-urlview" "screen urlview $HOME/.screen-urlview" 
 + 
 +# on Debian backspace should send char `\177': 
 +bindkey -k kb stuff "\177" 
 + 
 +# ------------------------------------------------------------------------------ 
 +# TERMINAL SETTINGS 
 +# ------------------------------------------------------------------------------ 
 + 
 +# The vt100 description does not mention "dl". *sigh* 
 +termcapinfo vt100 dl=5\E[M 
 + 
 +# turn sending of screen messages to hardstatus off 
 +#hardstatus off 
 +hardstatus on 
 +# Set the hardstatus prop on gui terms to set the titlebar/icon title 
 +termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007 
 +# use this for the hard status string 
 +#hardstatus string "%h%? users: %u%?" 
 + 
 +# An alternative hardstatus to display a bar at the bottom listing the 
 +# windownames and highlighting the current windowname in blue. (This is only 
 +# enabled if there is no hardstatus setting for your terminal) 
 +
 +#hardstatus alwayslastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<" 
 +#  version d'avant, allégée avec seulement les window en cours et celle courante en jaune 
 +#  et fond bleu 
 +#hardstatus alwayslastline "%{= BY}%-Lw%{= YB}%50>%n%f* %t%{= BY}%+Lw%<" 
 +# nouvelle version : 
 +# heure (avec secondes), nom de la machine en rouge, load de la machine 
 +# puis fenetres avec celle courante en jaune, le tout en fond bleu 
 +hardstatus alwayslastline "%{b kB}%{s gB}%c:%s%{b kB} %{b kR}%H %{b kB}%{s yB}%l%{b kB} %{b kB}%{rs Y}%-Lw%{BY}%50>%n%{R}%f%{B} %t%{YB}%+Lw%<" 
 + 
 +# set these terminals up to be 'optimal' instead of vt100 
 +termcapinfo xterm*|linux*|rxvt*|Eterm* OP 
 + 
 +# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E> 
 +# (This fixes the "Aborted because of window size change" konsole symptoms found 
 +#  in bug #134198) 
 +termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l' 
 + 
 +termcapinfo xterm*|linux*|rxvt*|Eterm* ti@:te@ 
 + 
 +# Do not use xterms alternate window buffer (won't add lines to scrollback bfr) 
 +#termcapinfo xterm|xterms|xs ti=\E7\E[?47l 
 + 
 +# ------------------------------------------------------------------------------ 
 +# STARTUP SCREENS 
 +# ------------------------------------------------------------------------------ 
 + 
 +# Example of automatically running some programs in windows on screen startup. 
 +
 +#   The following will open top in the first window, an ssh session to monkey 
 +#   in the next window, and then open mutt and tail in windows 8 and 9 
 +#   respectively. 
 +
 +# screen top 
 +# screen -t monkey ssh monkey 
 +# screen -t mail 8 mutt 
 +# screen -t daemon 9 tail -f /var/log/daemon.log 
 + 
 +sorendition =s WB  
 +msgwait 3 
 +bell "^GBell in window %" 
 + 
 +</file> 
 + 
 +Une variante intéressante qui permet de scroller avec la souris plutot que le Ctrl+A+Esc ... 
 +<file bash screenrc> 
 +# $Id: screenrc,v 1.15 2003/10/08 11:39:03 zal Exp $ 
 +
 +# /etc/screenrc 
 +
 +#   This is the system wide screenrc. 
 +
 +#   You can use this file to change the default behavior of screen system wide 
 +#   or copy it to ~/.screenrc and use it as a starting point for your own 
 +#   settings. 
 +
 +#   Commands in this file are used to set options, bind screen functions to 
 +#   keys, redefine terminal capabilities, and to automatically establish one or 
 +#   more windows at the beginning of your screen session. 
 +
 +#   This is not a comprehensive list of options, look at the screen manual for 
 +#   details on everything that you can put in this file. 
 +
 + 
 +# ------------------------------------------------------------------------------ 
 +# SCREEN SETTINGS 
 +# ------------------------------------------------------------------------------ 
 + 
 +startup_message off 
 +#nethack on 
 + 
 +#defflow on # will force screen to process ^S/^Q 
 +deflogin on 
 +autodetach on 
 + 
 +# turn visual bell on 
 +vbell on 
 +vbell_msg "   Wuff  ----  Wuff!! 
 + 
 +# define a bigger scrollback, default is 100 lines 
 +defscrollback 10000 
 + 
 +# ------------------------------------------------------------------------------ 
 +# SCREEN KEYBINDINGS 
 +# ------------------------------------------------------------------------------ 
 + 
 +# Remove some stupid / dangerous key bindings 
 +bind ^k 
 +#bind L 
 +bind ^\ 
 +# Make them better 
 +bind \\ quit 
 +bind K kill 
 +bind I login on 
 +bind O login off 
 +bind } history 
 + 
 +# An example of a "screen scraper" which will launch urlview on the current 
 +# screen window 
 +
 +#bind ^B eval "hardcopy_append off" "hardcopy -h $HOME/.screen-urlview" "screen urlview $HOME/.screen-urlview" 
 + 
 +# ------------------------------------------------------------------------------ 
 +# TERMINAL SETTINGS 
 +# ------------------------------------------------------------------------------ 
 + 
 +# The vt100 description does not mention "dl". *sigh* 
 +termcapinfo vt100 dl=5\E[M 
 + 
 +# turn sending of screen messages to hardstatus off 
 +hardstatus on 
 +# Set the hardstatus prop on gui terms to set the titlebar/icon title 
 +termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007 
 + 
 +# use this for the hard status string 
 +#hardstatus string "%h%? users: %u%?" 
 + 
 +# An alternative hardstatus to display a bar at the bottom listing the 
 +# windownames and highlighting the current windowname in blue. (This is only 
 +# enabled if there is no hardstatus setting for your terminal) 
 +
 +#hardstatus lastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<" 
 +#hardstatus alwayslastline "%{b kB}%{s gB}%c:%s%{b kB} %{b kR}%H %{b kB}%{s yB}%l%{b kB} %{b kB}%{rs Y}%-Lw%{BY}%50>%n%{R}%f%{B} %t%{YB}%+Lw%<" 
 +hardstatus alwayslastline 
 +#hardstatus string '%{= G}[%{g}host:%{G}%H]%{g}[%= %{= w}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][load:%{R}%l%{g}][%{c}%m-%d~%{C}%c:%s%{g}]' 
 +hardstatus string "%{= KW} %H [%{b k}%l%{-}] %{= Kw}|%{-} %-Lw%{= bW}%n%f %t%{-}%+Lw %=%{c}%d-%M %{C}%c:%s" 
 + 
 +# set these terminals up to be 'optimal' instead of vt100 
 +termcapinfo xterm*|linux*|rxvt*|Eterm* OP 
 + 
 +# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E> 
 +# (This fixes the "Aborted because of window size change" konsole symptoms found 
 +#  in bug #134198) 
 +termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l' 
 + 
 +# To get screen to add lines to xterm's scrollback buffer, uncomment the 
 +# following termcapinfo line which tells xterm to use the normal screen buffer 
 +# (which has scrollback), not the alternate screen buffer. 
 +
 +termcapinfo xterm*|xterms|xs|rxvt ti@:te@ 
 + 
 +# Enable non-blocking mode to better cope with flaky ssh connections. 
 +defnonblock 5 
 + 
 +# ------------------------------------------------------------------------------ 
 +# STARTUP SCREENS 
 +# ------------------------------------------------------------------------------
  
-Ctrl + a puis c : créer une nouvelle « fenêtre ».+# Example of automatically running some programs in windows on screen startup. 
 +
 +#   The following will open top in the first window, an ssh session to monkey 
 +#   in the next window, and then open mutt and tail in windows 8 and 9 
 +#   respectively. 
 +
 +# screen top 
 +# screen -t monkey ssh monkey 
 +# screen -t mail 8 mutt 
 +# screen -t daemon 9 tail -f /var/log/daemon.log
  
-Ctrl + a puis w : afficher la liste des « fenêtres » actuellement ouvertes. En bas de l'écran vous verrez par exemple apparaître : 0-$ bash  1*$ bash. Cela signifie que vous avez deux fenêtres ouvertes, l'une numérotée 0, l'autre 1. Celle sur laquelle vous vous trouvez actuellement contient une étoile * (on se trouve donc ici dans la fenêtre n° 1).+</file> 
 +===== Lancer en ligne de commande =====
  
-Ctrl + a puis : renommer la fenêtre actuelle. Ce nom apparaît lorsque vous affichez la liste des fenêtres avec Ctrl + a puis w.+Pour créer un screen  
 +  screen --d -m -S nom_de_la_session -t nom_de_la_fenetre commande_que_vous_voulez_lancer
  
-Ctrl + a puis n : passer à la fenêtre suivante (next).+Pour ajouter une fenêtre dans la session que vous avez créé avant 
 +  screen -S nom_de_la_session -X screen -t nom_de_la_nouvelle_fenetre commande_que_vous_voulez_lancer
  
-Ctrl + a puis p : passer à la fenêtre précédente (previous).+===== Renommer une session ===== 
 +Pour afficher les sessions 
 +  screen -ls 
 +Pour modifier le nom 
 +  screen -S nom_session -X sessionname nouveau_nom_session
  
-Ctrl + a puis Ctrl + a : revenir à la dernière fenêtre utilisée. 
  
-Ctrl + a puis un chiffre de 0 à 9 : passer à la fenêtre n° X.+===== Alternative =====
  
-Ctrl + a puis " choisir la fenêtre dans laquelle on veut aller.+  * Byobu http://byobu.co/ 
 +  * tmux : https://doc.ubuntu-fr.org/tmux
  
-Ctrl + a puis k : fermer la fenêtre actuelle (kill). 
linux/screen.1369522716.txt.gz · Dernière modification: 26-05-2013 00:58 de edmc73