User Tools

Site Tools


informatique:logiciels:screen

This is an old revision of the document!


utilitaire système session

SCREEN

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.

NB : Il existe une version améliorée de screen (avec un menu de configuration notamment) nommée byobu.

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

On installe et on lance screen :

aptitude install screen
screen

Dans le terminal qu'on vient d'ouvrir, on lance un anodin

echo test
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 (rattacher) notre screen :

screen -r

On récupère ainsi l'état dans lequel on l'avait laissé.

On peut également cré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 (next) ou encore ctrl+a et p (previous). ctrl+a ctrl+a permet de revenir à l'ancien terminal virtuel.

On peut aussi partager un terminal : il faut créer un screen, puis quelqu'un d'autre se rattache dessus avec un screen -x. On utilise cette fonctionnalité avec un utilisateur distant connecté en SSH par exemple.

On peut lancer plusieurs screen à la fois ; pour se rattacher à l'un d'entre eux on utilise la syntaxe :

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.
screen -r 314..soekris-01

Pour lancer un script dans un screen au démarrage par exemple, on utilise :

screen -d -m script.sh

pour créer une nouvelle session sans l'attacher.

Combinaisons de touches

Une fois screen lancé, on utilise la combinaison de touche ctrl+a suivie de :

  • 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

Ma conf

# /etc/screenrc
startup_message off
deflogin on
vbell on
vbell_msg "   Wuff  ----  Wuff!!  "
defscrollback 1024
bind ^k
bind ^\
bind \\ quit
bind K kill
bind I login on
bind O login off
bind } history
termcapinfo vt100 dl=5\E[M
hardstatus off
termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007
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'
informatique/logiciels/screen.1381783507.txt.gz · Last modified: 2016/03/09 11:31 (external edit)