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 26/05/2014, 11:46] – [Raccourcis supplémentaires] 194.254.165.188 | screen [Le 26/11/2020, 08:51] (Version actuelle) – [Exemple d'utilisation de Screen] sangorys | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---- | ||
+ | {{ gnu_screen.png? | ||
+ | ====== Screen, le multiplexeur de terminaux ====== | ||
+ | |||
+ | **Screen** ([[wpfr> | ||
+ | |||
+ | Il offre d' | ||
+ | * La possibilité d' | ||
+ | * La possibilité de partager un terminal avec un autre utilisateur, | ||
+ | |||
+ | ===== Pré-requis ===== | ||
+ | |||
+ | * Disposer des [[: | ||
+ | * Disposer d'une connexion à Internet configurée et activée ; | ||
+ | * Avoir activé l' | ||
+ | |||
+ | ===== Installation ===== | ||
+ | |||
+ | S'il ne l'est pas déjà, [[: | ||
+ | |||
+ | ===== 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' | ||
+ | |||
+ | * Créer un nouveau //screen// en nommant la session : | ||
+ | < | ||
+ | |||
+ | 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' | ||
+ | |||
+ | Le //shell// se présente alors comme ça : | ||
+ | < | ||
+ | foo@bar $ echo test | ||
+ | test | ||
+ | foo@bar $ | ||
+ | </ | ||
+ | |||
+ | * Pour se détacher de la session du //screen// : | ||
+ | |||
+ | Saisir la suite de touche clavier suivante : [CTRL]+[a] suivi de [d] | ||
+ | |||
+ | OU fermer le terminal et/ou ouvrir un autre terminal | ||
+ | OU tapez exit | ||
+ | |||
+ | * Pour se rattacher à la session du //screen// : | ||
+ | |||
+ | < | ||
+ | |||
+ | <note tip> | ||
+ | Le rattachement à la session du //screen// peut très bien se faire à distance. Nous accédons alors à notre machine via un accès [[:ssh]] par exemple. | ||
+ | </ | ||
+ | |||
+ | ===== Utilisation ===== | ||
+ | |||
+ | ==== Lancement de Screen ==== | ||
+ | |||
+ | * Créer un nouveau //screen// en nommant la session : < | ||
+ | |||
+ | Une fois passé l' | ||
+ | |||
+ | * Connaître les //screen// existants : < | ||
+ | |||
+ | * Rattacher un //screen// existant : < | ||
+ | |||
+ | Si plusieurs //screen// sont en cours d' | ||
+ | < | ||
+ | There are several suitable screens on: | ||
+ | 13379.toto1 (Detached) | ||
+ | 13308.toto2 (Detached) | ||
+ | 13334.toto3 (Attached) | ||
+ | 13356.toto4 (Dead ???) | ||
+ | |||
+ | Type " | ||
+ | </ | ||
+ | |||
+ | Nous avons donc le choix entre plusieurs //screen// que l'on va préciser simplement par | ||
+ | < | ||
+ | ou | ||
+ | < | ||
+ | |||
+ | Si le //screen// que nous essayons de rattacher n'a pas été détaché (toto3 dans l' | ||
+ | < | ||
+ | screen -d toto3 | ||
+ | </ | ||
+ | Pour avoir plusieurs attachements simultanés (option " | ||
+ | |||
+ | Si un //screen// est mort (toto4 dans l' | ||
+ | < | ||
+ | screen -wipe | ||
+ | </ | ||
+ | |||
+ | ==== Créer un nouveau terminal ==== | ||
+ | |||
+ | Saisir la suite de touche clavier suivante : [CTRL]+[a] suivi de [c] | ||
+ | |||
+ | Si vous avez auparavant exécuté une commande, le contenu du terminal devrait visiblement changer : vous êtes dans le nouveau terminal dont vous venez de demander la création. | ||
+ | |||
+ | ==== Naviguer entre les terminaux du screen ==== | ||
+ | |||
+ | * [CTRL]+[a] suivi de [n]: pour «**n**ext», | ||
+ | * [CTRL]+[a] suivi de [p]: pour «**p**revious», | ||
+ | * [CTRL]+[a] suivi de [0]..[9]: aller au terminal //n//. | ||
+ | * [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 [w]: lister les terminaux actuels avec leur nom. | ||
+ | * [CTRL]+[a] suivi de [a]: retourner au terminal d'où l'on vient. | ||
+ | * [CTRL]+[a] suivi de [A]: nommer les terminaux et s'y rendre par la suite plus aisément. | ||
+ | |||
+ | ==== « Tuer » un screen ==== | ||
+ | Lorsque on est logué sur un screen, pour le « tuer » (kill) : | ||
+ | < | ||
+ | |||
+ | * [CTRL]+[D] : équivalent à exit. Lorsqu’il n’y a plus qu’une seule console quitte //screen//. | ||
+ | * [CTRL]+[A] puis :quit le ferme également. Lorsqu' | ||
+ | |||
+ | ==== 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 | ||
+ | |||
+ | ==== Partager un terminal ==== | ||
+ | |||
+ | Imaginez que vous vouliez que quelqu' | ||
+ | |||
+ | * 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 : | ||
+ | < | ||
+ | |||
+ | À 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. | ||
+ | |||
+ | ===== Raccourcis supplémentaires ===== | ||
+ | |||
+ | Séparation de la console : | ||
+ | |||
+ | * [CTRL]+[a] suivi de [AltGr]+[6] (|): Sépare la console courante en deux consoles verticalement (la console courante devient celle de gauche). | ||
+ | * [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 [Q]: Supprime toutes les régions, sauf la région courante. | ||
+ | * [CTRL]+[a] suivi de [K]: Tue la console courante ainsi que les processus qui s'y trouvent. | ||
+ | * [CTRL]+[a] suivi de [X]: Ferme la région courante. | ||
+ | |||
+ | <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. | ||
+ | </ | ||
+ | |||
+ | Divers : | ||
+ | * [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 [?]: Affiche une petite aide | ||
+ | |||
+ | Déplacement et 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. | ||
+ | * [CTRL]+[a] suivi de []]: Colle le contenu sélectionné précédemment. | ||
+ | |||
+ | ===== Personnaliser son screen ===== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | <note tip>Il est possible de changer le caractère d' | ||
+ | [[http:// | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Voir aussi ===== | ||
+ | |||
+ | * Les pages du manuel **man screen** et **info screen** | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[Tmux]] un autre multiplexeur. | ||
+ | * [[:Byobu]] une version améliorée de Screen. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | // |