Cookie

Der Befehl “Bildschirm” um mehrere Shell-Sitzungen zu emulieren

Veröffentlicht von TheJoe am

Geschätzte Lesezeit: 4 Minuten

Vorsicht


Dieser Artikel wurde mehr als vor einem Jahr veröffentlicht, Es gab Entwicklungen können.
Bitte berücksichtigen Sie dies.

Heute sehen wir, wie man es benutzt screen.

Ich musste kürzlich Befehle ausführen, die eine sehr lange Dauer auf einem Remote-Server erwarteten. In meinem neusten Artikel, zB, Ich habe beschrieben, wie man Daten zwischen einem älteren NAS und einem modernen NAS per FTP überträgt. In diesem Fall habe ich verwendet wget mit dem Thema -b Ich habe den Prozess in den Hintergrund gestellt, damit ich die SSH-Sitzung trennen und den Prozess bis zum Ende fortsetzen konnte.

Um auch einen sehr langen Prozess in den Hintergrund zu stellen, fügen Sie einfach einen hinzu & am Ende des Befehls. Leider bin ich sehr nachlässig und erwarte oft, dass der Befehl in kurzer Zeit eine Ausgabe zurückgibt, Während mir in Wirklichkeit klar wird, dass ich meine Zeit gespart hätte, wenn ich das verfluchte Zeichen am Ende des Befehls eingefügt hätte. Ein Beispiel?

~# updatedb &

Stattdessen möchten wir über die Zeiten sprechen, in denen wir denselben Befehlstyp ausgeführt haben, Doch dann zerbrach die Verbindung aus den unterschiedlichsten Gründen? Wer hat das nicht??

Zum Glück existiert es screen das dies und noch viel mehr tut… und jetzt werden wir sehen.

Screen ist in der Lage, unendlich viele virtuelle Terminalfenster in einer einzigen Sitzung zu verwalten. Das bedeutet, dass wir, wenn wir mehrere Befehle auf einem Remote-Computer ausführen müssen, nicht für jeden ausgeführten Befehl eine SSH-Verbindung öffnen müssen. In einer Sitzung haben wir unendlich viele Möglichkeiten “Fenster” virtuelle und endlose Sitzungen.

Bildschirmprozesse bleiben auch dann aktiv, wenn wir die Hauptsitzung schließen, es sei denn, wir beenden sie freiwillig. Dies bedeutet, dass im Falle einer versehentlichen Verbindungsunterbrechung der Vorgang bis zum Ende fortgesetzt wird und wir problemlos die Verbindung zur abgebrochenen Sitzung wiederherstellen können.

Die Installation

Screen ist auf allen wichtigen Distributionen vorinstalliert. Überprüfen Sie, ob es in Ihren Paketen enthalten ist.

~# screen --version
Screen version 4.08.00 (GNU) 05-Feb-20

Für Architekturen basierend auf apt:

~# apt install screen

Für Architekturen basierend auf rpm:

~# yum install screen

Startbildschirm

Um eine Bildschirmsitzung zu starten, geben Sie einfach screen in eine Konsole ein.

~$ screen

Dieser Befehl erstellt eine Bildschirmsitzung, erstellt innerhalb der Sitzung ein neues virtuelles Fenster und startet eine Shell in diesem Fenster.

Nachdem wir die Sitzung gestartet haben, können wir durch Eingabe eine Liste mit Befehlen finden: Ctrl + a ?.

Ed ecco l'Ausgang:

                           Command key:  ^A   Literal ^A:  a

    break       ^B b           license     ,              removebuf   =         
    clear       C              lockscreen  ^X x           reset       Z         
    colon       :              log         H              screen      ^C c      
    copy        ^[ [           login       L              select      '         
    detach      ^D d           meta        a              silence     _         
    digraph     ^V             monitor     M              split       S         
    displays    *              next        ^@ ^N sp n     suspend     ^Z z      
    dumptermcap .              number      N              time        ^T t      
    fit         F              only        Q              title       A         
    flow        ^F f           other       ^A             vbell       ^G        
    focus       ^I             pow_break   B              version     v         
    hardcopy    h              pow_detach  D              width       W         
    help        ?              prev        ^H ^P p ^?     windows     ^W w      
    history     { }            quit        \              wrap        ^R r      
    info        i              readbuf     <              writebuf    >         
    kill        K k            redisplay   ^L l           xoff        ^S s      
    lastmsg     ^M m           remove      X              xon         ^Q q      

^]   paste .
"    windowlist -b
-    select -
0    select 0
1    select 1
2    select 2
3    select 3
4    select 4
5    select 5
6    select 6
7    select 7
8    select 8
9    select 9
I    login on
O    login off
]    paste .
|    split -v
:kB: focus prev

