GNU/Linux >> Tutoriels Linux >  >> Linux

15 Commandes d'écran Linux pour traiter les sessions de terminal

L'écran ou écran GNU est un multiplexeur de terminal. En utilisant cela, vous pouvez exécuter n'importe quel nombre d'applications basées sur la console, de shells de commande interactifs, d'applications basées sur des cours, etc. Vous pouvez utiliser screen pour continuer à exécuter le programme après avoir accidentellement fermé le terminal, ou même après vous être déconnecté et plus tard reprendre où que vous soyez.

Un exemple pratique est celui où vous exécutez une tâche sur une machine Linux distante dans laquelle vous avez une session ssh. Plusieurs fois, vous avez vu cette session ssh se terminer et vous ne pouvez plus travailler. Voici l'utilitaire d'écran pour aider à reprendre les sessions.

Comment fonctionne l'écran ?

Lorsque screen est appelé, il crée une fenêtre unique contenant un shell (ou la commande spécifiée) puis s'écarte de votre chemin afin que vous puissiez utiliser le programme comme vous le feriez normalement. Ensuite, à tout moment, vous pouvez créer de nouvelles fenêtres (plein écran) avec d'autres programmes (y compris plus de shells), fermer la fenêtre actuelle, afficher une liste des fenêtres actives, copier du texte entre les fenêtres, basculer entre les fenêtres, etc. .

Screen gère une session composé d'une ou plusieurs fenêtres contenant chacun un shell ou un autre programme. De plus, l'écran peut diviser l'affichage d'un terminal en plusieurs régions , chacun affichant le contenu d'une fenêtre. Toutes les fenêtres exécutent leurs programmes de manière totalement indépendante les unes des autres. Les programmes continuent de s'exécuter lorsque leur fenêtre n'est pas visible actuellement et même lorsque toute la session d'écran est détachée du terminal de l'utilisateur. Ceci est pratique pour éviter une session de temporisation ssh involontaire.

Voyons maintenant comment utiliser cet utilitaire sous Linux.

1) Appeler de nouvelles fenêtres

Si la commande screen n'est pas déjà présente sur votre système, vous pouvez l'installer avec la commande ci-dessous.

Sur Debian

# apt-get install screen

Sur Centos

# yum install screen

Vous pouvez démarrer screen simplement en tapant screen à l'invite de commande. Cette commande d'écran ouvrira une nouvelle fenêtre dans l'écran.

# screen

Vous pouvez démarrer une nouvelle fenêtre dans l'écran et donner également un nom à la fenêtre, par exemple en altitude. Il crée une session identifiée par ce nom. Le nom peut être utilisé pour se rattacher ultérieurement.

# screen -S aloft

Notez que vous pouvez effectuer tout votre travail comme si vous étiez dans l'environnement CLI normal.

2) Lister tous les processus d'écran

Comme nous sommes en mesure de démarrer de nouvelles fenêtres dans l'écran, il est possible d'afficher les écrans actuellement ouverts, y compris ceux qui s'exécutent en arrière-plan. Il listera toutes les sessions d'écran existantes.

# screen -ls
There is a screen on:
 10437.aloft (Attached)
1 Socket in /var/run/screen/S-root.

3) Commande principale de l'écran

Il est possible de fonctionner avec l'écran en utilisant certaines commandes. Nous allons lister ci-dessous les principales commandes les plus utiles.

  • Ctrl-a suivi de c :créer une nouvelle fenêtre
  • Ctrl-a suivi de w :affiche la liste de toutes les fenêtres actuellement ouvertes
  • Ctrl-a suivi de A :renommer les fenêtres en cours. Le nom apparaîtra lorsque vous listerez la liste des fenêtres ouvertes avec Ctrl-a suivi de w .
  • Ctrl-a suivi de n :passe aux fenêtres suivantes
  • Ctrl-a suivi de p :aller aux fenêtres précédentes
  • Ctrl-a suivi de Ctrl-a :retour aux dernières fenêtres utilisées.
  • Ctrl-a suivi d'un chiffre de 0 à X :aller sur la fenêtre n° X.
  • Ctrl-a suivi de " :choisissez les fenêtres dans lesquelles passer.
  • Ctrl-a suivi de k :fermer les fenêtres en cours (kill)
  • Ctrl-a suivi de S :divise les fenêtres courantes horizontalement. Pour basculer entre les fenêtres, faites Ctrl-a suivi de Tab .
  • Ctrl-a suivi de | :divise les fenêtres courantes verticalement
  • Ctrl-a suivi de d :détacher une session screen sans l'arrêter
  • Ctrl-a suivi de r  :rattachez une session d'écran détaché
  • Ctrl-a suivi de [ :lancer le mode copie
  • Ctrl-a suivi de ] :coller le texte copié

