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 onglet
T (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.