Contents
Screen
Screen est un multiplexeur de terminal qui permet entre autre:
- de garder un (ou plusieurs) shells ouvert sans forcément avoir d'utilisateur de connecté à la machine.
- de visualiser à plusieurs la même chose (plusieurs users se connecte au même screen et vois la même chose).
- avoir plusieurs terminaux facilement switchable même en tty.
- laissé des logiciels tournés et pouvoir interagir avec depuis l'extérieur (ssh)
Installation
Screen étant disponible dans les dépôts de Debian, l'installation est comme d'habitude toute simple:
aptitude install screen
Le fichier de configuration "global" est /etc/screenrc
On peut créer un fichier de configuration personnel ~/.screenrc
Utilisation
Commandes
Voici quelques commandes de base (pour créer un screen, se reconnecter, ...) :
Raccourcis clavier
Une rapide liste de raccourcis:
CTRL+a CTRL+a |
Revenir au terminal précédent |
CTRL+a {0,9} |
Aller au terminal n°x |
CTRL+a p |
Aller au terminal précédent |
CTRL+a n |
Aller au terminal suivant |
CTRL+a " |
Afficher la liste des terminaux disponibles et on peut choisir avec le numéro ou les flèches |
CTRL+a A |
Renommer le terminal courant |
CTRL+a d |
Détacher le terminal. Il reste accessible! |
CTRL+a S |
Spliter le terminal en 2 |
CTRL+a TAB |
Basculer sur le split suivant |
CTRL+a X |
Fermer le split courant |
CTRL+a x |
Verrouiller le screen avec le mot de passe de l'utilisateur courant |
CTRL+a est en fait la combinaison par défaut qui permet de faire appel au raccourcis de screen. Cette combinaison peut bien évidemment être changée (utile dans le cas de multi-screen: un screen lancé dans un autre screen).
Fichier de configuration
Pour modifier le comportement de screen (création de terminal automatique, raccourcis, …) on peut utiliser un fichier de configuration que l'on chargera lors de la création du screen:
screen -c ~/.screen/scr.toto
Exemple de fichier de configuration:
1 # Combinaison pour appeler les raccourcis: CTRL+e
2 escape "^Ee"
3 # Pour faire le "^E" dans vim, il faut faire la combinaison de touche: CTRL+v CTRL+e
4
5 ## Exemple de raccourcis:
6 bindkey ² prev # aller dans au terminal précédent
7 bindkey = next # aller au terminal suivant
8
9 # Barre de statut en bas du screen pour lister les screens, l'heure, la machine, ...
10 # heure (avec secondes), nom de la machine en rouge, load de la machine
11 # puis list des fenêtres avec celle courante en jaune, le tout en fond bleu
12 #hardstatus alwayslastline "%{s gB}%{b kB}%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%<"
13 # Même ligne avec fond noir
14 hardstatus alwayslastline "%{b kB}%{b kB}%c:%s%{b kB} %{b kR}%H %{b kB}%{b kB}%l%{b kB} %{b kB}%{rs Y}%-Lw%{BY}%50>%n%{R}%f%{B} %t%{b kB}%+Lw%<"
15
16 ## Nom du screen
17 sessionname "toto"
18
19 ## Définition du shell (zsh en tant que login-shell avec le "-")
20 shell -/bin/zsh
21
22 ## Création automatique des fenêtres à l'intérieur du screen test :
23 screen -t r00t 0 su
24 screen -t ht0p 1 htop
25 chdir /media
26 screen -t media 3
27 chdir ~
28 screen -t h0me 4
29 chdir ~
30
31 ## Sélectionner l'écran sur lequel se positionné par défaut :
32 select 1
Voila plus ou moins ce que ça peut donner (j'ai pas mis tout les lignes de mon fichier config ):
Pleins d'autres paramètres sont modifiables, le manuel fournira toutes les informations nécessaires =)
Astuces
Pour éviter de taper screen -c ... ou screen -x, on peut créer un alias vers une commande screen qui se connectera à un screen ou le créera si il n'existe pas:
alias toto='screen -Rd toto -c ~/.screen/scr.toto'
Ce bout de code est à placer dans le fichier de configuration de son shell (~/.zshrc, ~/.bashrc, ...).
Alternatives
Tmux est également un multiplexeur de terminal (fonctionnalités similaires, plus léger?, ...)