Utilisation de screen

Screen est une fenêtre plein écran qui multiplexe un gestionnaire de terminal physique entre plusieurs processus (typiquement interactive shells).

Chaque écran virtuel fournit les fonctions d’un DEC VT100, ainsi que plusieurs fonctions de contrôle de l’ISO 6429 (ECMA 48, ANSI X3.64) et les standards ISO 2022 (par exemple, insérer / supprimer des lignes de même que le support de multiples jeux de caractères).

Il possède un historique de tampon pour chaque terminal virtuel ainsi que la possibilité de copier-coller des zones de texte tout en ce déplaçant entre les fenêtres.
Enfin, c’est la solution imparable pour éviter de perdre son travail en cours ou de lancer une commande en fond sans rester connecter sur un serveur distant.

Pour le démarrer, faites la commande « screen » dans votre terminal.

  • screen -DR : liste des écrans détachés
  • screen -r PID : Rattacher l’écran PID précédemment détaché
  • screen -list :  Liste des sessions en cours avec leur statut
  • screen -dmS masession : démarrer une session dans un écran nommé ma session
  • screen -r masession : Rattacher l’écran ma session

Voici une liste non exhaustive des commandes de premières nécessités :

  • Ctrl + a + c : Créer un nouvel écran shell
  • Ctrl + a + A (a Majuscule) : Nommer l’écran courant
  • Ctrl + a +  » : Choisir un écran dans la liste des écrans
  • Ctrl + a + K (K Majuscule) : Tuer l’écran courant
  • Ctrl + a + w :  Lister tous les écrans (l’écran courant est marqué avec un « * »)
  • Ctrl + a + 0-9 :  Aller à un des écrans de 0 à 9
  • Ctrl + a + n :  Aller à l’écran suivant
  • Ctrl + a + Ctrl + a :  Permettre de naviguer rapidement entre l’écran courant et le précédent.
  • Ctrl + a + [ :  Passer en mode copie (déplacer le curseur à l’emplacement voulu, presser « Entrer » ou « Espace », puis sélectionner le texte à copier, presser « Entrer »  ou « Espace » de nouveau pour copier les textes dans le tampon mémoire)
  • Ctrl + a + ] :  Coller le texte précédemment copié, le tampon est disponible pour les collages multiples
  • c + C (Maj + c) : Configurer les marges gauche et droite d’un copié
  • Ctrl + g : S : Sortir du mode « copier »
  • Ctrl + a + ? :  Aide (affiche une liste de commandes)
  • Ctrl + a + Ctrl + \ :  Tuer touts les écrans et quitter screen
  • Ctrl + a + D (d Majuscule) :  Se détacher du screen, et se déloguer du terminal
  • Ctrl + a + d :  Se détacher du screen, tout en restant connecté

Pour déplacer le curseur, utiliser les touches h, j, k ou l (comme dans un jeu) . Le numéro 0 ou ^ place le curseur au début d’une ligne et le $ place le curseur à la fin d’une ligne.

Ctrl + b envoie le curseur à la page suivante, alors que Ctrl + f vous amène à la page précédente.

Il est possible de séparer votre écran en plusieurs affichages :

  • Ctrl + a + S :  Séparer un écran en 2 écrans (région)
    NB : Si vous créé un nouvel écran séparé, par défaut l’écran est vide, il vous faut soit sélectionner un écran déjà crée (Ctrl + a +  » ) soit en créer un nouveau (Ctrl + a + c)
  • Ctrl + a + TAB : Naviger entre plusieurs écrans séparés
  • Ctrl + a + Q : Tuer toutes les régions
  • Ctrl + a + X :  Supprimer la région active de la séparation d’écran
  • Ctrl + a + O :  logout active window (disable output)
  • Ctrl + a + I : login active window (enable output)

Pour lancer un programme ou exécuter une commande Unix dans une nouvelle fenêtre entrer :

# screen comandeouprograme

Remplacer « comandeouprograme » avec le nom de la commande ou du programme ainsi que les paramètres appropriès.
Pour lancer plusieurs écrans au démarrage de screen, créer un fichier .screenrc dans votre répertoire racine (~/.screenrc) et mettez-y les commandes screen.

Ex ~/.screenrc :
# Default screens
screen -t « Top Supersonique »     0  top
screen -t « Root Supersonique »   1
screen -t « Users Supersonique »    3
screen -t Dns2 4  ssh dns2.net

  • -t met un « titre » à votre screen
  • Ordre des screens
  • Commande a y lancer

Et bien sûr, il vous est toujours possible, pour en savoir plus, d’utiliser : # man screen

Plus d’info sur :

1 Сommenter
  • abdel

    20 avril 2014 à 17 h 35 min Répondre

    Salut !

    Un billet fort utile et bien fait (malgré la couleur grise sur fond blanc 😉

    Je tente pour le coup cette commande dans une fonction bash (qui me sert d’alias) et j’ai une foule de questions qui me vient !

    J’ai mis « screen -t “NomProgramme” ProgrammeAlancer » dans bashrc
    et cela fonctionne, mais comment faire pour :

    – Revenir au prompt initial, je souhaiterais juste lancer l’appli en tâche de fond sans être sur l’écran de cette appli ?
    – Comment récupérer le code de sortie pour vérifier de temps à autre, si le programme s’est terminé et avec quel code de sortie ?
    – Une fois cette vérification faite, comment fermer la fenêtre ? Toujours en ligne de commande bash avec la fonction qui l’a lancée bien évidemment.

    Merci pour vos lumières 😉

Répondre abdel Annuler la réponse

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Activer les notifications Super merci ! Non merci !
On which category would you like to receive?