4) Afficher le paramètre d'écran

Vous pouvez lister tous les paramètres de l'écran pour obtenir de l'aide. Pour cela, tapez Ctrl-a suivi du caractère ? . Il affichera une liste de toutes les commandes.

5) Séance de détachement

Le meilleur avantage de la commande screen est la possibilité de détacher une session screen. Vous pouvez démarrer une session d'écran sur un ordinateur au bureau, détacher la session du terminal local, rentrer chez vous, vous connecter à distance à notre ordinateur de bureau et rattacher la session d'écran au terminal de notre ordinateur personnel. Pendant ce temps, tous les travaux sur votre ordinateur de bureau ont continué à s'exécuter. Cette fonction est utilisée pour éviter la perte de données qui se produit soudainement lors d'une connexion ssh interrompue.

Pour bien comprendre de quoi on parle, prenons un exemple. Nous lançons un processus d'installation.

Nous allons maintenant détacher l'écran avec Ctrl-a suivi de d . Nous pouvons vérifier avec la commande ci-dessous.

# screen -ls
There is a screen on:
 12449.win (Detached)
1 Socket in /var/run/screen/S-root.

Il est possible de détacher l'écran avec screen -d commande suivie de l'identifiant de l'écran ou de son nom. Cela signifie que vous devrez ouvrir une autre fenêtre ou console pour détacher la session si la console actuelle a un processus en cours. Vous devez d'abord lister l'écran actuellement attaché.

# screen -ls
There is a screen on:
 13686.win200 (Attached)
1 Socket in /var/run/screen/S-root.

Maintenant sur un nouveau terminal, entrez la commande ci-dessous.

# screen -d 13686

ou vous pouvez utiliser le nom

# screen -d win200

Vous aurez une sortie comme ci-dessous qui indique que l'écran a été détaché.

[remote detached from 13686.win200]

6) Rattacher une session

Après avoir détaché l'écran, il est possible de le rattacher avec la commande. Normalement, votre session d'écran fonctionne toujours, donc tous vos processus ne sont pas arrêtés. Avant de rattacher une session, vous devez lister la session comme ci-dessus, puis choisir la session à rattacher.

# screen -r 13686

ou vous pouvez utiliser

# screen -r win200

Vous pouvez voir qu'après avoir reconnecté la session, les fenêtres affichent la fin du processus qui est terminé. Cela signifie que vous pouvez travailler en ssh et détacher une session que vous rattacherez chez vous pour continuer votre processus de travail sans rien perdre.

7) Créer un nouveau shell interactif

Si vous avez des travaux à faire et que vous ne voulez pas perdre votre travail, il est possible de créer une nouvelle coque interactive. Vous pouvez facilement ouvrir des shells interactifs (numérotés de 0 à X) dans une fenêtre de terminal. Lorsque vous démarrez une nouvelle session, vous serez dans shell 0 .

Pour ce faire, vous devez créer de nouvelles fenêtres dans les fenêtres existantes avec Ctrl-a suivi de c . Vous aurez quelque chose comme ci-dessous.

Vous pouvez voir l'écran 3 en haut de la capture d'écran qui indique que nous sommes sur le troisième écran. En bas on peut aussi voir 3

8) Basculer entre les fenêtres d'écran

Lorsque vous avez ouvert plus d'une fenêtre d'écran, pour basculer entre chaque fenêtre, appuyez sur Control-a suivi de space ou le numéro de la coquille. Par exemple, pour passer au shell numéro 1, appuyez sur Control-a puis 1 . Par exemple, nous allons nous déplacer sur le premier écran.

Le haut et le bas de la capture d'écran montrent que nous sommes sur le premier écran.

9) Fractionner les fenêtres

Pour avoir une vue globale de votre travail, vous devrez peut-être diviser vos fenêtres au lieu d'avoir plusieurs fenêtres. Ctrl-a suivi de S ou | divisez votre écran horizontalement ou verticalement. Il est possible de répéter l'opération sans limite. Pour déplacer une autre fenêtre, utilisez Ctrl-a suivi de Tab .

Lorsque le curseur est sur les fenêtres du bas, vous pouvez créer une nouvelle fenêtre (Ctrl-a suivi de c ) ou appeler une fenêtre existante (Ctrl-a suivi d'un chiffre).

Pour fermer une fenêtre fractionnée, utilisez Ctrl-a suivi de X (Notez qu'il s'agit du caractère majuscule).

10) Reconnectez-vous à une session ssh déconnectée

Lors de votre première connexion,

  • run screen pour démarrer une session screen. Vous obtenez un autre shell, exécutez des commandes dans celui-ci.
# screen -S remote_session
  • Lorsque vous avez terminé, détachez la session screen puis déconnectez-vous en ssh
