Skip to content
Skip to content
Menu
Info Cafe
Info Cafe

How to Use Linux’s screen Command

By admin on Februar 23, 2021

  • Dave McKay

    @TheGurkha

  • March 27, 2020, 8:00 Uhr EDT
Ein Linux-Terminal auf einem Laptop, hinter dem andere Terminalsitzungen eingeblendet sind.
fatmawati achmad zaenuri/

Mit dem Linux-Befehl screen können Sie laufende Terminalanwendungen in den Hintergrund schieben und nach vorne ziehen, wenn Sie sie sehen wollen. Es unterstützt auch geteilte Bildschirmanzeigen und funktioniert über SSH-Verbindungen, sogar nachdem Sie die Verbindung getrennt und wieder hergestellt haben!

Was ist der screen-Befehl?

Der screen-Befehl ist ein Terminal-Multiplexer, und er ist absolut vollgepackt mit Optionen. Zu sagen, dass er eine Menge kann, ist die größte Untertreibung. Die Manpage umfasst über 4.100 Zeilen.

Das Folgende sind die häufigsten Fälle, in denen Sie den screen-Befehl verwenden, und wir werden diese in diesem Artikel weiter behandeln:

  • Die Standardoperation ist es, ein neues Fenster mit einer Shell darin zu erzeugen, einen Befehl auszuführen und dann das Fenster in den Hintergrund zu schieben (was „Ablösen“ genannt wird). Wenn Sie sehen wollen, wie sich Ihr Prozess verhält, können Sie das Fenster wieder in den Vordergrund ziehen („reattach“) und es erneut verwenden. Das ist großartig für lange Prozesse, die Sie nicht versehentlich durch Schließen des Terminalfensters beenden wollen.
  • Sobald Sie eine screen-Sitzung laufen haben, können Sie neue Fenster erstellen und andere Prozesse darin laufen lassen. Sie können einfach zwischen den Fenstern hin- und herspringen, um deren Fortschritt zu überwachen. Sie können Ihr Terminalfenster auch in vertikale oder horizontale Bereiche aufteilen und Ihre verschiedenen screen-Fenster in einem Fenster anzeigen.
  • Sie können eine Verbindung zu einem entfernten Rechner herstellen, eine screen-Sitzung starten und einen Prozess starten. Sie können die Verbindung zum entfernten Rechner trennen, sich erneut verbinden und Ihr Prozess läuft immer noch.
  • Sie können eine screen-Sitzung für zwei verschiedene SSH-Verbindungen freigeben, so dass zwei Personen dasselbe sehen können, in Echtzeit.

Screen installieren

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

sudo apt-get install screen

Der Befehl "sudo apt-get install screen" in einem Terminalfenster."sudo apt-get install screen" command in a terminal window.

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

sudo pacman -Sy screen

Der Befehl "sudo pacman -Sy screen" in einem Terminalfenster."sudo pacman -Sy screen" command in a terminal window.

Unter Fedora geben Sie Folgendes ein:

sudo dnf install screen

Den Befehl "sudo dnf install screen" in einem Terminalfenster."sudo dnf install screen" command in a terminal window.

Einstieg in screen

Zum Starten geben Sie screen einfach wie unten gezeigt ein und drücken die Eingabetaste:

screen

Der Befehl "screen" in einem Terminalfenster."screen" command in a terminal window.

Anzeige

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.

Der "screen"-Befehl Lizenzinformationen in einem Terminalfenster."screen" command license information in a terminal window.

Sie bleiben bei der Eingabeaufforderung, und es scheint nicht viel passiert zu sein. Allerdings führen Sie jetzt eine Shell in einem gemultiplexten Terminalemulator aus. Warum ist das eine gute Sache? 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.

Um das zu tun, geben wir Folgendes ein:

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

Der Befehl "curl latest_kernel.zip" in einem Terminalfenster."curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip" command in a terminal window.

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

Die Ausgabe des "curl latest_kernel.zip" in einem Terminal-Fenster."curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > latest_kernel.zip" command in a terminal window.

Werbung

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

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

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

screen -ls

Der Befehl "screen -ls" in einem Terminalfenster."screen -ls" command in a terminal window.

Wenn Sie bereit sind, können Sie die Option -r (reattach) und die Nummer der Sitzung verwenden, um sie wieder zu verbinden, etwa so:

screen -r 23167

Der Befehl "screen -3 23167" in einem Terminalfenster."screen -3 23167" command in a terminal window.

Werbung

Das Fenster, das im Hintergrund gearbeitet hat, wird nun in Ihr Terminalfenster zurückgebracht, als wäre es nie weg gewesen.

Eine wiederhergestellte Bildschirmsitzung im Terminalfenster.

Wenn es sich um einen Prozess handelt, der bis zu seinem Ende durchläuft, wird er schließlich abgeschlossen. Wenn es ein fortlaufender Prozess ist, werden Sie ihn irgendwann beenden wollen. So oder so, wenn der Prozess endet, können Sie exit eingeben, um das screen zu beenden. Alternativ können Sie auch Strg+A und dann K drücken, um ein Fenster gewaltsam zu beenden.

Tippen Sie folgenden Befehl ein:

exit

Der "exit"-Befehl in einem Terminal-Fenster."exit" command in a terminal window.

Sie kehren zu Ihrem vorherigen Terminal-Fenster zurück, das immer noch den Befehl anzeigt, mit dem Sie das Fenster wieder angehängt haben. Da wir unser einziges abgetrenntes Fenster geschlossen haben, erhalten wir eine Meldung, dass screen beendet wird.

Die Beendigungsmeldung des Befehls "screen" in einem Terminalfenster."screen" command terminating message in a terminal window.

Verbunden: How to Use curl to Download Files From the Linux Command Line

Using Named screen Sessions

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

screen -S bigfile

Der Befehl "screen -S bigfile" in einem Terminalfenster."screen -S bigfile" command in a terminal window.

Anzeige

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

Wir geben Folgendes ein:

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

Der "curl bigfile.zip"-Befehl in einem Terminalfenster."curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip" command in a terminal window.

Wenn der Download beginnt, drücken wir Strg+A und dann D, um die Sitzung zu lösen. Wir geben Folgendes ein, um mit -ls (Liste) die Details unserer abgetrennten Sitzung anzuzeigen:

screen -ls

Der Befehl "screen -ls" in einem Terminalfenster."screen -ls" command in a terminal window.

Hinter der numerischen Kennung (23266) sehen wir den Namen unserer Sitzung (bigfile). Wir geben Folgendes ein, einschließlich des Namens der Sitzung, um sie wieder zu verbinden:

screen -r bigfile

Der Befehl "screen -r bigfile" in einem Terminalfenster."screen -r bigfile" command in a terminal window.

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

Der

Anzeige

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

Screen mit mehreren Fenstern verwenden

Bislang haben wir screen verwendet, um einen einzelnen Prozess in einem abgetrennten Fenster in den Hintergrund zu stellen. Das screen kann aber noch viel mehr als das. Als Nächstes werden wir ein paar Prozesse starten, 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 Befehl "screen -S monitor" in einem Terminalfenster."screen -S monitor" command in a terminal window.

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

Wir geben Folgendes ein:

dmesg -H -w

Der Befehl "dmesg -H -w" in einem Terminalfenster."dmesg -H -w" command in a terminal window.

Anzeige

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

Die "dmsesg"-Ausgabe in einem Terminalfenster."dmsesg" output in a terminal window.

Verbunden: Wie man den dmesg-Befehl unter Linux verwendet

Wir wollen eine andere Anwendung ausführen, also brauchen wir ein neues screen-Fenster. Wir drücken Strg+A und dann C, um ein neues Fenster zu erstellen. Wir werden watch verwenden, um vmstat wiederholt auszuführen, damit wir eine häufig aktualisierte Anzeige der Nutzung des virtuellen Speichers auf unserem Computer erhalten.

An der neuen Eingabeaufforderung geben wir Folgendes ein:

watch vmstat

Den Befehl "watch vmstat" in einem Terminalfenster."watch vmstat" command in a terminal window.

Die vmstatAusgabe erscheint und aktualisiert sich alle zwei Sekunden.

Die "vmstat"-Ausgabe in einem Terminalfenster."vmstat" output in a terminal window.

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

Zurück zum "dmesg"-Bildschirm in einem Terminalfenster."dmesg" screen in a terminal window.

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

Zurück zum "vmstat"-Bildschirm in einem Terminal-Fenster."vmstat" screen in a terminal window.

Anzeige

Das ist ziemlich raffiniert! Wir können Strg+A und dann D drücken, um uns von dieser Sitzung zu trennen; wir können uns später wieder verbinden. Beide Sitzungen werden weiterhin ausgeführt. Um zwischen den Fenstern zu wechseln, drücken wir wieder Strg+A und die Nummer (0 oder 1) des Fensters, zu dem wir wechseln wollen.

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

Um dies zu tun, drücken wir Strg+A und dann Umschalt+S (ein großes „S“ ist erforderlich).

