Accueil Laser Comment Utiliser La Commande Screen Sous Linux ?

Comment Utiliser La Commande Screen Sous Linux ?

La commande screen est un multiplexeur de terminal. Il est similaire au gestionnaire de fenêtres pour un environnement de bureau, sauf qu’il fonctionne à l’intérieur du terminal. Il peut créer des sessions et diviser des fenêtres qui sont un moyen très puissant de faire du multitâche dans le terminal.

Installation De La Commande Screen

La commande screen peut être installée avec le gestionnaire de packages par défaut de la distribution que vous utilisez. Voici les étapes pour installer la commande screen sur les deux distributions principales avec lesquelles la plupart des utilisateurs travaillent.

1. Installation Sur Des Systèmes Basés Sur Debian/Ubuntu

1 Installation sur des systèmes basés sur DebianUbuntu

La commande Screen peut être installée à l’aide de la commande apt :

écran d'installation sudo apt

Installer l’écran à l’aide d’Apt

2. Installation Sur Des Systèmes Basés Sur RedHat/Fedora

Le package screen n’est pas présent dans les dépôts par défaut. Il est plutôt présent dans le référentiel EPEL (Extra Packages for Enterprise Linux).

Vous devez d’abord ajouter ce dépôt, ce qui peut être fait à l’aide de la commande dnf :

sudo dnf installer epel-release

Ajouter EPEL Repo

Ensuite, pour installer l’écran, tapez :

écran d'installation sudo dnf

Installer Screen avec dnf

Utilisation De Base De La Commande Screen

Avant de commencer à utiliser la commande screen, il serait utile de connaître la terminologie qui s’y rapporte. En screen, une session est un ensemble de terminaux virtuels que gère screen.

Une session peut contenir plusieurs fenêtres qui sont généralement des shells interactifs indépendants. Un terminal virtuel peut être divisé en volets qui sont des zones rectangulaires à l’intérieur du terminal créées par screen. Ces volets peuvent contenir une fenêtre.

1. Utiliser Screen Sans Arguments

Pour utiliser l’écran, tapez simplement :

écran

Il démarrera une session « sans nom ». Vous ne trouverez aucune différence par rapport à votre invite d’origine, mais l’écran écoute maintenant les commandes. En appuyant sur CTRL + A + ? fait apparaître les raccourcis clavier pour l’écran :

Raccourcis clavier à l’écran

Comme on peut le voir ci-dessus, CTRL + A ( parfois écrit ^A ) est la « touche de commande » de l’écran. Appuyer sur la touche de commande indique à l’écran que la ou les touches sur le point d’être enfoncées sont une commande pour l’écran.

