So verwenden Sie den Bildschirmbefehl von Linux

Mit dem Linux-Befehl screen können Sie laufende Terminalanwendungen in den Hintergrund schieben und nach vorne ziehen, wenn Sie sie sehen möchten. Es unterstützt auch Split-Screen-Displays und funktioniert über SSH-Verbindungen, selbst nachdem Sie die Verbindung getrennt und erneut verbunden haben!

Was ist der Bildschirmbefehl?

Der Bildschirmbefehl ist a Terminal-Multiplexer, und es ist absolut vollgepackt mit Optionen. Zu sagen, dass es viel kann, ist der Urvater der Untertreibung. Die Manpage läuft auf über 4.100 Linien.

Im Folgenden sind die häufigsten Fälle aufgeführt, in denen Sie den Bildschirmbefehl verwenden würden, und wir werden diese in diesem Artikel weiter behandeln:

Die Standardoperation besteht darin, ein neues Fenster mit einer darin enthaltenen Shell zu erstellen, einen Befehl auszuführen und das Fenster dann in den Hintergrund zu verschieben (sogenanntes „Abtrennen“). Wenn Sie sehen möchten, wie sich Ihr Prozess entwickelt, können Sie das Fenster wieder in den Vordergrund ziehen („reattach“) und erneut verwenden. Dies ist ideal für lange Prozesse, die Sie nicht versehentlich durch Schließen des Terminalfensters beenden möchten.
Sobald Sie eine Bildschirmsitzung ausgeführt haben, können Sie neue Fenster erstellen und andere Prozesse darin ausführen. Sie können einfach zwischen den Fenstern wechseln, um deren Fortschritt zu überwachen. Sie können Ihr Terminalfenster auch in vertikale oder horizontale Bereiche aufteilen und Ihre verschiedenen Bildschirmfenster in einem Fenster anzeigen.
Sie können eine Verbindung zu einem Remote-Computer herstellen, eine Bildschirmsitzung starten und einen Prozess starten. Sie können die Verbindung zum Remote-Host trennen, die Verbindung erneut herstellen, und Ihr Prozess wird weiterhin ausgeführt.
Sie können eine Bildschirmsitzung zwischen zwei verschiedenen SSH-Verbindungen teilen, sodass zwei Personen in Echtzeit dasselbe sehen können.

Bildschirm installieren

Um screen auf Ubuntu zu installieren, verwenden Sie diesen Befehl:

sudo apt-get install screen

Um screen auf Manjaro zu installieren, verwenden Sie den folgenden Befehl:

sudo pacman -Sy screen

Der

Auf Fedora geben Sie Folgendes ein:

sudo dnf install screen

Der

Erste Schritte mit Bildschirm

Um den Bildschirm zu starten, geben Sie ihn einfach wie unten gezeigt ein und drücken Sie die Eingabetaste:

screen

Der

Sie sehen eine Seite mit Lizenzinformationen. Sie können die Leertaste drücken, um die zweite Seite zu lesen, oder die Eingabetaste drücken, um zur Eingabeaufforderung zurückzukehren.

Der

Sie bleiben an der Eingabeaufforderung und es scheint nicht viel passiert zu sein. Sie führen jetzt jedoch eine Shell in einem Multiplex-Terminalemulator aus. Warum ist das gut? Nun, lassen Sie uns einen Prozess starten, der lange dauern wird. Wir laden den Quellcode für den neuesten Linux-Kernel herunter und leiten ihn in eine Datei namens Latest_kernel.zip um.

Dazu geben wir Folgendes ein:

curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip

Der Latest_kernel.zip“-Befehl in einem Terminalfenster.‘ width=“646″ height=“77″ onload=“pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);“ onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

Unser Download beginnt und die curl-Ausgabe zeigt uns den Fortschritt.

Die Ausgabe von der Latest_kernel.zip“-Befehl in einem Terminalfenster.‘ width=“646″ height=“247″ onload=“pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);“ onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

Wir können Ihnen kein Bild des nächsten Bits zeigen, da es sich um eine Tastenfolge handelt. Sie geben Strg+A ein, lassen diese Tasten los und drücken dann d, um den Bildschirm zu trennen.

