Gestion de session multi-terminal avec screen

terminaux screenMaintenant qu’on utilise Mutt, ncmcpp, Weechat, Canto, Vim, Tin et plein d’autre joyeuseté en console. Il est agréable d’utiliser un programme pouvant gérer le tout de façon avancé.

Le plus gros avantage de screen, c’est que chaque programme n’est plus dépendant du terminal, pouvant être ‘détaché’ de celui-ci. D’autant plus pratique pour une utilisation avec un serveur.

Par exemple lors d’une compilation, si la connexion vient à échouer, on doit reprendre la compilation, car elle est associé au terminal qui à été coupé lors de la déconnexion. Avec screen, un tel cas aurais placé la compilation en tache de fond, et après une reconnexion, il suffit de se ‘ré-attaché » à celui-ci.

C’est donc une très bonne pratique que d’utiliser screen, même pour un usage desktop.

Si vous n’avez pas encore installé screen, faite-le par un (suivant les distributions)
apt-get install screen
pacman -S screen

On va voir trois séries de commandes, permettant :

  • Gérer les différentes fenêtres, (lister, naviguer, renommer).
  • Détacher screen du terminal et manipuler les sessions.
  • Les splits.

Gestion des fenêtres

Tout d’abord, lancer screen (simplement la commande ’screen’), puis appuyer sur entrer lorsqu’il vous donne un texte de présentation, une fois fait, il vous redonne la main sur ce qu’y s’apparente à un simple prompteur.

À partir de là, lancer une application, par exemple mutt, en lançant la commande dans la console de screen.
La combinaison de touche à se souvenir avec screen, c’est ctrl+a (noté c-a par la suite).
Car toute action qu’on va voir commence par cette combinaison de touche, autant dire qu’après quelques jours d’usage de screen, vos doigts connaitront par cœur cette combinaison !

La première chose qu’on va faire, est de créer une nouvelle fenêtre, pour cela :
c-a c
Entendez par là, ctrl+a puis la touche c.
Vous vous retrouvez de nouveau devant un prompt vide. lancez par exemple irssi ou weechat dans ce prompt.
On se retrouve virtuellement avec deux prompt, l’un noté 0 et l’autre 1. Il est a retenir que la numérotation commence par zéro, mais rien de déstabilisant.
On peut renouveler cette action autant de fois que nécessaire, maintenant, on va voir comment s’y retrouver et naviguer entre les différents terminaux.

Pour naviguer entre les terminaux:
c-a 0
c-a 1
c-a 2

Permet de naviguer entre les fenêtre numéro 0, 1, 2… etc.
On peut également faire appel au fenêtre précédente (preview) ou suivante (next) avec les commandes respectivement :
c-a p
c-a n

Une commande pratique, pour ’switcher’ entre deux fenêtres sans faire appel au numéro :
c-a c-a
On s’aperçoit que cette combinaison de touche est très instinctive puisque répétitive.

Si vous voulez en avoir une liste de toute les fenêtres ouvertes faite :
c-a "
Parfois, on se retrouve avec une série de fenêtres portant le même nom (bash, terminal ou autre) mais il est possible de renommer ces fenêtres afin de mieux s’y retrouver par la suite.
c-a A
Puis screen vous invite à changer de titre de la fenêtre.

À partir de là, vous êtes capable de naviguer avec un peu près autant de fenêtre que nécessaire.

Détacher screen

Une des fonctionnalités importante de screen, c’est de pouvoir être indépendant du terminal, et ainsi s’effectuer en fond.

Pour détacher :
c-a d
pour ré-attacher:
screen -r
s’il y a plusieurs session de screen d’ouvert, pour connaitre les différentes session :
screen -ls
Et pour ré-attacher une session particulière (par exemple):
screen -r 4290.pts-1.hostname
On a la possibilité d’ouvrir deux screen sur une même session, on aura donc dans les deux screen exactement la même chose, ce qui peut être utile dans certain cas:
screen -x

Split

Screen offre la possibilité de splitté l’écran en deux, on notera que dans la version courant, seul un split horizontal est possible, mais le split vertical est possible lors de version patché de screen.
Pour splitter l’écran:
c-a S
Et pour passer d’une partie à l’autre de l’écran:
c-a TAB

L’utilisation de screen ne s’arrête pas là, mais avec ces commandes de bases, screen vous offre des possibilités intéressante.

Aide

Comme souvent, pour avoir l’aide lorsqu’une session est ouverte :
c-a ?

Voilà une petite introduction de screen, et très rapidement, vos doigts s’habituent déjà à faire c-a sans regarder le clavier !

L’usage Desktop de cette application permet de réduire le nombre de console ouvert et trainant sur votre bureau, et permettant également, si vous passez d’une session de bureau à une autre, de ne pas couper les applications. Screen est indispensable pour des utilisations serveur car pouvant éviter bien des misères.

Articles en rapport:

Partager cette article:
  • Facebook
  • Twitter
  • Identi.ca
  • Google Bookmarks
  1. gyo
    gyo
    fév 4th, 2010 at 17:13 | #1

    Il y a tmux qui fait comme screen mais qui apporte en plus le splittage vertical : http://tmux.sourceforge.net/

Ajouter un commentaire

XHTML: Vous pouvez utiliser ces balises: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">