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 08/02/2025, 00:16] stemy2screen [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.   * 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.
  
Ligne 27: 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 49: 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 59: 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 79: 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 90: 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 113: 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 128: 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 168: 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.