Das Fenster teilt sich in zwei „Bereiche“.“

Eine "Bildschirm"-Fenstersitzung wird in einem Terminalfenster in zwei horizontale Bereiche aufgeteilt."screen" window session split into two horizontal regions in a terminal window.

Der obere Bereich zeigt noch vmstat, und der untere Bereich ist leer. Der Cursor ist im unteren Screenshot hervorgehoben. Um ihn in den unteren Bereich zu verschieben, drücken wir Strg+A und dann die Tabulatortaste.

Eine "Bildschirm"-Fenstersitzung, die in zwei horizontale Bereiche aufgeteilt ist, mit dem Cursor im unteren Bereich in einem Terminalfenster."screen" window session split into two horizontal regions with cursor in the bottom region in a terminal window.

Werbung

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

Die "Bildschirm"-Sitzung mit einem horizontal geteilten Fenster, das in jeder Region einen anderen Prozess in einem Terminal-Fenster anzeigt."screen" session with a horizontal split pane showing a different process in each region in a terminal window.

Dadurch erhalten wir beide Live-Ausgaben in einem geteilten Fenster. Wenn wir Strg+A und D drücken, um das Fenster abzutrennen, und es dann wieder anhängen, verlieren wir die Ansicht des geteilten Fensters. Wir können sie jedoch mit den folgenden Tastenkombinationen wiederherstellen:

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

Wir können noch einen Schritt weiter gehen. Wir teilen jetzt den unteren Bereich vertikal auf und fügen einen dritten Prozess zur Anzeige 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.

Eine "Bildschirm"-Sitzung mit einem horizontal geteilten Bereich, der ein neues Fenster im unteren Bereich in einem Terminalfenster zeigt."screen" session with a horizontal split pane showing a new window in the lower region in a terminal window.

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

df

Eine "Bildschirm"-Sitzung mit einem horizontal geteilten Fenster und "df" im unteren Bereich in einem Terminalfenster eingegeben."screen" session with a horizontal split pane, and "df" typed in the lower region in a terminal window.

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 den neuen Bereich zu wechseln. Als Nächstes drücken wir Strg+A und 0, um das Fenster dmesg anzuzeigen.

Eine "Bildschirm"-Sitzung, die drei Bereiche in einem Terminalfenster zeigt."screen" session showing three panes in a terminal window.

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 der vorherigen Region hin und her.
  • Strg+A, Q: Schließt alle Regionen außer der aktuellen.
  • Strg+A, X: Den aktuellen Bereich schließen.

Benutzung des Bildschirms über SSH

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

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

Für unser Beispiel geben wir Folgendes ein:

ssh [email protected]

Der Befehl "ssh dave@192.168.4.30" in einem Terminalfenster."ssh dave@192.168.4.30" command in a terminal window.

Anzeige

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

screen -S ssh-geek

Der Befehl "screen -S ssh-geek" in einem Terminalfenster."screen -S ssh-geek" command in a terminal window.

Zu Demonstrationszwecken führen wir top im screen-Fenster aus, aber Sie könnten jeden beliebigen langlaufenden oder endlosen Prozess starten.

Wir geben Folgendes ein:

top

Den Befehl "top" in einem Terminalfenster."top" command in a terminal window.

Wenn top in dem Fenster läuft, drücken wir Strg+A und dann D, um das Fenster zu lösen.

Der "top"-Prozess, der in einem "screen"-Fenster in einem Terminalfenster läuft."top" process running in a "screen" window in a terminal window.

Wir kehren zum ursprünglichen, entfernten Terminalfenster zurück.

Benutzer kehrt zu seinem ursprünglichen Terminalfenster zurück

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

exit

Der Befehl "exit" in einem Terminalfenster."exit" command in a terminal window.

Wir geben Folgendes ein, um die Verbindung wiederherzustellen:

ssh [email protected]

Den Befehl "ssh dave@192.168.4.30" in einem Terminalfenster."ssh dave@192.168.4.30" command in a terminal window.

Anzeige

Nachdem wir wieder verbunden und eingeloggt sind, können wir Folgendes eingeben, um die screen Sitzung wieder zu verbinden:

screen -r ssh-geek

Der Befehl "screen -r ssh-geek" in einem Terminalfenster."screen -r ssh-geek" command in a terminal window.

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

Der Prozess "top" läuft in einem Terminalfenster."top" process running in a terminal window.

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

Verbunden: How to Create and Install SSH Keys From the Linux Shell

Sharing a screen Session