Geben Sie einer Sitzung einen Namen

Eine umbenannte Sitzung ist praktisch, wenn wir sie abrufen müssen. Zum Beispiel durch Umbenennen einer Sitzung “wget_debian” Anhand der Liste der aktiven Sitzungen erkennen wir auf einen Blick, dass wir in dieser Sitzung den Debian-ISO-Download gestartet haben.

~$ screen -S wget_debian

Machen Sie sich mit den Bildschirmfenstern vertraut

Wenn Sie eine Sitzung starten, erstellt screen ein virtuelles Fenster mit einer enthaltenen Shell.

Schau hier:  Schale: Laden Sie eine Website mit wget

Bildschirmfenster sind nicht mit Sitzungen zu verwechseln. Ein Fenster (alle gewünschten Fenster) ist in einer Sitzung enthalten, von dem Sie die Verbindung trennen können, ohne dass dadurch die enthaltenen Prozesse beendet werden.

Sie können mehrere Fenster in einer Bildschirmsitzung haben.

So erstellen Sie einen neuen virtuellen Fenstertyp Ctrl+a c und die erste Zahl von 0 a 9 wird zugewiesen.

Hier sind einige der gebräuchlichsten Befehle zum Verwalten von Bildschirmfenstern:

  • Ctrl + a c Erstellen Sie ein neues Fenster
  • Ctrl + a " Zeigt eine Liste von Fenstern an
  • Ctrl + a 0 (Null) Wechseln Sie zum Fenster “0” (Ersatz “0” mit der Nummer des gewünschten Fensters
  • Ctrl + a A Benennen Sie das aktuelle Fenster um
  • Ctrl + a S Teilt den Teil des Bildschirms horizontal
  • Ctrl + a | Teilt den Teil des Bildschirms vertikal
  • Ctrl + a tab Fokus auf nächste Region verschieben
  • Ctrl + a Ctrl + a Wechseln Sie vom vorherigen Fenster zum nächsten
  • Ctrl + a Q Schließen Sie alle Regionen
  • Ctrl + a X Schließen Sie die aktuelle Region

Ziehen Sie den Stecker heraus (ablösen) Ihr Terminal aus der aktuellen Sitzung

Ein Plus, wie gesagt, besteht darin, weiterarbeiten zu können, indem man die Bildschirmsitzungen im Hintergrund laufen lässt, während der Benutzer an etwas anderem arbeiten kann.

Ctrl + a d

Wieder verbinden (fortsetzen) Ihr Terminal zu einer Sitzung

Um die Verbindung mit einer abgebrochenen Sitzung wiederherzustellen:

~$ screen -r

Wenn auf einem einzelnen Computer mehrere Sitzungen vorhanden sind, müssen Sie nach dem Argument auch die Sitzungs-ID hinzufügen -r.

Um die ID der Sitzung zu ermitteln, zu der die Verbindung wiederhergestellt werden soll, verwenden Sie den folgenden Befehl:

~$ screen -ls
There are screens on:
13871.pts-3.joe-toshiba (29/11/2022 11:59:39) (Detached)
13836.pts-3.joe-toshiba (29/11/2022 11:59:20) (Detached)
13811.pts-3.joe-toshiba (29/11/2022 11:58:49) (Detached)
3 Sockets in /run/screen/S-joe.

Wenn wir zur Sitzung zurückkehren wollen 13836.pts-3 Wir geben den Befehl ein:

~$ screen -r 13836

Schlussfolgerungen

Heute haben wir gelernt, wie man mit screen mehrere Fenster in einer einzigen Sitzung erstellt, Sie können zwischen den Fenstern navigieren und die verschiedenen Sitzungen trennen und wieder verbinden… aber da ist viel mehr zu lernen su-Bildschirm.


TheJoe

Ich halte diesen Blog als ein Hobby von 2009. Ich bin begeistert von Grafik, Technologie, Open Source Software. Unter meinen Artikel wird nicht schwierig sein, über die Musik finden, und einige persönliche Reflexionen, aber ich bevorzuge die direkte Linie des Blogs vor allem auf Technologie. Weitere Informationen Kontaktieren Sie mich.

0 Kommentare

Hinterlasse eine Antwort

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.