Der Download-Prozess läuft noch, aber das Fenster mit dem Download wird entfernt. Sie kehren zum Terminalfenster zurück, von dem aus Sie die Bildschirmsitzung gestartet haben. Eine Meldung teilt Ihnen mit, dass ein Bildschirmfenster mit der Bezeichnung 23167.pts-0.wdzwdz abgetrennt wurde.

Sie benötigen die Nummer vom Anfang des Fensternamens, um es wieder anzuhängen. Wenn Sie es vergessen, können Sie jederzeit die Option -ls (Liste) verwenden, wie unten gezeigt, um eine Liste der abgetrennten Fenster zu erhalten:

screen -ls

Der

Wenn Sie fertig sind, können Sie die Option -r (reattach) und die Nummer der Sitzung verwenden, um sie wie folgt erneut anzuhängen:

screen -r 23167

Der

Das Fenster, das im Hintergrund abgearbeitet hat, wird jetzt in Ihr Terminalfenster zurückgebracht, als wäre es nie verlassen worden.

Wenn es sich um einen Prozess handelt, der zu Ende geführt wird, wird er schließlich abgeschlossen sein. Wenn es sich um einen kontinuierlichen Prozess handelt, möchten Sie ihn eventuell beenden. In beiden Fällen können Sie am Ende des Prozesses exit eingeben, um den Bildschirm zu verlassen. Alternativ können Sie Strg+A und dann K drücken, um ein Fenster zwangsweise zu schließen.

Geben Sie den folgenden Befehl ein:

exit

Der

Sie kehren zu Ihrem vorherigen Terminalfenster zurück, in dem weiterhin der Befehl angezeigt wird, mit dem Sie das Fenster erneut angehängt haben. Da wir unser einziges abgetrenntes Fenster geschlossen haben, erhalten wir die Meldung, dass der Bildschirm beendet wird.

Der

Benannte Bildschirmsitzungen verwenden

Sie können die Option -S (Sitzungsname) verwenden, um Ihre Bildschirmsitzung zu benennen. Wenn Sie einen einprägsamen Namen anstelle der numerischen Identität der Sitzung verwenden, ist es bequemer, sich erneut mit einer Sitzung zu verbinden. Wir geben Folgendes ein, um unsere Sitzung „bigfile“ zu nennen:

screen -S bigfile

Der

Wenn der Bildschirm unsere Sitzung startet, sehen wir ein leeres Fenster mit einer Eingabeaufforderung. Wir werden eine große Datei herunterladen, damit wir einen lang andauernden Prozess als Beispiel verwenden können.

Wir geben folgendes ein:

curl https://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip

Der bigfile.zip“-Befehl in einem Terminalfenster.‘ width=“646″ height=“77″ onload=“pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);“ onerror=”this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);”>

Wenn der Download beginnt, drücken wir Strg+A und dann D, um die Sitzung zu trennen. Wir geben Folgendes ein, um die Option -ls (Liste) mit screen zu verwenden, um die Details unserer getrennten Sitzung anzuzeigen:

screen -ls

Der

Hinter der numerischen Kennung (23266) sehen wir den Namen unserer Session (bigfile). Wir geben Folgendes ein, einschließlich des Sitzungsnamens, um ihn erneut anzuhängen:

screen -r bigfile

Der

Wir sind wieder mit unserem Download-Fenster verbunden und sehen, dass der lange Download noch im Gange ist.

Wenn der Download abgeschlossen ist, geben wir exit ein, um das Sitzungsfenster zu schließen.

Bildschirm mit mehreren Fenstern verwenden

Bisher haben wir screen verwendet, um einen einzelnen Prozess im Hintergrund in einem abgetrennten Fenster zu platzieren. Der Bildschirm kann jedoch noch viel mehr. Als Nächstes führen wir einige Prozesse aus, die es uns ermöglichen, einige Aspekte unseres Computers zu überwachen.

Wir geben Folgendes ein, um eine Bildschirmsitzung namens „Monitor“ zu starten:

screen -S monitor

Der

An der Eingabeaufforderung in unserer neuen Fenstersitzung starten wir dmesg und verwenden die Optionen -H (für Menschen lesbar) und -w (auf neue Nachrichten warten). Dieser Wille die Kernel-Puffer-Meldungen anzeigen; neue Nachrichten werden angezeigt, sobald sie auftreten.

Wir geben folgendes ein:

dmesg -H -w

Der

Die vorhandenen Nachrichten werden angezeigt. Wir kehren nicht zur Eingabeaufforderung zurück, da dmseg auf neue Nachrichten wartet und diese beim Eintreffen anzeigt.

Der

Wir möchten eine andere Anwendung ausführen, daher benötigen wir ein neues Bildschirmfenster. Wir drücken Strg+A und dann C, um ein neues Fenster zu erstellen. Wir werden die Uhr verwenden, um wiederholt laufen vmstat, also bekommen wir eine häufig aktualisierte Anzeige des virtuellen Speicherverbrauchs auf unserem Computer.

An der neuen Eingabeaufforderung geben wir Folgendes ein:

watch vmstat

Der

Die vmstat-Ausgabe wird alle zwei Sekunden angezeigt und aktualisiert.

Der

Unsere beiden Prozesse laufen jetzt. Um zwischen den Bildschirmfenstern zu wechseln, drücken Sie Strg+A und die Nummer des Fensters. Das erste, das wir erstellt haben, ist Fenster Null (0), das nächste ist Fenster 1 und so weiter. Um zum ersten Fenster (dem dmesg-Fenster) zu springen, drücken wir Strg+A und 0.

Zurück zum

Wenn wir Strg+A und 1 drücken, gelangen wir zurück zum vmstat-Fenster.

Zurück zum

Das ist ziemlich schick! Wir können Strg+A und dann D drücken, um diese Sitzung zu beenden; können wir später wieder anbringen. Beide Sitzungen laufen weiterhin. Um zwischen den Fenstern zu wechseln, drücken wir erneut Strg+A und die Nummer (0 oder 1) des Fensters, zu dem wir wechseln möchten.

Gehen wir zum nächsten Schritt und zeigen Sie beide Bildschirme in einem Fenster an. Wenn Sie dies tun, dehnen Sie Ihr Terminalfenster auf eine Größe aus, die diesen Schritt nützlich macht. Unsere Beispiele sind auf die Größe unserer Screenshots beschränkt, sodass unsere Fenster etwas beengt aussehen.

Dazu drücken wir Strg+A und dann Umschalt+S (ein großes „S“ ist erforderlich).

Das Fenster teilt sich in zwei „Regionen“.

EIN

Die obere Region zeigt weiterhin vmstat an und die untere Region ist leer. Der Cursor ist im Screenshot unten hervorgehoben. Um es in den unteren Bereich zu verschieben, drücken wir Strg+A und dann Tab.

EIN

Der Cursor bewegt sich in den unteren Bereich, der eigentlich nur eine leere Stelle ist. Es ist keine Shell, also können wir nichts eingeben. Um eine nützliche Anzeige zu erhalten, drücken wir Strg+A und dann „0“, um das dmesg-Fenster in diesem Bereich anzuzeigen.

Der

Dies gibt uns beide Live-Ausgaben in einem geteilten Fenster. Wenn wir Strg+A und D drücken, um das Fenster zu trennen, und es dann wieder anhängen, verlieren wir die geteilte Ansicht. Wir können es jedoch mit den folgenden Tastenkombinationen wiederherstellen:

Strg+A, S: Fenster horizontal teilen.
Strg+A, Tab: In den unteren Bereich wechseln.
Strg+A, 0: Fenster Null im unteren Bereich anzeigen.

Wir können noch einen Schritt weiter gehen. Wir teilen nun den unteren Bereich vertikal auf und fügen der Anzeige einen dritten Prozess hinzu. Mit dem Cursor im unteren Bereich drücken wir Strg+A und C, um ein neues Fenster mit einer Shell darin zu erstellen. Der untere Bereich zeigt das neue Fenster an und gibt uns eine Eingabeaufforderung.

EIN

Als nächstes führen wir den df-Befehl aus, um Dateisystemnutzung prüfen:

df

EIN

Wenn wir df laufen sehen, drücken wir Strg+A und das Pipe-Zeichen (|). Dadurch wird der untere Bereich vertikal geteilt. Wir drücken Strg+A und Tab, um in die neue Region zu wechseln. Als nächstes drücken wir Strg+A und 0, um das dmesg-Fenster anzuzeigen.

EIN

