Dieses Tutorial bietet einen Überblick über die Grundlagen von Linux Screen, einem leistungsstarken Terminal-Multiplexer, mit dem Sie mehrere Terminal-Sitzungen innerhalb eines einzigen Fensters erstellen, verwalten und navigieren können. Sie lernen, wie Sie Screen-Sitzungen starten, trennen (detach) und wiederherstellen (reattach), sowie praktische Anwendungen dieses vielseitigen Tools kennen.
Interaktive Übungen statt trockener Theorie.
Die Grundlagen von Linux Screen verstehen
Linux Screen ist ein leistungsstarker Terminal-Multiplexer, mit dem Sie mehrere Terminal-Sitzungen innerhalb eines einzigen Fensters erstellen, verwalten und navigieren können. Er bietet eine Möglichkeit, mehrere Befehle oder Anwendungen gleichzeitig auszuführen, sie im Hintergrund auszuführen und nahtlos zwischen ihnen zu wechseln.
Einer der Hauptanwendungsfälle für Linux Screen ist die Ermöglichung persistenter Sitzungen. Dies bedeutet, dass Sie einen lang laufenden Prozess starten, die Sitzung trennen (detach) und später wiederherstellen (reattach) können, sogar von einem anderen Ort oder Gerät aus. Dies ist besonders nützlich für Aufgaben wie die Remote-Serververwaltung, die Ausführung automatisierter Skripte oder die Aufrechterhaltung lang laufender Prozesse, die nicht unterbrochen werden sollten.
Ein weiteres wichtiges Merkmal von Linux Screen ist seine Fähigkeit, gemeinsame Sitzungen (shared sessions) zu unterstützen. Dies ermöglicht es mehreren Benutzern, sich mit derselben Screen-Sitzung zu verbinden, was die Zusammenarbeit und Fernunterstützung ermöglicht. Dies kann besonders nützlich sein, wenn mehrere Teammitglieder am selben Projekt arbeiten oder ein Problem gemeinsam beheben müssen.
Um die grundlegende Verwendung von Linux Screen zu demonstrieren, starten wir eine neue Screen-Sitzung. Öffnen Sie Ihr Terminal und geben Sie den folgenden Befehl ein:
screen
Sie befinden sich nun in einer neuen Screen-Sitzung. Sie erkennen, dass Sie sich in einer Screen-Sitzung befinden, daran, dass das Terminal möglicherweise etwas anders aussieht oder eine Willkommensnachricht angezeigt wird.
Führen wir nun einen einfachen Befehl innerhalb dieser Screen-Sitzung aus. Wir verwenden den Befehl top, um laufende Prozesse anzuzeigen.
top
Sie sollten die top-Ausgabe sehen, die Systemprozesse anzeigt.
top - HH:MM:SS up X days, HH:MM, X users, load average: X.XX, X.XX, X.XX
Tasks: XXX total, X running, XXX sleeping, X stopped, X zombie
%Cpu(s): X.X us, X.X sy, X.X ni, XX.X id, X.X wa, X.X hi, X.X si, X.X st
MiB Mem : XXXX.X total, XXXX.X free, XXX.X used, XXXX.X buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. XXXX.X avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
XXXX labex 20 0 XXXXXX XXXXX XXXXX S X.X X.X X:XX.XX top
XXXX labex 20 0 XXXXXX XXXXX XXXXX S X.X X.X X:XX.XX zsh
...
Um den Befehl top zu beenden, drücken Sie q.
Trennen wir uns nun von dieser Screen-Sitzung. Dadurch wird die Sitzung im Hintergrund ausgeführt. Um sich zu trennen (detach), drücken Sie Strg+A gefolgt von d.
Ctrl+A, d
Sie sollten eine Meldung sehen, die anzeigt, dass Sie von der Screen-Sitzung getrennt wurden.
[detached from ...]
Sie sind nun zurück in Ihrer ursprünglichen Terminal-Sitzung. Die Screen-Sitzung mit dem Befehl top (den Sie beendet haben) wird weiterhin im Hintergrund ausgeführt.
Screen-Sitzungen auflisten und wiederherstellen (reattach)
Nachdem Sie sich von einer Screen-Sitzung getrennt (detached) haben, lernen wir nun, wie Sie die laufenden Sitzungen auflisten und eine wiederherstellen (reattach).
Um alle laufenden Screen-Sitzungen aufzulisten, verwenden Sie den Befehl screen -ls in Ihrem Terminal.
screen -ls
Sie sollten eine ähnliche Ausgabe wie diese sehen, die Ihre getrennte Sitzung anzeigt:
There is a screen on:
XXXXX.pts-X.labex (Detached)
X Sockets in /run/screen/S-labex.
Die Ausgabe zeigt die Sitzungs-ID (z. B. XXXXX.pts-X.labex) und ihren Status (Detached) an.
Um die zuletzt getrennte Screen-Sitzung wiederherzustellen (reattach), verwenden Sie den Befehl screen -r.
screen -r
Sie sollten sich nun wieder in Ihrer Screen-Sitzung befinden. Da Sie top im vorherigen Schritt beendet haben, sehen Sie wahrscheinlich eine Standard-Terminaleingabeaufforderung innerhalb der Screen-Sitzung.
Wenn mehrere Screen-Sitzungen ausgeführt werden, können Sie eine bestimmte Sitzung wiederherstellen (reattach), indem Sie ihre Sitzungs-ID nach dem Befehl screen -r angeben. Wenn die Sitzungs-ID beispielsweise 12345 lautet, würden Sie Folgendes verwenden:
screen -r 12345
Für dieses Lab ist screen -r ausreichend, da Sie wahrscheinlich nur eine Sitzung haben.
Nachdem Sie nun wieder in der Screen-Sitzung sind, beenden wir sie ordnungsgemäß. Sie können dies tun, indem Sie exit innerhalb der Screen-Sitzung eingeben.
exit
Dadurch wird die Screen-Sitzung beendet und Sie kehren zu Ihrem ursprünglichen Terminal zurück.
Sie können überprüfen, ob die Sitzung geschlossen ist, indem Sie die Screen-Sitzungen erneut auflisten:
screen -ls
Sie sollten eine Ausgabe sehen, die anzeigt, dass keine Screen-Sitzungen ausgeführt werden:
No Sockets in /run/screen/S-labex.
Lerne durch echte Programmierung.
Eine Screen-Sitzung beenden
Im vorherigen Schritt haben Sie gelernt, wie Sie eine Screen-Sitzung von innerhalb der Sitzung mit dem Befehl exit beenden. Es kann jedoch vorkommen, dass Sie eine Screen-Sitzung von außerhalb der Sitzung beenden müssen, z. B. wenn eine Sitzung nicht reagiert oder Sie sie einfach schließen möchten, ohne sie wiederherzustellen (reattach).
Um eine bestimmte Screen-Sitzung von Ihrem ursprünglichen Terminal aus zu beenden, können Sie den Befehl screen -X -S [session_id] quit verwenden. Sie benötigen die Sitzungs-ID, die Sie mit screen -ls abrufen können.
Starten wir zunächst eine neue Screen-Sitzung, damit wir eine zum Beenden haben.
screen
Trennen Sie sich nun von dieser Sitzung mit Strg+A, d.
Ctrl+A, d
Listen Sie die laufenden Sitzungen auf, um die Sitzungs-ID zu erhalten.
screen -ls
Notieren Sie sich die Sitzungs-ID aus der Ausgabe (z. B. XXXXX.pts-X.labex).
Verwenden Sie nun den Befehl screen -X -S [session_id] quit, um die Sitzung zu beenden. Ersetzen Sie [session_id] durch die tatsächliche ID, die Sie notiert haben.
screen -X -S XXXXX.pts-X.labex quit
Sie sollten keine Ausgabe sehen, wenn der Befehl erfolgreich war.
Um zu bestätigen, dass die Sitzung beendet wurde, listen Sie die Screen-Sitzungen erneut auf.
screen -ls
Sie sollten eine Ausgabe sehen, die anzeigt, dass keine Screen-Sitzungen ausgeführt werden.
No Sockets in /run/screen/S-labex.
Diese Methode ist nützlich, um eine Screen-Sitzung zwangsweise zu beenden, wenn Sie nicht direkt darauf zugreifen können.
Zusammenfassung
Linux Screen ist ein wertvolles Werkzeug für die Verwaltung und Aufrechterhaltung persistenter Terminalsitzungen. Indem Sie verstehen, wie Sie Screen-Sitzungen erstellen, trennen (detach), auflisten, wiederherstellen (reattach) und beenden, können Sie langlaufende Prozesse ausführen, mit Teammitgliedern zusammenarbeiten und sicherstellen, dass Ihre kritischen Aufgaben weiterhin ausgeführt werden, auch wenn Sie nicht direkt mit dem Terminal verbunden sind. Dieses Tutorial hat die wesentlichen Konzepte und praktischen Beispiele für die Verwendung von Linux Screen behandelt und Sie mit dem Wissen ausgestattet, Ihre Produktivität zu steigern und Ihre terminalbasierten Arbeitsabläufe zu optimieren.