Gestion des sessions
Créer et lister des sessions
screen # new unnamed session screen -S work # new session named "work" screen -ls # list all sessions screen -list # same as -ls
Commandes de session
screen -S nameDémarrer une nouvelle session nommée
screen -r nameRattacher une session détachée
screen -x nameSe rattacher à une session déjà attachée (partage)
screen -d nameDétacher une session distante
screen -d -r nameDétacher ailleurs, se rattacher ici
screen -D -RRForcer le détachement et le rattachement (agressif)
screen -lsLister toutes les sessions avec leurs PID
screen -wipeNettoyer les sessions mortes
Fenêtres
Bases des fenêtres
Ctrl-a cCréer une nouvelle fenêtre
Ctrl-a nFenêtre suivante
Ctrl-a pFenêtre précédente
Ctrl-a 0-9Passer à la fenêtre par numéro
Ctrl-a "Lister toutes les fenêtres (interactif)
Ctrl-a 'Passer à la fenêtre par nom/numéro
Ctrl-a ARenommer la fenêtre actuelle
Ctrl-a kFermer la fenêtre actuelle
Gestion des fenêtres
Ctrl-a wAfficher la liste des fenêtres dans la barre d'état
Ctrl-a Ctrl-aBasculer entre les deux dernières fenêtres
Ctrl-a NAfficher le numéro et le nom de la fenêtre
exit / Ctrl-dFermer la fenêtre (quitter le shell)
Division et régions
Commandes de division
Ctrl-a SDiviser horizontalement (haut/bas)
Ctrl-a |Diviser verticalement (gauche/droite)
Ctrl-a TabDéplacer le focus vers la région suivante
Ctrl-a XFermer la région actuelle
Ctrl-a QFermer toutes les régions sauf la courante
Flux de travail des régions
Ctrl-a S # split horizontal Ctrl-a Tab # move to new region Ctrl-a c # create window in region Ctrl-a :resize 20 # set region to 20 lines
Mode copie
Défilement et copie
Ctrl-a [Entrer en mode copie/défilement
SpaceDébut/fin de sélection (en mode copie)
EnterCopier la sélection et quitter le mode copie
Ctrl-a ]Coller le texte copié
h/j/k/lDéplacer le curseur (touches vi en mode copie)
Ctrl-u / Ctrl-dFaire défiler d'une demi-page vers le haut/bas
/ or ?Rechercher vers l'avant/arrière
EscQuitter le mode copie
Flux de travail de copie
Ctrl-a [ # enter copy mode Space # mark start (navigate first) Space # mark end + copy (navigate first) Ctrl-a ] # paste into current window
Détachement et rattachement
Détacher
Ctrl-a dDétacher la session actuelle
Ctrl-a D DDétacher et se déconnecter
Ctrl-a zSuspendre screen (comme Ctrl-Z)
screen -d PIDDétacher à distance une session par PID
Se rattacher
screen -r # reattach (if only one session) screen -r work # reattach by name screen -r 12345 # reattach by PID screen -d -r work # steal session from other terminal
Flux de travail persistants
# Start long-running task, detach, reconnect later screen -S build make -j4 all # start build Ctrl-a d # detach, go home screen -r build # reattach later
Partage
Mode multi-utilisateur
# Host enables multiuser Ctrl-a :multiuser on Ctrl-a :acladd alice # grant access to user alice # Alice attaches screen -x hostuser/sessionname
Contrôle d'accès
:multiuser onActiver le mode multi-utilisateur
:acladd userAccorder un accès complet à l'utilisateur
:aclchg user -w '#'Mettre l'utilisateur en lecture seule (toutes les fenêtres)
:acldel userSupprimer l'accès de l'utilisateur
screen -x user/sessSe rattacher à une session partagée
Configuration
Essentiels de ~/.screenrc
startup_message off # skip splash screen defscrollback 10000 # scrollback buffer lines hardstatus alwayslastline hardstatus string '%{gk}%H %{wk}%?%-Lw%?%{bw}%n*%f %t%{wk}%?%+Lw%?' shell -$SHELL # use login shell
Paramètres utiles
startup_message offSupprimer le message de démarrage
defscrollback NDéfinir le tampon de défilement (défaut 100)
escape ^BbChanger la touche préfixe en Ctrl-b
shelltitle '$ |bash'Définir automatiquement les titres de fenêtres
caption always '%n %t'Toujours afficher la légende avec les infos de fenêtre
autodetach onDétacher automatiquement en cas de déconnexion (défaut activé)
vbell onUtiliser une alerte visuelle plutôt qu'auditive
Motifs courants
Configuration de développement
# Auto-create windows in .screenrc screen -t editor 0 vim screen -t server 1 python -m http.server screen -t shell 2 bash select 0 # start on editor window
Journalisation et surveillance
Ctrl-a H # toggle logging to screenlog.N Ctrl-a M # monitor window for activity Ctrl-a _ # monitor window for silence
Référence rapide
Ctrl-a ?Afficher toutes les liaisons de touches
Ctrl-a :helpAide intégrée
Ctrl-a :source fileCharger un fichier de configuration
Ctrl-a :screen cmdExécuter une commande dans une nouvelle fenêtre
Ctrl-a :quitFermer toutes les fenêtres et quitter la session