Sie können auch eine screen-Sitzung verwenden, damit zwei Personen dasselbe Fenster sehen und mit ihm interagieren können. Nehmen wir an, jemand, auf dessen Computer Fedora läuft, möchte sich mit unserem Ubuntu-Server verbinden.

Er würde Folgendes eingeben:

ssh [email protected]

Der Befehl "ssh dave@192.168.4.30" in einem Terminalfenster."ssh dave@192.168.4.30" command in a terminal window.

Nachdem er eine Verbindung hergestellt hat, startet er eine Bildschirmsitzung namens „ssh-geek“ mit der Option -S (Sitzungsname). Außerdem verwendet er die Optionen -d (abtrennen) und -m (erzwingen), um eine neue screen Sitzung zu erstellen, die bereits abgetrennt ist.

Er gibt Folgendes ein:

screen -d -m -S ssh-geek

Der Befehl "screen -d -m -S ssh-geek" in einem Terminalfenster."screen -d -m -S ssh-geek" command in a terminal window.

Anzeige

Er tippt Folgendes ein, wobei er die Option -X (Multiscreen-Modus) verwendet, um die Sitzung anzuhängen:

screen -X ssh-geek

Der Befehl "screen -X ssh-geek" in einem Terminalfenster."screen -X ssh-geek" command in a terminal window.

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

ssh [email protected]

Der Befehl "ssh dave@192.168.4.1" in einem Terminalfenster."ssh dave@192.168.4.1" command in a terminal window.

Wenn sie verbunden ist, tippt sie den screen-Befehl und verwendet die Option -X (Mehrbildschirmmodus), um der gleichen Fenstersitzung beizutreten, etwa so:

screen -X ssh-geek

Der Befehl "screen -X ssh-geek" in einem Terminalfenster."screen -X ssh-geek" command in a terminal window.

Jetzt wird alles, was eine der beiden Personen eingibt, von der anderen gesehen. Wenn zum Beispiel eine Person den Befehl „date“ eingibt, sehen beide sowohl die Eingabe als auch die Ausgabe.

Der Befehl "date" in einem Terminalfenster."date" command in a terminal window.

Die Ausgabe des Befehls "date" in einem Terminalfenster."date" command in a terminal window.

Werbung

Beide Personen teilen sich jetzt eine screen-Sitzung, die auf einem entfernten Ubuntu-Computer läuft.

Für ein Stück Software, das 1987 das Licht der Welt erblickte, ist screen immer noch ein guter Produktivitätshieb. Sich damit vertraut zu machen, ist gut investierte Zeit!

Verbunden: 37 wichtige Linux-Befehle, die Sie kennen sollten

Dave McKay
Dave McKay hat zum ersten Mal Computer benutzt, als Lochstreifen in Mode waren, und seitdem programmiert er. Nach über 30 Jahren in der IT-Branche ist er nun hauptberuflich Technologie-Journalist. Während seiner Karriere arbeitete er als freiberuflicher Programmierer, Manager eines internationalen Software-Entwicklungsteams, Projektmanager für IT-Services und zuletzt als Datenschutzbeauftragter. Dave ist ein Linux-Evangelist und Open-Source-Befürworter.Read Full Bio “

Beitrags-Navigation

Sind Sie ein guter Chef – oder ein großartiger?
Was ist Höhenkrankheit?

Schreibe einen Kommentar Antworten abbrechen

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

Neueste Beiträge

  • Firebush
  • 9 beste Hundevitamine und Nahrungsergänzungsmittel für verbesserte Gesundheit
  • CD-Zins-Prognose für 2021: Die Zinsen werden wahrscheinlich niedrig bleiben, aber sie könnten später im Jahr steigen
  • Wie man die Dokumentation des Qualitätsmanagementsystems strukturiert
  • Chronische Beckenschmerzen und Prostatitis: Symptome, Diagnose und Behandlung
  • Mixed Berry Crisp (Deutsch)
  • Low-Carb-Schokoladenpudding-Rezept
  • Gesunde Spiele und Aktivitäten für Kinder | UIC Online Informatics
  • Wheat Ales (amerikanisch)
  • Die Vorteile des Stillens über ein Jahr hinaus

Meta

  • Anmelden
  • Feed der Einträge
  • Kommentare-Feed
  • WordPress.org

Archive

  • März 2021
  • Februar 2021
  • Januar 2021
  • Dezember 2020
  • DeutschDeutsch
  • NederlandsNederlands
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • PolskiPolski
  • 日本語日本語
©2021 Info Cafe | WordPress Theme by SuperbThemes.com