[detached from 20995.remote_session]
  • Vous pouvez d'abord lister toutes les sessions d'écran
# screen -ls
There are screens on:
 20995.remote_session (Detached)
 14331.daby (Attached)
 14134.mom (Detached)
3 Sockets in /var/run/screen/S-root.
  • Reconnectez-vous à votre session d'écran et continuez votre travail
# screen -d -r remote_ression

La commande screen est la plus utilisée pour les sessions ssh car elle permet de continuer votre travail après une déconnexion sans perdre les processus en cours.

11) Faites défiler vers le haut dans les fenêtres d'écran

Étant donné que screen prend en charge la gestion de vos programmes distants, vous ne pouvez pas utiliser les fonctions de défilement de votre émulateur de terminal pendant l'exécution de screen. Vous devez utiliser les commandes Screen pour accéder au tampon de défilement.

  • Utilisez Ctrl-a suivi de escape
  • Appuyez sur Up et Down touches fléchées ou PgUp et PgDn touches pour faire défiler la sortie précédente.

Vous pouvez voir où est mon curseur sur la capture d'écran. Chaque terminal virtuel a son propre tampon de défilement.

12) Voir le propriétaire de chaque session d'écran

L'screen -ls ou screen -list Les commandes ne vous montrent que vos propres sessions d'écran, même pour root. Autant que je sache, c'est aussi bon que possible pour l'écran lui-même.

Si vous voulez voir quelles sessions d'écran ont été démarrées par quels utilisateurs regardent dans chaque répertoire d'utilisateurs dans /var/run/screen/ .

# ls -lR /var/run/screen
/var/run/screen:
total 0
drwx------ 2 patrick patrick 60 Jun 17 20:47 S-patrick
drwx------ 2 root root 100 Jun 17 19:39 S-root

/var/run/screen/S-patrick:
total 0
srwx------ 1 patrick patrick 0 Jun 17 20:47 21941.pat_session

/var/run/screen/S-root:
total 0
srw------- 1 root root 0 Jun 9 16:45 14134.mom
srwx------ 1 root root 0 Jun 9 01:07 14331.daby
srwx------ 1 root root 0 Jun 17 20:46 20995.remote_session

13) Partager une session d'écran avec un seul compte

Vous pouvez avoir deux personnes connectées au même compte à partir d'emplacements distants. Ils peuvent facilement partager une session d'écran (donc ce que l'un tape, l'autre le voit et vice versa). Pour ce faire :

  • Créer une session d'écran nommée :
# screen -d -m -S share_session
  • Joindre à la session d'écran dans la fenêtre de votre terminal
# screen -x share_session
  • Demandez à l'autre personne (connectée au même compte) de se joindre également à la session d'écran
# screen -x share_session

vous aurez exactement la même sortie affichée sur l'autre emplacement. Tout ce qui apparaîtra sur votre terminal apparaîtra également sur le terminal de l'autre utilisateur.

14) Verrouiller la session d'écran

Il est possible de verrouiller la session d'écran sans verrouiller l'utilisateur de la session normale. Cela signifie que vous pouvez laisser votre ordinateur et être sûr que personne ne viendra aux opérations non autorisées. Pour cela, utilisez la commande Ctrl-a  suivi de x (Notez qu'il s'agit du caractère minuscule).

Screen used by root <root> on centos-01.
Password:

15) Terminer la session d'écran

Lorsque vous avez terminé et que vous souhaitez quitter la session screen, vous pouvez utiliser la commande Ctrl-a suivi de k . Vous serez invité à confirmer.

Vous pouvez également utiliser la commande exit. Si vous souhaitez enregistrer votre processus en cours, vous pouvez simplement détacher votre session d'écran avant de mettre fin à la session.

Conclusion

L'utilitaire d'écran peut surveiller une fenêtre pour l'activité ou l'inactivité. C'est très bien si vous téléchargez des fichiers volumineux, compilez ou attendez une sortie. À ce moment-là, si nécessaire, vous pouvez même démarrer un processus à partir d'un ordinateur à l'aide de la commande screen et le détacher lorsque vous avez terminé.


Linux
  1. Un guide du terminal Linux pour les débutants

  2. Conseils Linux pour l'utilisation de GNU Screen

  3. Tutoriel de commande Linux tty pour les débutants (avec exemples)

  4. Partage de sessions de terminal Linux avec Tmux et Screen

  5. Comment utiliser la commande d'écran Linux

Top 20 des commandes de terminal Linux à essayer pour un débutant

Exemples de commandes d'écran pour gérer plusieurs sessions de terminal

Installer le sous-système Windows pour Linux avec une seule commande

Commande d'écran sur Linux expliquée

Commande d'historique sous Linux - Afficher l'historique du terminal Linux

Exemples de commandes d'écran :prendre le contrôle du terminal Linux/Unix