fatmawati achmad zaenuri/Shutterstock
Mit dem Linux screen
Befehl 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?
Die screen
Befehl 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 die screen
Befehl, 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 „Abtrennen“ bezeichnet). 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
screen
Wenn die Sitzung ausgeführt wird, 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
Fenster in einem Fenster.
- Sie können eine Verbindung zu einem Remote-Computer herstellen, starten Sie a
screen
Sitzung und starten Sie einen Prozess. Sie können die Verbindung zum Remote-Host trennen, die Verbindung erneut herstellen, und Ihr Prozess wird weiterhin ausgeführt.
- Sie können teilen
screen
Sitzung zwischen zwei verschiedenen SSH-Verbindungen, sodass zwei Personen in Echtzeit dasselbe sehen können.
Bildschirm installieren
Installieren screen
Verwenden Sie unter Ubuntu diesen Befehl:
sudo apt-get install screen
Installieren screen
Verwenden Sie auf Manjaro den folgenden Befehl:
sudo pacman -Sy screen
Auf Fedora geben Sie Folgendes ein:
sudo dnf install screen
Erste Schritte mit Bildschirm
Anfangen screen
, geben Sie es einfach wie unten gezeigt ein und drücken Sie die Eingabetaste:
screen
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.
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 . um 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 zu trennen.
Der Download-Prozess läuft noch, aber das Fenster mit dem Download wird entfernt. Sie kehren zu dem Terminalfenster zurück, von dem aus Sie das gestartet haben screen
Sitzung. Eine Nachricht sagt Ihnen, dass a screen
Fenster beschriftet 23167.pts-0.howtogeek
wurde abgelöst.
Sie benötigen die Nummer vom Anfang des Fensternamens, um es wieder anzuhängen. Wenn Sie es vergessen, können Sie immer die -ls
(Liste) Option, wie unten gezeigt, um eine Liste der abgetrennten Fenster zu erhalten:
screen -ls
Wenn Sie bereit sind, können Sie die -r
(reattach) Option und die Nummer der Sitzung, um sie erneut anzuhängen, wie folgt:
screen -r 23167
Das Fenster, das im Hintergrund gearbeitet 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. Wenn es sich um einen kontinuierlichen Prozess handelt, möchten Sie ihn eventuell beenden. So oder so, wenn der Vorgang beendet ist, können Sie eingeben exit
aus dem aussteigen screen
. 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
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 freistehendes Fenster geschlossen haben, bekommen wir eine Nachricht, dass screen
ist terminiert.
Benannte Bildschirmsitzungen verwenden
Du kannst den … benutzen -S
(Sitzungsname) Option zum Benennen Ihres screen
Sitzung. 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
Wann 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 zu verwenden -ls
(Listen-)Option mit screen
um die Details unserer getrennten Sitzung zu sehen:
screen -ls
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
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
um das Sitzungsfenster zu schließen.
Bildschirm mit mehreren Fenstern verwenden
Bisher haben wir verwendet screen
um einen einzelnen Prozess in einem abgetrennten Fenster im Hintergrund zu platzieren. Jedoch, screen
ist in der Lage, noch viel mehr zu tun. 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
An der Eingabeaufforderung in unserer neuen Fenstersitzung starten wir dmesg
und benutze die -H
(für Menschen lesbar) und -w
(auf neue Nachrichten warten) Optionen. Dieser Wille die Kernel-Puffer-Meldungen anzeigen; neue Nachrichten werden angezeigt, sobald sie auftreten.
Wir geben folgendes ein:
dmesg -H -w
Die vorhandenen Nachrichten werden angezeigt. Wir kehren nicht zur Eingabeaufforderung zurück, weil dmseg
wartet auf neue Nachrichten und zeigt diese an, sobald sie eintreffen.
Wir möchten eine andere Anwendung ausführen, also brauchen wir eine neue screen
Fenster. Wir drücken Strg+A und dann C, um ein neues Fenster zu erstellen. Wir werden verwenden watch
zu wiederholt laufen vmstat
, damit wir eine häufig aktualisierte Anzeige des virtuellen Speicherverbrauchs auf unserem Computer.
An der neuen Eingabeaufforderung geben wir Folgendes ein:
watch vmstat
Die vmstat
Ausgabe erscheint und wird alle zwei Sekunden aktualisiert.
Unsere beiden Prozesse laufen jetzt. Zwischen den hüpfen screen
Fenster 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 zu springen (das dmesg
one), 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 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“.
Die oberste Region wird weiterhin angezeigt vmstat
, 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 Bereich ist. Es ist keine Shell, also können wir nichts eingeben. Um eine nützliche Anzeige zu erhalten, drücken wir Strg+A und drücken dann „0“, um das anzuzeigen dmesg
Fenster in dieser Region.
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: Teilen Sie das Fenster horizontal.
- Strg+A, Tab: Wechseln Sie in den unteren Bereich.
- Strg+A, 0: Anzeigefenster Null im unteren Bereich.
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 zu erstellen mit einer Muschel drin. Der untere Bereich zeigt das neue Fenster an und gibt uns eine Eingabeaufforderung.
Als nächstes führen wir die df
Befehl an Dateisystemnutzung prüfen:
df
Wenn wir sehen 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 die anzuzeigen dmesg
Fenster.
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ßen Sie alle Regionen außer der aktuellen.
- Strg+A, X: Schließen Sie die aktuelle Region.
Bildschirm über SSH verwenden
Mit screen
, können Sie eine Fenstersitzung starten, sie trennen, sodass sie weiterhin im Hintergrund ausgeführt wird, 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 dave@192.168.4.30
Nachdem wir uns auf dem Remote-Computer authentifiziert und angemeldet haben, geben wir Folgendes ein, um a screen
Sitzung namens „ssh-geek“:
screen -S ssh-geek
Zu Demonstrationszwecken laufen wir top
in dem screen
Fenster, aber Sie können jeden lang andauernden oder endlosen Prozess starten.
Wir geben folgendes ein:
top
Wenn top
im Fenster ausgeführt wird, drücken wir Strg+A und dann D, um das Fenster zu trennen.
Wir kehren zum ursprünglichen Fenster des Remote-Terminals zurück.
Wenn wir tippen exit
, wie unten gezeigt, trennt es die SSH-Sitzung und wir sind wieder auf unserem lokalen Computer:
exit
Wir geben Folgendes ein, um die Verbindung wiederherzustellen:
ssh dave@192.168.4.30
Nachdem wir wieder verbunden und eingeloggt sind, können wir Folgendes eingeben, um das wieder anzuhängen screen
Sitzung:
screen -r ssh-geek
Wir sind jetzt wieder mit unserer noch laufenden Instanz von . verbunden top
.
Dies ist großartig, wenn Sie einen Prozess auf einer Maschine starten und dann auf einer anderen an der Stelle weitermachen möchten, an der Sie aufgehört haben.
Eine Bildschirmsitzung teilen
Sie können auch a . verwenden screen
Sitzung, damit zwei Personen dasselbe Fenster sehen und mit ihm 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 dave@192.168.4.30
Nachdem er die Verbindung hergestellt hat, startet er mit der Option -S (Sitzungsname) eine Bildschirmsitzung namens „ssh-geek“. Er benutzt auch die -d
(trennen) und -m
(erzwungene Erstellung) Optionen zum Erstellen eines neuen screen
Sitzung, die bereits getrennt ist.
Er tippt folgendes ein:
screen -d -m -S ssh-geek
Er tippt Folgendes mit dem -x
(Multiscreen-Modus) Option zum Anhängen der Sitzung:
screen -x ssh-geek
Auf einem Manjaro-Computer verbindet sich eine andere Person mit denselben Kontoanmeldeinformationen mit dem Ubuntu-Computer, wie unten gezeigt:
ssh dave@192.168.4.1
Sobald sie verbunden ist, tippt sie die screen
Befehl und verwendet die Option -X (Multiscreen-Modus), um derselben Fenstersitzung beizutreten, wie folgt:
screen -X ssh-geek
Nun, alles, was eine Person tippt, wird die andere sehen. Wenn beispielsweise eine Person den Datumsbefehl ausgibt, sehen beide ihn so, wie er eingegeben wurde, sowie seine Ausgabe.
Beide Leute teilen sich jetzt a screen
Sitzung, die auf einem Remote-Ubuntu-Computer ausgeführt wird.
Für eine Software, die 1987 das Licht der Welt erblickte, screen
bietet immer noch eine gute Produktivität. Sich damit vertraut zu machen wird gut investierte Zeit sein!