(Le ‘A’ dans CTRL + A n’est pas en majuscule. Vous n’avez pas besoin d’appuyer sur la touche Shift .

Il existe également un mode de commande de type vim auquel on peut accéder en appuyant sur CTRL + A + :

La différence est qu’au lieu de raccourcis clavier, des commandes entières doivent être saisies en mode commande. Par exemple, appuyer sur CTRL + A + X (majuscule « x ») équivaut à appuyer sur CTRL + A + : puis à taper supprimer à l’invite fournie au bas du volet.

Mode de commande d’écran

2. Création D’une Session Nommée

Pour créer une session nommée, donnez le nom de la session après l’option -S :

screen -S nouvelle session

3. Créer Une Nouvelle Fenêtre Dans Une Session

Pour créer une nouvelle fenêtre à l’intérieur de la session, appuyez sur CTRL + A + c (minuscule ‘c’). Appuyer sur CTRL + A + «  (guillemets doubles) présente une liste sélectionnable de fenêtres. Une fenêtre peut être ouverte en appuyant sur Entrée sur l’option de cette fenêtre dans la liste.

Liste des fenêtres

Pour changer le nom de la fenêtre actuelle, appuyez sur CTRL + A + A (Majuscule ‘a’). Il présentera une invite en bas. Tapez le nouveau nom ici et appuyez sur Entrée .

Donner un nom à une fenêtre

4. Lister Les Sessions Actives

Il peut y avoir plusieurs sessions d’écran en même temps. Pour les lister, tapez :

écran -ls

Séances d’inscription

La liste contient le PID (ID de processus) de la session suivi du nom de la session. En dessous de la liste le nombre de sockets

Notez que cette commande a été exécutée dans une session screen (celle avec Attached entre parenthèses). Vous pouvez exécuter des commandes d’écran à l’intérieur d’une session d’écran !

5. Tuer Une Session

La méthode pour tuer une session dépend de si vous êtes à l’intérieur ou à l’extérieur de la session.

En dehors de la session à tuer, vous devez soit connaître le nom de la session, soit le PID de la session. Ils peuvent être obtenus à partir de la liste de screen -ls.

Une fois le nom ou le PID de la session connu, saisissez :

écran -X -S 607719 quitter

Fin de l’écran

La commande ci-dessus tuera la session avec le PID de 607719, imprimera et vous ramènera à l’invite à partir de laquelle vous avez démarré l’écran.

Vous pouvez également spécifier le PID jusqu’au chiffre qui rend le PID unique. Par exemple, s’il y a deux sessions avec les PID 699389 et 607719, et que vous voulez tuer la session avec le PID 607719, vous pouvez vous en tirer avec juste :

écran -X -S 60 quitter

La même contraction peut être faite pour les noms.

quit est la commande pour screen qui tue la session. Vous pouvez envoyer n’importe quelle commande à une session de cette façon (voir la page des raccourcis clavier pour toutes les commandes disponibles).

À l’intérieur d’une session , vous pouvez tuer la session en cours en appuyant sur CTRL + A + \ (barre oblique inverse).

Écran Comme Multiplexeur De Terminal

screen est un multiplexeur de terminal, ce qui signifie que vous pouvez diviser le terminal en volets horizontalement ou verticalement. Ces volets peuvent en outre être divisés horizontalement ou verticalement. Vous devez être à l’intérieur d’une session d’écran pour le faire.

Séparons d’abord le terminal verticalement en appuyant sur CTRL + A + | (caractère barre/tuyau vertical)

Fractionnement vertical

La partie inférieure gauche du volet indique le numéro de la fenêtre et son nom. écran par défaut ouvre une fenêtre avec le numéro 0.

Vous pouvez basculer entre les volets en appuyant sur CTRL + A + Tab . Appuyez dessus et vous serez dans le volet de droite. Vous pouvez alors soit ouvrir une fenêtre existante à l’aide de la liste sélectionnable ( CTRL + A + «  ) soit en créer une nouvelle ( CTRL + A + c ). Après avoir créé une nouvelle fenêtre, notre terminal ressemble à ceci :

Plusieurs volets

Séparons maintenant la fenêtre n ° 1 (la nouvelle fenêtre qui a été créée après notre division verticale) horizontalement en appuyant sur CTRL + A + S (majuscule ‘s’) , déplacez-vous vers le nouveau volet ( CTRL + A + Tab ) et créez une nouvelle fenêtre ( CTRL + A + c ).

Notre terminal ressemble maintenant à ceci :

Fractionnement horizontal

Pour supprimer un volet, appuyez sur CTRL + A + X (majuscule « x ») dans ce volet.

Détacher Et Rattacher

Le véritable pouvoir de l’écran réside dans sa capacité à se détacher et à se rattacher à une session. Le détachement d’une session vous renvoie l’invite à partir de l’endroit où vous avez exécuté l’écran. L’ensemble de la session s’exécute ensuite en arrière-plan en tant que processus d’écran.

Ceci est particulièrement utile lors de l’accès à une machine via SSH. Une commande de longue durée peut être exécutée dans une session d’écran sur la machine distante . Ensuite, nous pouvons nous détacher de la session screen et fermer en toute sécurité la session ssh de notre machine locale .

Nous pouvons ensuite, après peut-être quelques heures, à nouveau SSH dans la machine, rattacher à la session d’écran. Vous constaterez que la commande est toujours en cours d’exécution ! Dans une session SSH normale, la commande aurait été tuée.

Pour vous détacher d’une session, appuyez sur CTRL + A + d (le « d » minuscule). Cela vous amènera à l’invite d’origine.

Après le détachement

Liste maintenant les sessions d’écran :

Inscription après détachement

Pour vous rattacher à une session, saisissez :

screen -r -S nouvelle session

Si vous aviez configuré des volets, ils auront disparu et vous devrez à nouveau diviser votre terminal selon vos besoins. Les fenêtres seront toujours là.

Notez qu’ici j’ai utilisé le nom de la session au lieu du PID.

L’écran Comme Outil De Collaboration

Screen, étonnamment, peut être utilisé comme un outil de collaboration. J’illustrerai comment se connecter à une session d’écran commune à partir de deux ordinateurs distants.

Supposons que je veuille montrer à quelqu’un comment éditer un fichier de configuration sur un serveur. Je vais créer une session screen sur le serveur :

screen -S nouvelle session

Ensuite, entrez dans le mode de commande ( CTRL + A + 🙂 et tapez multiuser on et appuyez sur Entrée

Je demanderai à l’autre personne de se connecter au même utilisateur que celui qui a créé la session d’écran à partir d’une autre machine et de taper :

écran -x

Session d’écran commune

Le terminal de droite est celui de la personne qui veut montrer comment éditer le fichier de configuration. Le terminal de gauche reflète simplement ce qui est écrit sur le terminal de droite. De cette façon, une personne peut ouvrir vim ou nano et montrer à l’autre personne comment modifier le fichier.

Conclusion

Screen est une commande très utile et elle facilite le multitâche car elle donne la possibilité d’exécuter plusieurs shells interactifs à l’intérieur d’un terminal. Pour plus d’informations sur l’écran, consultez son manuel.