So verwenden Sie den Bildschirmbefehl von Linux

Veröffentlicht: 2022-01-29
Ein Linux-Terminal auf einem Laptop, hinter dem andere Terminalsitzungen eingeblendet sind.
Fatmawati Achmad Zaenuri/Shutterstock

Mit dem Linux 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-Anzeigen und funktioniert über SSH-Verbindungen, selbst nachdem Sie die Verbindung getrennt und wieder hergestellt haben!

VERWANDT: 10 grundlegende Linux-Befehle für Anfänger

Was ist der Bildschirmbefehl?

Der screen ist ein Terminal-Multiplexer und vollgepackt mit Optionen. Zu sagen, dass es viel kann, ist der Urvater der Untertreibung. Die Manpage umfasst über 4.100 Zeilen.

Im Folgenden sind die häufigsten Fälle aufgeführt, in denen Sie den screen 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 (als „Trennen“ bezeichnet). Wenn Sie sehen möchten, wie es Ihrem Prozess geht, können Sie das Fenster wieder in den Vordergrund ziehen („reattach“) und erneut verwenden. Dies ist großartig für lange Prozesse, die Sie nicht versehentlich durch Schließen des Terminalfensters beenden möchten.
  • Sobald Sie eine screen 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 screen in einem Fenster anzeigen.
  • Sie können eine Verbindung zu einem Remotecomputer herstellen, eine screen starten und einen Prozess starten. Sie können die Verbindung zum Remote-Host trennen und erneut verbinden, und Ihr Prozess wird weiterhin ausgeführt.
  • Sie können eine screen 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 Installationsbildschirm 

Verwenden Sie den folgenden Befehl, um screen auf Manjaro zu installieren:

 sudo pacman -Sy-Bildschirm 

Auf Fedora geben Sie Folgendes ein:

 sudo dnf Installationsbildschirm 

Erste Schritte mit Bildschirm

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

 Bildschirm 

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

Anzeige

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

Dazu geben wir Folgendes ein:

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

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

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 abzutrennen.

Der Download-Vorgang läuft noch, aber das Fenster, das den Download anzeigt, wird entfernt. Sie kehren zum Terminalfenster zurück, von dem aus Sie die screen gestartet haben. Eine Meldung teilt Ihnen mit, dass ein screen mit der Bezeichnung 23167.pts-0.howtogeek getrennt wurde.

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

 Bildschirm -ls 

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

 Bildschirm -r 23167 

Anzeige

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

Eine erneut verbundene Bildschirmsitzung wurde im Terminalfenster wiederhergestellt.

Wenn es sich um einen Prozess handelt, der bis zu seinem Abschluss durchlaufen wird, wird er schließlich abgeschlossen sein. Wenn es sich um einen kontinuierlichen Prozess handelt, möchten Sie ihn schließlich beenden. In jedem Fall können Sie am Ende des Prozesses exit eingeben, um den screen zu verlassen. Alternativ können Sie Strg+A und dann K drücken, um ein Fenster zwangsweise zu beenden.

Geben Sie den folgenden Befehl ein:

 Ausfahrt 

Sie kehren zu Ihrem vorherigen Terminalfenster zurück, das immer noch den Befehl anzeigt, den Sie zum erneuten Anfügen des Fensters verwendet haben. Da wir unser einziges getrenntes Fenster geschlossen haben, erhalten wir eine Meldung, dass der screen beendet wird.

VERWANDT: So verwenden Sie curl zum Herunterladen von Dateien von der Linux-Befehlszeile

Benannte Bildschirmsitzungen verwenden

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

 screen -S große Datei 

Wenn der screen 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 http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip 

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:

 Bildschirm -ls 

Anzeige

Hinter der numerischen Kennung (23266) sehen wir den Namen unserer Sitzung (Bigfile). Wir geben Folgendes ein, einschließlich des Namens der Sitzung, um sie erneut anzuhängen:

 screen -r große Datei 

Wir sind wieder mit unserem Download-Fenster verbunden und sehen, dass der lange Download noch läuft.

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

Verwenden des Bildschirms mit mehreren Fenstern

Bisher haben wir screen verwendet, um einen einzelnen Prozess in einem separaten Fenster in den Hintergrund zu stellen. Der screen kann jedoch noch viel mehr. Als Nächstes führen wir einige Prozesse aus, mit denen wir einige Aspekte unseres Computers überwachen können.

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

 Bildschirm -S-Monitor 

Anzeige

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). Dies zeigt die Kernel-Puffermeldungen an; Neue Nachrichten werden angezeigt, sobald sie auftreten.

