Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| screen [Le 06/06/2012, 11:45] – [Détacher screen] 89.95.246.240 | screen [Le 28/01/2026, 11:15] (Version actuelle) – <code> --> <code bash> !-) bcag2 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>Dapper Gutsy Jaunty | + | {{tag> |
| + | ---- | ||
| + | {{ gnu_screen.png? | ||
| ====== Screen, le multiplexeur de terminaux ====== | ====== Screen, le multiplexeur de terminaux ====== | ||
| - | **Screen** (GNU/Screen) est un utilitaire | + | **Screen** ([[wpfr>GNU Screen]]) est un « multiplexeur de terminaux » permettant d' |
| - | * La possibilité d' | + | |
| - | * La possibilité de partager un terminal avec un autre utilisateur, | + | |
| - | <note tip>[[byobu]] est une version améliorée de //screen// disponible par défaut dans Ubuntu 10.04. Il peut s' | + | Il offre d' |
| + | * La possibilité d' | ||
| + | * La possibilité de partager un terminal | ||
| + | * La possibilité pour administrer un serveur, de lancer | ||
| + | * La possibilité de laisser tourner une commande ssh même en cas de coupure de connexion, idéal pour des opérations d' | ||
| ===== Pré-requis ===== | ===== Pré-requis ===== | ||
| Ligne 13: | Ligne 17: | ||
| * Disposer des [[: | * Disposer des [[: | ||
| * Disposer d'une connexion à Internet configurée et activée ; | * Disposer d'une connexion à Internet configurée et activée ; | ||
| - | * Avoir activé l' | + | * Avoir activé l' |
| ===== Installation ===== | ===== Installation ===== | ||
| - | [[: | + | S'il ne l'est pas déjà, |
| - | <note tip> | + | ===== Exemple d'utilisation de Screen ===== |
| - | ===== Exemple d' | + | Nous allons lancer dans le //screen// une application en ligne de commande, puis « nous détacher » de la session du //screen// en laissant l' |
| - | + | ||
| - | Nous allons lancer dans le //screen// une application en ligne de commande, puis «nous détacher» | + | |
| * Créer un nouveau //screen// en nommant la session : | * Créer un nouveau //screen// en nommant la session : | ||
| - | < | + | < |
| + | |||
| + | <code bash> | ||
| + | |||
| + | <code bash> | ||
| Un message annonçant la version utilisée et indiquant que ce programme est publié sous licence GPL s' | Un message annonçant la version utilisée et indiquant que ce programme est publié sous licence GPL s' | ||
| - | La nouvelle session du //shell// s' | + | La nouvelle session du //shell// s' |
| Le //shell// se présente alors comme ça : | Le //shell// se présente alors comme ça : | ||
| - | < | + | < |
| - | foo@bar $ echo test | + | foo@bar $ echo test |
| - | test | + | test |
| - | foo@bar $ | + | foo@bar $ |
| </ | </ | ||
| Ligne 44: | Ligne 50: | ||
| OU fermer le terminal et/ou ouvrir un autre terminal | OU fermer le terminal et/ou ouvrir un autre terminal | ||
| + | OU tapez exit | ||
| * Pour se rattacher à la session du //screen// : | * Pour se rattacher à la session du //screen// : | ||
| - | < | + | < |
| <note tip> | <note tip> | ||
| Ligne 55: | Ligne 62: | ||
| ===== Utilisation ===== | ===== Utilisation ===== | ||
| - | ==== Lancement de screen | + | ==== Lancement de Screen |
| - | * Créer un nouveau //screen// en nommant la session : < | + | * Créer un nouveau //screen// en nommant la session : < |
| Une fois passé l' | Une fois passé l' | ||
| - | * Connaître les //screen// existants : < | + | * Connaître les //screen// existants : < |
| - | * Rattacher un //screen// existant : < | + | * Rattacher un //screen// existant : < |
| - | <note tip> | + | |
| - | Si plusieurs //screen// sont en cours d' | + | |
| - | < | + | Si plusieurs //screen// sont en cours d' |
| + | <code bash> | ||
| There are several suitable screens on: | There are several suitable screens on: | ||
| 13379.toto1 (Detached) | 13379.toto1 (Detached) | ||
| 13308.toto2 (Detached) | 13308.toto2 (Detached) | ||
| - | | + | |
| + | 13356.toto4 | ||
| Type " | Type " | ||
| Ligne 77: | Ligne 84: | ||
| Nous avons donc le choix entre plusieurs //screen// que l'on va préciser simplement par | Nous avons donc le choix entre plusieurs //screen// que l'on va préciser simplement par | ||
| - | < | + | < |
| ou | ou | ||
| - | < | + | < |
| - | </note> | + | |
| - | <note tip> | + | Si le //screen// que nous essayons de rattacher n'a pas été détaché (toto3 dans l' |
| - | Si un //screen// est mort (toto3 dans l' | + | <code bash> |
| - | < | + | screen -d toto3 |
| + | </ | ||
| + | Pour avoir plusieurs attachements simultanés (option " | ||
| + | |||
| + | Si un //screen// est mort (toto4 dans l' | ||
| + | < | ||
| screen -wipe | screen -wipe | ||
| </ | </ | ||
| - | </ | ||
| - | |||
| - | <note tip> | ||
| - | Si le //screen// que nous essayons de rattacher n'a pas été détaché, il est possible de forcer son détachement de la console précédente avec l' | ||
| - | </ | ||
| ==== Créer un nouveau terminal ==== | ==== Créer un nouveau terminal ==== | ||
| Ligne 101: | Ligne 107: | ||
| ==== Naviguer entre les terminaux du screen ==== | ==== Naviguer entre les terminaux du screen ==== | ||
| - | * [CTRL]+[a] suivi de [n]: pour «next», aller au terminal suivant. | + | * [CTRL]+[a] suivi de [n]: pour «**n**ext», aller au terminal suivant. |
| - | * [CTRL]+[a] suivi de [p]: pour «previous», aller au terminal précédent. | + | * [CTRL]+[a] suivi de [p]: pour «**p**revious», aller au terminal précédent. |
| - | * [CTRL]+[a] suivi de [0]..[9]: aller au terminal n. | + | * [CTRL]+[a] suivi de [0]..[9]: aller au terminal |
| * [CTRL]+[a] suivi de [']: saisir dans le prompt le numéro du terminal. | * [CTRL]+[a] suivi de [']: saisir dans le prompt le numéro du terminal. | ||
| * [CTRL]+[a] suivi de ["]: lister des différents terminaux, avec la possibilité d'en choisir un. | * [CTRL]+[a] suivi de ["]: lister des différents terminaux, avec la possibilité d'en choisir un. | ||
| Ligne 110: | Ligne 116: | ||
| * [CTRL]+[a] suivi de [A]: nommer les terminaux et s'y rendre par la suite plus aisément. | * [CTRL]+[a] suivi de [A]: nommer les terminaux et s'y rendre par la suite plus aisément. | ||
| - | ==== | + | ==== |
| + | Lorsque on est logué sur un screen, pour le « tuer » (kill) : | ||
| + | <code bash> | ||
| - | < | + | |
| - | + | * [CTRL]+[A] puis :quit le ferme également. Lorsqu'il n'y a plus qu'une seule console quitte //screen//. | |
| - | | + | |
| ==== Détacher screen ==== | ==== Détacher screen ==== | ||
| - | * Liste à puce | ||
| * [CTRL]+[a] suivi de [d]: pour détacher //screen// | * [CTRL]+[a] suivi de [d]: pour détacher //screen// | ||
| * [CTRL]+[a] suivi de [DD]: pour détacher //screen// et fermer la session | * [CTRL]+[a] suivi de [DD]: pour détacher //screen// et fermer la session | ||
| Ligne 127: | Ligne 133: | ||
| * Créer un nouveau //screen// en nommant la session : | * Créer un nouveau //screen// en nommant la session : | ||
| - | < | + | < |
| - | Votre ami se connecte sur votre machine via [[:ssh]] par exemple et saisit la commande suivante : | + | Votre ami se connecte sur votre machine |
| - | < | + | < |
| À partir de là, tout ce qui est saisi dans un des 2 terminaux (le vôtre ou le sien) apparaît sur les deux. Si il n'y a qu'un seul //screen// de lancé, il n'est pas nécessaire de préciser son nom lors de la connexion. | À partir de là, tout ce qui est saisi dans un des 2 terminaux (le vôtre ou le sien) apparaît sur les deux. Si il n'y a qu'un seul //screen// de lancé, il n'est pas nécessaire de préciser son nom lors de la connexion. | ||
| Ligne 141: | Ligne 147: | ||
| * [CTRL]+[a] suivi de [S]: Sépare la console courante en deux consoles horizontalement (la console courante devient celle du dessus). | * [CTRL]+[a] suivi de [S]: Sépare la console courante en deux consoles horizontalement (la console courante devient celle du dessus). | ||
| * [CTRL]+[a] suivi de [TAB]: Une fois la console séparée, ce raccourci permet de se positionner sur la console suivante. | * [CTRL]+[a] suivi de [TAB]: Une fois la console séparée, ce raccourci permet de se positionner sur la console suivante. | ||
| - | * [CTRL]+[a] suivi de [Q]: Supprime toutes les consoles, sauf la console | + | * [CTRL]+[a] suivi de [Q]: Supprime toutes les régions, sauf la région |
| - | * [CTRL]+[a] suivi de [K]: Supprime | + | * [CTRL]+[a] suivi de [K]: Tue la console |
| + | * [CTRL]+[a] suivi de [X]: Ferme la région | ||
| <note tip> | <note tip> | ||
| + | :!: Pour la seconde console, il faut créer un nouveau screen par [CTRL]+[a] suivi de [c] :!: | ||
| + | |||
| A noter que la suppression d'une ou plusieurs régions ne supprime pas les consoles qui s'y trouvaient. | A noter que la suppression d'une ou plusieurs régions ne supprime pas les consoles qui s'y trouvaient. | ||
| </ | </ | ||
| Divers : | Divers : | ||
| - | * Liste à puce | ||
| * [CTRL]+[a] suivi de [F]: Redimensionnement de la fenêtre à la taille de son terminal. Utile lorsque l'on est plusieurs sur une même console et que l'on enrage de ne pas avoir un écran 16/9e. | * [CTRL]+[a] suivi de [F]: Redimensionnement de la fenêtre à la taille de son terminal. Utile lorsque l'on est plusieurs sur une même console et que l'on enrage de ne pas avoir un écran 16/9e. | ||
| * [CTRL]+[a] suivi de [H]: Permet de logguer tout ce qui passe à l' | * [CTRL]+[a] suivi de [H]: Permet de logguer tout ce qui passe à l' | ||
| * [CTRL]+[a] suivi de [?]: Affiche une petite aide | * [CTRL]+[a] suivi de [?]: Affiche une petite aide | ||
| + | * [CTRL]+[a] suivi de [x]: Verrouille la session | ||
| + | * [CTRL]+[a] suivi de [a]: Envoie le caractère de commande (CTRL a) à la fenêtre. | ||
| + | |||
| Déplacement et copie : | Déplacement et copie : | ||
| * [CTRL]+[a] suivi de [ESC]: Entre en mode copie/ | * [CTRL]+[a] suivi de [ESC]: Entre en mode copie/ | ||
| * ENTER : Permet de commencer une sélection. Appuyer une nouvelle fois sur ENTER pour terminer la sélection. | * ENTER : Permet de commencer une sélection. Appuyer une nouvelle fois sur ENTER pour terminer la sélection. | ||
| - | * [CTRL]+[a] suivi de []]: Colle le contenu sélectionné précédemment. | + | * [CTRL]+[a] suivi de []]: Colle le contenu sélectionné précédemment. |
| ===== Personnaliser son screen ===== | ===== Personnaliser son screen ===== | ||
| Il est possible pour chaque utilisateur du système de personnaliser son //screen// grâce à un fichier de configuration spécifique : «~/ | Il est possible pour chaque utilisateur du système de personnaliser son //screen// grâce à un fichier de configuration spécifique : «~/ | ||
| - | < | + | < |
| - | Et vous pourrez ensuite le personnaliser comme bon vous semble. | + | Et vous pourrez ensuite le personnaliser comme bon vous semble. |
| - | <note tip>Il est possible de changer le caractère d' | + | <note tip>Il est possible de changer le caractère d' |
| + | [[https:// | ||
| + | </ | ||
| - | ===== Liens ===== | + | |
| + | ===== Voir aussi ===== | ||
| * Les pages du manuel **man screen** et **info screen** | * Les pages du manuel **man screen** et **info screen** | ||
| - | * La page du projet | + | * [[http:// |
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| - | * [[http:// | + | * [[https:// |
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[Tmux]] un autre multiplexeur. | ||
| + | * [[:Byobu]] une version améliorée de Screen. | ||
| ---- | ---- | ||
| - | // | + | // |
