Comment installer et utiliser Screen pour gérer des sessions de terminal sur Linux

utiliser Screen pour gérer des sessions de terminal sur Ubuntu

Screen est un multiplexeur de terminal qui vous permet d’exécuter plusieurs sessions de terminal dans une seule fenêtre de terminal ou session SSH. Il peut être très utile sur des serveurs distants comme les serveurs cloud Ubuntu où vous voulez exécuter des processus de longue durée auxquels vous pouvez vous déconnecter et vous reconnecter plus tard.

Voici comment installer et utiliser screen sur un serveur cloud Ubuntu :

Installation de Screen

Screen devrait être installé par défaut sur la plupart des distributions Ubuntu. Vous pouvez vérifier s’il est déjà installé en exécutant :

$ screen -v

S’il est installé, vous verrez une sortie comme :

Screen version 4.08.00 (GNU) 5-Oct-20

S’il n’est pas installé, installez-le avec :

$ sudo apt update
$ sudo apt install screen

Démarrer une session Screen

Pour démarrer une nouvelle session screen, exécutez simplement :

$ screen

Un écran de terminal vide vous sera présenté. Tout ce que vous exécutez ici sera à l’intérieur de la session screen.

Vous pouvez également démarrer une session screen nommée en fournissant un nom de session :

$ screen -S session1

Pour voir une liste des sessions screen en cours d’exécution :

$ screen -ls

Détacher et se rattacher à un écran

Pour vous détacher d’une session screen tout en la maintenant en cours d’exécution, appuyez sur Ctrl+A suivi de D.

Vous reviendrez à votre invite de terminal normal tandis que la session screen continue de s’exécuter en arrière-plan.

Pour vous rattacher à un écran détaché :

$ screen -r session1

Remplacez “session1” par le nom de votre session screen.

Vous pouvez omettre le nom de session pour vous attacher à votre session détachée la plus récente.

Commandes Screen pratiques

Voici quelques commandes pratiques à utiliser dans une session screen :

  • Ctrl+A D – Détachez-vous de la session en cours
  • Ctrl+A K – Tuez la session en cours
  • Ctrl+A C – Créez un nouvel onglet dans la session
  • Ctrl+A N – Passez à la fenêtre suivante
  • Ctrl+A P – Passez à la fenêtre précédente
  • Ctrl+A 0-9 – Passez à la fenêtre numéro 0-9
  • Ctrl+A A – Renommez la fenêtre en cours
  • Ctrl+A \ – Divisez la région actuelle horizontalement
  • Ctrl+A | – Divisez la région actuelle verticalement

Configuration de Screen

Vous pouvez configurer les options de screen dans le fichier ~/.screenrc. Les paramètres utiles incluent :

# Activer le défilement de la souris   
$ termcapinfo xterm* ti@:te@ 
# Changer la touche d'échappement de Ctrl+A à Ctrl+B
$ escape ^Bb
# Changer l'emplacement du fichier journal d'écran
$ logfile ~/.screens/screenlog.%n

Consultez la page de manuel screen pour plus d’options de configuration.

Faire défiler dans Screen

Screen ne permet pas de faire défiler le contenu précédent comme un terminal normal.

Pour activer le défilement, vous devez utiliser une commande d’écran :

  • Ctrl+A [ – Entrez en mode défilement. Vous pouvez maintenant faire défiler votre historique de terminal avec les touches fléchées.
  • Ctrl+C – Quittez le mode défilement.

Vous pouvez également activer le tampon de défilement dans votre fichier ~/.screenrc :

$ defscrollback 30000

Cela stockera les 30 000 dernières lignes de sortie et vous permettra de les faire défiler.

Screen avec SSH

Vous pouvez attacher et rattacher une session screen via SSH.

Démarrez un écran sur le serveur distant, puis détachez-le normalement avec Ctrl+A D.

Déconnectez-vous de votre session SSH et reconnectez-vous plus tard. Rattachez votre session précédente en utilisant :

$ screen -r

Cela vous permet de continuer à exécuter des processus sur un serveur distant même lorsque vous êtes déconnecté du serveur.

Tmux vs Screen

Screen présente des similitudes avec tmux, un autre multiplexeur de terminaux. Principales différences :

  • Tmux a une base de code plus moderne et des fonctionnalités supplémentaires comme le fractionnement des volets
  • Screen est plus léger et plus simple, utilisant moins de mémoire/ressources
  • Les commandes Screen utilisent Ctrl+A, tmux utilisent Ctrl+B
  • Tmux est toujours activement maintenu, le développement de Screen a ralenti

En résumé, tmux peut donc être préférable pour les nouveaux utilisateurs qui veulent plus de fonctionnalités, mais screen reste un choix solide pour un multiplexage de terminaux léger.

Page de manuel Screen

La page de manuel screen contient une multitude d’informations utiles sur toutes les options de ligne de commande et les paramètres de configuration disponibles.

Vous pouvez y accéder en exécutant :

$ man screen

Quelques points forts de la page de manuel :

Options de ligne de commande

Voici quelques options de ligne de commande courantes lors du lancement de screen :

  • -S nom_session – Nommez la nouvelle session screen
  • -d -m – Démarrez screen en mode détaché
  • -r – Rattachez-vous à une session screen détachée
  • -ls – Liste les sessions screen actuellement en cours d’exécution
  • -wipe – Efface l’état interne de screen et supprime toutes les sessions

Fichier de configuration

Le fichier ~/.screenrc contrôle le comportement de screen :

# Définir le nom de fenêtre par défaut
$ screen -t shell
# Définir le fichier journal screen 
$ log on
$ logfile ~/screenlog.0
# Définir la taille du tampon de défilement  
$ defscrollback 30000

Commandes liées

Lier des commandes à des frappes de touches se fait comme :

# Lier Ctrl+A C à la création d'une nouvelle fenêtre
bind C create
# Lier Ctrl+A n pour passer à la fenêtre suivante 
bind n next 

Copier/Coller

Screen offre la prise en charge du copier/coller :

# Entrer en mode copie
$ Ctrl+A [
# Commencez à sélectionner le texte avec les flèches 
# Copiez le texte sélectionné
$ Ctrl+A ] 
# Coller le texte copié
$ Ctrl+A ]

Fenêtres

Gestion des fenêtres :

# Créer une nouvelle fenêtre
$ screen -t test
# Basculer entre les fenêtres
$ Ctrl+A n
# Tuer la fenêtre en cours 
$ quit

Cela couvre certains des usages screen les plus populaires directement à partir de la page de manuel. Reportez-vous à man screen pour plus de détails.

Conclusion

Screen est un utilitaire pratique pour exécuter des processus sur des serveurs distants comme des machines virtuelles cloud Ubuntu où vous voulez détacher et rattacher des sessions.

Les principales tâches couvertes :

  • Installation de screen sur Ubuntu
  • Démarrage et détachement des sessions screen
  • Rattachement aux sessions screen
  • Utilisation des commandes screen pour gérer les fenêtres
  • Configuration du tampon de défilement et des paramètres ~/.screenrc
  • Intégration de screen avec SSH

Screen reste pertinent aujourd’hui aux côtés d’outils plus récents comme tmux et vaut la peine d’être appris si vous gérez des serveurs Linux distants. Il fournit un moyen facile de maintenir les sessions actives même lorsque vous êtes déconnecté du serveur.

Laisser un commentaire