Wir geben Folgendes ein:

 dmesg -H -w 

Die vorhandenen Meldungen werden angezeigt. Wir kehren nicht zur Eingabeaufforderung zurück, da dmseg auf neue Nachrichten wartet und diese anzeigt, sobald sie eintreffen.

VERWANDT: Verwendung des dmesg-Befehls unter Linux

Wir möchten eine andere Anwendung ausführen, daher benötigen wir ein neues screen . Wir drücken Strg+A und dann C, um ein neues Fenster zu erstellen. Wir werden watch verwenden, um vmstat wiederholt auszuführen, sodass wir eine häufig aktualisierte Anzeige der Nutzung des virtuellen Speichers auf unserem Computer erhalten.

An der neuen Eingabeaufforderung geben wir Folgendes ein:

 vmstat ansehen 

Die Ausgabe vmstat wird alle zwei Sekunden angezeigt und aktualisiert.

Unsere beiden Prozesse laufen jetzt. Um zwischen den screen 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.

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

Das ist ziemlich raffiniert! Wir können Strg+A und dann D drücken, um uns von dieser Sitzung zu trennen; wir können später wieder anhängen. Beide Sessions laufen noch. 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.

Lassen Sie uns zum nächsten Schritt übergehen und beide Bildschirme in einem Fenster anzeigen. Wenn Sie dies tun, strecken Sie Ihr Terminalfenster auf eine Größe, die diesen Schritt sinnvoll macht. Unsere Beispiele sind auf die Größe unserer Screenshots beschränkt, sodass unsere Fenster etwas beengt aussehen.

Anzeige

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

Das Fenster teilt sich in zwei „Bereiche“.

Der obere Bereich zeigt immer noch vmstat an und der untere Bereich 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.

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

Dadurch erhalten wir beide Live-Ausgaben in einem geteilten Fenster. Wenn wir Strg+A und D drücken, um das Fenster zu lösen, und es dann wieder anfügen, verlieren wir die Split-Pane-Ansicht. Wir können es jedoch mit den folgenden Tastenkombinationen wiederherstellen:

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

Wir können sogar noch einen Schritt weiter gehen. Wir teilen jetzt den unteren Bereich vertikal 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 und gibt uns eine Eingabeaufforderung.

Als nächstes führen wir den Befehl df aus, um die Nutzung des Dateisystems zu überprüfen:

 df 

Anzeige

Wenn wir sehen, dass df läuft, 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.

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

  • Strg+A: Springt zwischen der aktuellen und vorherigen Region hin und her.
  • Strg+A, Q: Schließt alle Regionen außer der aktuellen.
  • Strg+A, X: Aktuelle Region schließen.

Bildschirm über SSH verwenden

Mit screen können Sie eine Fenstersitzung starten, sie trennen, sodass sie weiterhin im Hintergrund ausgeführt wird, sich abmelden oder wieder anmelden und die Sitzung erneut anhängen.

Stellen wir mit dem Befehl ssh von einem anderen eine SSH-Verbindung zu unserem Computer her. Wir müssen den Namen des Kontos angeben, mit dem wir uns verbinden, und die Adresse des Remote-Computers.

Für unser Beispiel geben wir Folgendes ein:

 ssh [email protected] 

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

 screen -S ssh-Geek 

Zu Demonstrationszwecken laufen wir top im screen , aber Sie können jeden lang andauernden oder endlosen Prozess starten.

Wir geben Folgendes ein:

 oben 

Anzeige

Sobald top im Fenster läuft, drücken wir Strg+A und dann D, um das Fenster zu trennen.

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

Der Benutzer kehrte zu seinem ursprünglichen Terminalfenster zurück

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

 Ausfahrt 

Wir geben Folgendes ein, um die Verbindung wiederherzustellen:

 ssh [email protected] 

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

 screen -r ssh-geek 

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

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

VERWANDT: So erstellen und installieren Sie SSH-Schlüssel aus der Linux-Shell

Teilen einer Bildschirmsitzung

Sie können auch eine screen verwenden, damit zwei Personen dasselbe Fenster sehen und damit interagieren können. 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] 

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

Er tippt folgendes ein:

 screen -d -m -S ssh-Geek 

Anzeige

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

 screen -x ssh-geek 

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

 ssh [email protected] 

Sobald sie verbunden ist, gibt sie den screen ein und verwendet die Option -X (Multiscreen-Modus), um derselben Fenstersitzung beizutreten, etwa so:

 screen -X ssh-Geek 

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

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


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

VERWANDT: 37 Wichtige Linux-Befehle, die Sie kennen sollten

RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten