mirroir readonly du Gitit wiki.evolix.org (attention, ne rien commiter/merger sur ce dépôt) https://wiki.evolix.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.9 KiB

title categories
Howto Screen sysadmin

Screen permet de gérer des terminaux virtuels, notamment lancés en arrière plan. Il permet ainsi de lancer facilement des process dans un terminal et de les laisser tourner sans rester connecté.

https://www.gnu.org/software/screen/manual/screen.html

Installation

# apt install screen

Utilisation de base

Lister les screens lançés :

$ screen -ls
There are screens on:
        30742.pts-6.server  (19/09/2016 18:24:12)   (Detached)
        4288.pts-2.server   (21/05/2015 18:07:39)   (Detached)
2 Sockets in /var/run/screen/S-jdoe.

Pour lancer un nouveau screen (l’option -S foo est facultative, elle permet juste de nommer son screen) :

$ screen -S foo

Pour se rattacher à un screen existant avec le numéro 30742 (voir screen -ls) :

$ screen -rd 30742

Pour se rattacher à un screen existant et utilisé en partage (permettant de voir à plusieurs un terminal) :

$ screen -x 30742

Une fois connecté à un screen, voici la liste des commandes de base utiles :

Ctrl+a+d : sortir du screen
Ctrl+a+a : faire un Ctrl+a
<Ctrl>+a+<Echap> OU <Ctrl>+a+[ : remonter dans le buffer d'un screen
<Ctrl>+a+s : freezer le screen courant
<Ctrl>+a+q : defreezer le screen courant (utile quand on freeze par erreur...)

Utilisation avancée

Supprimer les screen “morts” :

$ screen -wipe

Lancer une commande un screen en le laissant détaché :

$ screen -S title -dm bash -c "sleep 600; date"

Une fois connecté à un screen, voici la liste des commandes pour gérer les onglets :

<Ctrl>+a+c : ouvrir un nouvel onglet
<Ctrl>+a+A (ou T ??) : renommer l'onglet courant
<Ctrl>+a+n : passer a l'onglet suivant
<Ctrl>+a+p : revenir a l'onglet precedent
<Ctrl>+a+w : afficher le statut des onglets
<Ctrl>+a+<N> : aller au Nième onglet
<Ctrl>+a+a+<X> : action sur une fenêtre screen interne (screen dans un screen)

Pour découper un screen verticalement :

<Ctrl>+a+S : spliter un screen verticalement
<Ctrl>+a+X : détruire la region splitée
<Ctrl>+a+<Tab> : se déplacer entre les régions splitées

Gestion des copier/coller :

<Ctrl>+a+<Echap> OU <Ctrl>+a+[ : se déplacer dans le screen (active le mode copie)
M : pour se positionner en milieu d'écran
w : se déplacer un mot vers l'avant
b : se déplacer un mot en arrière
g : se déplacer en début de buffer
G : se déplacer en fin de buffer
<espace>+<espace> : sélectionner la zone à copier
<Ctrl>+a+] : coller

screen avec port série

$ screen /dev/ttyS0 38400

FAQ

Erreur Cannot open your terminal ‘/dev/pts/N’ - please check.

On ne peut pas lancer/attacher screen après avoir fait un sudo ou su. La solution propre est d’utiliser SSH à la place (rappel, rien n’empêche de faire un ssh sur localhost). Le contournement temporaire est de faire un chown 666 /dev/pts/N