Sie können auch von Region zu Region wechseln und weitere vertikale oder horizontale Teilungen hinzufügen. Hier sind einige weitere nützliche Tastenkombinationen:

Strg+A: Springen Sie zwischen der aktuellen und der vorherigen Region hin und her.
Strg+A, Q: Schließt alle Regionen außer der aktuellen.
Strg+A, X: Schließt die aktuelle Region.

Bildschirm über SSH verwenden

Mit screen können Sie eine Fenstersitzung starten, sie trennen, sodass sie noch im Hintergrund läuft, sich ab- oder wieder anmelden und die Sitzung erneut anhängen.

Lass uns ein SSH machen Verbindung zu unserem Computer von einem anderen mit dem ssh-Befehl. Wir müssen den Namen des Kontos angeben, mit dem wir eine Verbindung herstellen möchten, und die Adresse des Remote-Computers.

Für unser Beispiel geben wir Folgendes ein:

ssh [email protected]

Der

Nachdem wir uns auf dem Remote-Computer authentifiziert und angemeldet haben, geben wir Folgendes ein, um eine Bildschirmsitzung namens „ssh-geek“ zu starten:

screen -S ssh-geek

Der

Zu Demonstrationszwecken werden wir oben im Bildschirmfenster ausgeführt, aber Sie können jeden langwierigen oder endlosen Prozess starten.

Wir geben folgendes ein:

top

Der

Sobald top im Fenster ausgeführt wird, drücken wir Strg+A und dann D, um das Fenster zu trennen.

Der

Wir kehren zum ursprünglichen Fenster des Remote-Terminals zurück.

Wenn wir wie unten gezeigt exit eingeben, wird die SSH-Sitzung getrennt und wir sind wieder auf unserem lokalen Computer:

exit

Der

Wir geben Folgendes ein, um die Verbindung wiederherzustellen:

ssh [email protected]

Der

Nachdem wir wieder verbunden und angemeldet sind, können wir Folgendes eingeben, um die Bildschirmsitzung erneut anzuhängen:

screen -r ssh-geek

Der

Wir sind jetzt wieder mit unserer noch laufenden Instanz von top verbunden.

Der

Dies ist großartig, wenn Sie einen Prozess auf einem Computer starten und dann auf einem anderen dort weitermachen möchten, wo Sie aufgehört haben.

Eine Bildschirmsitzung teilen

Sie können auch eine Bildschirmsitzung verwenden, um zwei Personen zu ermöglichen, dasselbe Fenster zu sehen und mit ihm zu interagieren. Nehmen wir an, jemand, der Fedora auf seinem Computer ausführt, möchte sich mit unserem Ubuntu-Server verbinden.

Er würde Folgendes eingeben:

ssh [email protected]

Der

Nachdem er die Verbindung hergestellt hat, startet er mit der Option -S (Sitzungsname) eine Bildschirmsitzung namens „ssh-geek“. Er verwendet auch die Optionen -d (trennen) und -m (erzwungene Erstellung), um eine neue Bildschirmsitzung zu erstellen, die bereits getrennt ist.

Er tippt folgendes ein:

screen -d -m -S ssh-geek

Der

Er gibt Folgendes ein und verwendet die Option -X (Multiscreen-Modus), um die Sitzung anzuhängen:

screen -X ssh-geek

Der

Auf einem Manjaro-Computer verbindet sich eine andere Person mit denselben Kontoanmeldeinformationen mit dem Ubuntu-Computer, wie unten gezeigt:

ssh [email protected]

Der

Sobald sie verbunden ist, gibt sie den Bildschirmbefehl ein und verwendet die Option -X (Multiscreen-Modus), um an derselben Fenstersitzung teilzunehmen, wie folgt:

screen -X ssh-geek

Der

Jetzt wird alles, was eine Person tippt, die andere sehen. Wenn beispielsweise eine Person den Datumsbefehl ausgibt, sehen beide ihn so, wie er eingegeben wurde, sowie seine Ausgabe.

Der

Ausgabe von der

Beide Personen teilen sich jetzt eine Bildschirmsitzung, die auf einem Remote-Ubuntu-Computer ausgeführt wird.

Für eine Software, die 1987 zum ersten Mal das Licht der Welt erblickte, bietet screen immer noch einen guten Produktivitätsschub. Sich damit vertraut zu machen wird gut investierte Zeit sein!