J’ai découvert screen il n’y a pas longtemps, mais depuis, je m’en sers tous les jours. Vous me direz : ” Oui, c’est très bien tout ça, mais c’est quoi, screen ?”.
Screen est un terminal que l’on ouvre sur un serveur, et qui peut être détaché et ré-attaché à volonté. Cela permet donc de lancer un processus assez long, comme une compilation, de détacher le terminal, couper la connexion au serveur, éteindre l’ordinateur, rentrer chez soi. Le lendemain, lorsque l’on reviens, et que l’on se reconnecte sur le serveur, on retrouve son terminal dans l’état où on l’avais laissé la veille.
Pour installer screen, sous Ubuntu, il suffit de taper :
sudo apt-get install screen
ensuite, pour ouvrir ce terminal, il suffit de taper :
screen
après un écran d’accueil, on se retrouve avec un terminal. on peut ensuite faire ce que l’on veut dans ce terminal. puis lorsque l’on veut s’en détacher, il suffit de faire :
[Ctrl]+a d
on peut ensuite fermer son gnome-terminal (ou autre).
Lorsque l’on souhaite récupérer le terminal détaché, il suffit de taper :
screen -r
Lorsque l’on a plusieurs screen, le -r demande l’identifiant de celui qu’on veut ré-attacher. on peut avoir la liste des processus screen ouverts avec screen -ls
Lorsque l’on veut avoir plusieurs terminaux dans screen, il faut éditer le fichier ~/.screenrc et y mettre :
bindkey T title
hardstatus on
hardstatus string "%{.bW}%-w%{.rW}%f%n %t%{-}%+w %=%{..G}[%H %l] %{..Y} %m/%d %c"
hardstatus alwayslastline "%{=b}%{G} Screen(s): %{b}%w %=%{kG}%C%A %D,%M/%d/%Y "
Dès lors, on obtient une barre en bas du terminal, permettant de naviguer entre les différents onglets.
Les commandes utiles sont :
[Ctrl]+a c
pour créer un nouvel ongletT (et non t)
pour renommer un onglet[Ctrl]+a [0..9]
pour mettre tel ou tel onglet au premier plan[Ctrl]+a S
pour spliter le terminal à la vertical[Ctrl]+a s
pour verrouiller le terminal[Ctrl]+a [TAB]
pour se déplacer entre les zones splitées[Ctrl]+a X
pour détruire une région splittée
On peut voir ci-dessous un screenshot d’un Screen splitté en 3 avec 3 commandes s’exécutant :
Voilà pour ce petit outil, qui peut s’avérer très utile lorsque l’on a des processus longs à lancer, ou que l’on veut garder ses terminaux toujours ouverts.
5 commentaires to 'Screen : un terminal multi-onglet toujours ouvert'
11 avril 2008
La commande par defaut pour splitter verticalement le screen est “Ctrl+a S”, avec le S majuscule, et non minuscule.
“Ctrl+a s” fait planter screen chez moi…
Et on peut avoir plusieurs terminaux dans un screen sans pour autant avoir la barre en bas du terminal, mais on navigue entre eux dans ce cas là, “à l’aveugle”.
Merci pour cette petite notice!
11 avril 2008
“ctrl+a s” ne fait pas planter screen, cela ne fait que geler le terminal.
un “ctrl+a q” devrait permettre de le dégeler.
Le mieux étant encore de reconfigurer les séquences de touches.
11 avril 2008
Merci pour la remarque, c’était une coquille, j’ai corrigé.
Pour ne pas avoir la barre du bas, il suffit d’enlever les lignes :
hardstatus on
hardstatus string “%{.bW}%-w%{.rW}%f%n %t%{-}%+w %=%{..G}[%H %l] %{..Y} %m/%d %c”
hardstatus alwayslastline “%{=b}%{G} Screen(s): %{b}%w %=%{kG}%C%A %D,%M/%d/%Y “
de ton .screenrc
11 avril 2008
LA référence sur screen en français : http://u-classroom.net/cours/logici...
18 avril 2008
Petit concours : moi mon hardstatus c’est ça :
hardstatus alwayslastline “%{wk}%h %{R} Screen(s): %{w}%w %=%{kG}%C%A %D,%M/%d/%Y “