GNU/Linux >> Tutoriels Linux >  >> Linux

Conseils d'utilisation de l'écran

Que se passe-t-il lorsque vous êtes connecté à un système distant à l'aide d'un programme de longue durée, puis que la connexion est interrompue ? Les chances sont, au minimum, que vous deviez redémarrer le programme, et dans le pire des cas, vous aurez des données corrompues. Pour contourner ce problème, certains programmes s'exécutent dans un shell de fenêtre sur le système. Un exemple très basique de ceci est l'screen programme :

[pgervase@pgervase ~]$ ssh [email protected]
X11 forwarding request failed on channel 0
Last login: Wed Jan 27 12:10:06 2021 from xxxxxxxx.redhat.com

[root@rhel7dev ~]# screen

Cela ouvre mon nouveau shell sur le rhel7dev système. Je vais exécuter le ping commande ci-dessous depuis l'intérieur de cette session :

[root@rhel7dev ~]# ping www.google.com
PING www.google.com (74.125.24.147) 56(84) bytes of data.
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=1 ttl=100 time=242 ms
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=2 ttl=100 time=242 ms
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=3 ttl=100 time=242 ms

Je vais maintenant montrer comment se détacher de la session pour simuler une panne de réseau ou simplement laisser quelque chose fonctionner pendant la nuit. Pour ce faire, j'appuie sur Ctrl , maintenez cette touche enfoncée, puis appuyez sur A , puis appuyez sur D . Cela me ramène à l'invite SSH par défaut et je peux alors exécuter screen -ls pour voir ma session détachée :

[root@rhel7dev ~]# screen -x
[detached from 25665.pts-0.rhel7dev]
[root@rhel7dev ~]# screen -ls
There is a screen on:
    25665.pts-0.rhel7dev    (Detached)
1 Socket in /var/run/screen/S-root.

[root@rhel7dev ~]#

[ Vous pourriez également apprécier : Travailler avec des canaux sur la ligne de commande Linux ]

Pour reprendre ma session screen, je tape screen -x car il n'y avait qu'une seule séance en option. Cela m'a ramené à la session d'écran où le ping la commande est toujours en cours d'exécution :

[root@rhel7dev ~]# ping www.google.com
PING www.google.com (74.125.24.147) 56(84) bytes of data.
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=1 ttl=100 time=242 ms
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=2 ttl=100 time=242 ms
<snipped>
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=19 ttl=100 time=242 ms
64 bytes from 74.125.24.147 (74.125.24.147): icmp_seq=20 ttl=100 time=242 ms
^C
--- www.google.com ping statistics ---
20 packets transmitted, 20 received, 0% packet loss, time 20278ms
rtt min/avg/max/mdev = 242.105/242.197/242.727/0.576 ms
[root@rhel7dev ~]#

Je peux avoir plusieurs sessions d'écran à la fois :

[root@rhel7dev ~]# screen -ls
There is a screen on:
    25665.pts-0.rhel7dev    (Detached)
1 Socket in /var/run/screen/S-root.

[root@rhel7dev ~]# screen
[detached from 25693.pts-0.rhel7dev]
[root@rhel7dev ~]# screen -ls
There are screens on:
    25693.pts-0.rhel7dev    (Detached)
    25665.pts-0.rhel7dev    (Detached)
2 Sockets in /var/run/screen/S-root.

[root@rhel7dev ~]# screen
[detached from 25706.pts-0.rhel7dev]
[root@rhel7dev ~]# screen -ls
There are screens on:
    25706.pts-0.rhel7dev    (Detached)
    25693.pts-0.rhel7dev    (Detached)
    25665.pts-0.rhel7dev    (Detached)
3 Sockets in /var/run/screen/S-root.

[root@rhel7dev ~]#

Dans chacune de ces trois sessions d'écran, je peux exécuter des commandes ou simplement quitter une session à l'invite.

