Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
screen [Le 13/02/2023, 21:47] – [Raccourcis supplémentaires] 176.171.41.89screen [Le 28/01/2026, 11:15] (Version actuelle) – <code> --> <code bash> !-) bcag2
Ligne 10: Ligne 10:
   * La possibilité d'attacher et de détacher une session, pratique par exemple pour reprendre la main sur un client IRC tel que [[:Irssi]] ou [[:Weechat]].   * La possibilité d'attacher et de détacher une session, pratique par exemple pour reprendre la main sur un client IRC tel que [[:Irssi]] ou [[:Weechat]].
   * La possibilité de partager un terminal avec un autre utilisateur, idéal pour aider un utilisateur distant.   * La possibilité de partager un terminal avec un autre utilisateur, idéal pour aider un utilisateur distant.
 +  * La possibilité pour administrer un serveur, de lancer des tâches ou l’exécution de scripts qui peuvent durer longtemps et pouvoir se détacher puis se reconnecter plus tard (le lendemain par exemple).
 +  * La possibilité de laisser tourner une commande ssh même en cas de coupure de connexion, idéal pour des opérations d'administration via smartphone quand le réseau mobile est faible ou instable.
  
 ===== Pré-requis ===== ===== Pré-requis =====
Ligne 26: Ligne 28:
  
   * Créer un nouveau //screen// en nommant la session :   * Créer un nouveau //screen// en nommant la session :
-<code>screen -S nom_de_la_session</code>+<code bash>screen -S nom_de_la_session</code> 
 + 
 +<code bash>screen -S nom_de_la_session -dm sleep 10</code> 
 + 
 +<code bash>screen -XS nom_de_la_session quit</code>
  
 Un message annonçant la version utilisée et indiquant que ce programme est publié sous licence GPL s'affiche à l'écran. Il ne reste plus qu'à presser la touche [ESPACE]. Un message annonçant la version utilisée et indiquant que ce programme est publié sous licence GPL s'affiche à l'écran. Il ne reste plus qu'à presser la touche [ESPACE].
  
-La nouvelle session du //shell// s'affiche et attend qu'on saisisse une commande, par exemple : <code>echo test</code>+La nouvelle session du //shell// s'affiche et attend qu'on saisisse une commande, par exemple : <code bash>echo test</code>
  
 Le //shell// se présente alors comme ça : Le //shell// se présente alors comme ça :
-<code>+<code bash>
 foo@bar $ echo test foo@bar $ echo test
 test test
Ligne 48: Ligne 54:
   * Pour se rattacher à la session du //screen// :   * Pour se rattacher à la session du //screen// :
  
-<code>screen -r nom_de_la_session</code>+<code bash>screen -r nom_de_la_session</code>
  
 <note tip> <note tip>
Ligne 58: Ligne 64:
 ==== Lancement de Screen ==== ==== Lancement de Screen ====
  
-  * Créer un nouveau //screen// en nommant la session : <code>screen -S toto</code>+  * Créer un nouveau //screen// en nommant la session : <code bash>screen -S toto</code>
  
 Une fois passé l'écran de version, nous avons devant nous un terminal prêt à servir, nous pouvons l'utiliser comme d'habitude (en dehors des applications en mode graphique). Une fois passé l'écran de version, nous avons devant nous un terminal prêt à servir, nous pouvons l'utiliser comme d'habitude (en dehors des applications en mode graphique).
  
-  * Connaître les //screen// existants : <code>screen -ls</code>+  * Connaître les //screen// existants : <code bash>screen -ls</code>
  
-  * Rattacher un //screen// existant : <code>screen -r</code>+  * Rattacher un //screen// existant : <code bash>screen -r</code>
  
-Si plusieurs //screen// sont en cours d'exécution, voilà ce que <code>screen -r</code> va afficher : +Si plusieurs //screen// sont en cours d'exécution, voilà ce que <code bash>screen -r</code> va afficher : 
-<code>+<code bash>
 There are several suitable screens on:  There are several suitable screens on: 
       13379.toto1 (Detached)        13379.toto1 (Detached) 
Ligne 78: 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
-<code>screen -r 13379</code>+<code bash>screen -r 13379</code>
 ou ou
-<code>screen -r toto1</code>+<code bash>screen -r toto1</code>
  
 Si le //screen// que nous essayons de rattacher n'a pas été détaché (toto3 dans l'exemple ci-dessus), il est possible de forcer son détachement de la console précédente : Si le //screen// que nous essayons de rattacher n'a pas été détaché (toto3 dans l'exemple ci-dessus), il est possible de forcer son détachement de la console précédente :
-<code>+<code bash>
 screen -d toto3 screen -d toto3
 </code> </code>
Ligne 89: Ligne 95:
  
 Si un //screen// est mort (toto4 dans l'exemple ci-dessus), il est possible de le supprimer en saisissant la commande Si un //screen// est mort (toto4 dans l'exemple ci-dessus), il est possible de le supprimer en saisissant la commande
-<code>+<code bash>
 screen -wipe screen -wipe
 </code> </code>
Ligne 112: Ligne 118:
 ====  « Tuer » un screen ==== ====  « Tuer » un screen ====
 Lorsque on est logué sur un screen, pour le « tuer » (kill) : Lorsque on est logué sur un screen, pour le « tuer » (kill) :
-<code>exit</code>+<code bash>exit</code>
  
     * [CTRL]+[D] : équivalent à exit. Lorsqu’il n’y a plus qu’une seule console quitte //screen//.     * [CTRL]+[D] : équivalent à exit. Lorsqu’il n’y a plus qu’une seule console quitte //screen//.
Ligne 127: Ligne 133:
  
   * Créer un nouveau //screen// en nommant la session :   * Créer un nouveau //screen// en nommant la session :
-<code>screen -S toto</code>+<code bash>screen -S toto</code>
  
-Votre ami se connecte sur votre machine via [[:ssh]] par exemple et saisit la commande suivante : +Votre ami se connecte sur votre machine avec le même compte, via [[:ssh]] par exemple et saisit la commande suivante : 
-<code>screen -x toto</code>+<code bash>screen -x toto</code>
  
 À 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 156: Ligne 162:
   * [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 [x]: Verrouille la session
 +  * [CTRL]+[a] suivi de [a]: Envoie le caractère de commande (CTRL a) à la fenêtre.
  
  
Ligne 166: Ligne 173:
  
 Il est possible pour chaque utilisateur du système de personnaliser son //screen// grâce à un fichier de configuration spécifique : «~/.screenrc». Un exemple d'un tel fichier est disponible dans /etc/screenrc. Il vous suffit de faire : Il est possible pour chaque utilisateur du système de personnaliser son //screen// grâce à un fichier de configuration spécifique : «~/.screenrc». Un exemple d'un tel fichier est disponible dans /etc/screenrc. Il vous suffit de faire :
-<code>cp /etc/screenrc ~/.screenrc</code>+<code bash>cp /etc/screenrc ~/.screenrc</code>
  
 Et vous pourrez ensuite le personnaliser comme bon vous semble. Et vous pourrez ensuite le personnaliser comme bon vous semble.