Un screen -x par défaut ne fonctionnera pas pour reprendre une session maintenant en raison des multiples écrans en cours d'exécution :

[root@rhel7dev ~]# screen -x
There are several suitable screens on:
    25706.pts-0.rhel7dev    (Detached)
    25693.pts-0.rhel7dev    (Detached)
    25665.pts-0.rhel7dev    (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.

[root@rhel7dev ~]#

Pour joindre à l'une de mes sessions, je dois exécuter screen -x et ajoutez suffisamment de nom d'écran pour qu'il soit unique :

[root@rhel7dev ~]# screen -x 257
[detached from 25706.pts-0.rhel7dev]

[root@rhel7dev ~]#

Plutôt que d'essayer de vous limiter à une seule session ou de vous souvenir de ce qui s'exécute sur quel écran, vous pouvez définir un nom pour la session en utilisant le -S argument :

[root@rhel7dev ~]# screen -S "db upgrade"
[detached from 25778.db upgrade]

[root@rhel7dev ~]# screen -ls
There are screens on:
    25778.db upgrade    (Detached)
    25706.pts-0.rhel7dev    (Detached)
    25693.pts-0.rhel7dev    (Detached)
    25665.pts-0.rhel7dev    (Detached)
4 Sockets in /var/run/screen/S-root.

[root@rhel7dev ~]# screen -x "db upgrade"
[detached from 25778.db upgrade]

[root@rhel7dev ~]#

Pour quitter une session d'écran, vous pouvez taper exit ou appuyez sur Ctrl+A puis D .

Maintenant que vous savez comment démarrer, arrêter et étiqueter l'screen sessions allons un peu plus en profondeur. Pour diviser votre session d'écran en deux verticalement, appuyez sur Ctrl+A puis le | touche (Maj+Barre oblique inverse ). À ce stade, vous aurez votre session d'écran avec l'invite à gauche :

Pour basculer vers votre écran de droite, appuyez sur Ctrl+A puis l'onglet clé. Votre curseur est maintenant dans la bonne session, mais il n'y a pas d'invite. Pour obtenir une invite, appuyez sur Ctrl+A puis C . Je peux le faire plusieurs fois pour obtenir plusieurs fractionnements verticaux à l'écran :

Vous pouvez maintenant basculer entre les deux volets de l'écran en utilisant Ctrl+A+Tab .

Que se passe-t-il lorsque vous cat sortir un fichier plus volumineux que votre console ne peut afficher et donc certains contenus défilent ? Pour revenir en arrière dans le tampon, appuyez sur Ctrl+A puis Échap . Vous pourrez maintenant utiliser les touches du curseur pour vous déplacer sur l'écran et revenir dans le tampon.

Il existe d'autres options pour screen , donc pour les voir, appuyez sur Ctrl , puis A , puis le point d'interrogation :

[ Cours en ligne gratuit :Présentation technique de Red Hat Enterprise Linux. ] 

Des lectures supplémentaires peuvent être trouvées dans la page de manuel pour screen . Cet article est une introduction rapide à l'utilisation de l'screen afin qu'une session distante déconnectée ne finisse pas par tuer accidentellement un processus. Un autre programme similaire à screen est tmux et vous pouvez lire sur tmux dans cet article.


Linux
  1. 3 conseils pour imprimer avec Linux

  2. Conseils Linux pour l'utilisation de GNU Screen

  3. 8 conseils pour la ligne de commande Linux

  4. Utilisation d'AppImage pour la gestion des packages Linux

  5. 5 conseils pour le débogueur GNU

Conseils pour utiliser la commande top sous Linux

Conseils/astuces Meld utiles pour les utilisateurs intermédiaires

8 conseils pour une automatisation fiable du système Linux

Conseils d'utilisation de tmux

Conseils essentiels pour installer et utiliser Sublime Text sur Ubuntu

Est-ce que j'utilise virtio pour mon invité KVM ?