GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Beispiele für Bildschirmbefehle zum Verwalten mehrerer Terminalsitzungen

In diesem Handbuch werden wir sehen, was GNU Screen ist und die grundlegende Verwendung des Screen-Befehls mit Beispielen in Linux- und Unix-Betriebssystemen.

Was ist GNU Screen?

GNU-Bildschirm ist ein Terminal-Multiplexer (Fenstermanager). Wie der Name schon sagt, multiplext Screen das physische Terminal zwischen mehreren interaktiven Shells, sodass wir in jeder Terminalsitzung unterschiedliche Aufgaben ausführen können.

Alle Bildschirmsitzungen führen ihre Programme völlig unabhängig voneinander aus. Ein Programm oder Prozess, das innerhalb einer Bildschirmsitzung ausgeführt wird, wird also weiter ausgeführt, selbst wenn die Sitzung versehentlich geschlossen oder getrennt wird.

Zum Beispiel beim Upgrade von Ubuntu Server über SSH, führt der Screen-Befehl den Upgrade-Prozess weiter aus, falls Ihre SSH-Sitzung aus irgendeinem Grund beendet wird.

Der GNU-Bildschirm ermöglicht es uns, auf einfache Weise mehrere Bildschirmsitzungen zu erstellen, zwischen verschiedenen Sitzungen zu wechseln, Text zwischen Sitzungen zu kopieren, jederzeit eine Sitzung anzuhängen oder von einer Sitzung zu trennen und so weiter.

GNU Screen ist eines der wichtigsten Befehlszeilentools, das jeder Linux-Administrator lernen und bei Bedarf verwenden sollte.

Lassen Sie uns anhand von Linux-Beispielen sehen, wie Sie mehrere Terminal-Sitzungen mit dem Screen-Befehl verwalten.

Installieren Sie GNU Screen unter Linux

GNU Screen ist in den Standard-Repositories der meisten Linux-Betriebssysteme verfügbar.

Um GNU Screen auf Arch Linux, EndeavourOS, Manjaro Linux zu installieren, führen Sie Folgendes aus:

$ sudo pacman -S screen

Unter Debian, Ubuntu, Linux Mint:

$ sudo apt-get install screen

Auf Fedora, RHEL, CentOS. AlmaLinux, Rocky Linux:

$ sudo dnf install screen

Oder,

$ sudo yum install screen

Unter CentOS 8 ist Screen in den offiziellen Repositories nicht verfügbar. Sie müssen also [EPEL] aktivieren Repository und dann Bildschirm installieren.

$ sudo dnf install epel-release
$ sudo dnf install screen

Unter SUSE/openSUSE:

$ sudo zypper install screen

Lassen Sie uns fortfahren und einige Beispiele für Bildschirmbefehle sehen.

Beispiele für Bildschirmbefehle

Die Standard-Präfix-Verknüpfung für alle Befehle in Screen ist Ctrl+a . Sie müssen diese Verknüpfung häufig verwenden, wenn Sie Screen verwenden. Merken Sie sich also einfach diese Tastenkombination.

Neue Bildschirmsitzung erstellen

Lassen Sie uns eine neue Bildschirmsitzung erstellen und daran anhängen. Geben Sie dazu im Terminal den folgenden Befehl ein:

screen

Führen Sie nun ein beliebiges Programm oder einen beliebigen Prozess in dieser Sitzung aus. Der laufende Prozess oder das laufende Programm wird auch dann weiter ausgeführt, wenn Sie von dieser Sitzung getrennt werden.

Von Bildschirmsitzungen trennen

Um sich innerhalb einer Bildschirmsitzung zu trennen, drücken Sie Strg+a und d . Sie müssen nicht beide Tastenkombinationen gleichzeitig drücken. Drücken Sie zuerst Strg+a und drücken Sie dann d . Nachdem Sie sich von einer Sitzung getrennt haben, sehen Sie eine Ausgabe wie die folgende.

[detached from 29149.pts-0.sk]

Hier, 29149 ist die Bildschirm-ID und pts-0.sk ist der Name der Bildschirmsitzung. Sie können Bildschirmsitzungen anhängen, trennen und beenden, indem Sie entweder die Bildschirm-ID oder den Namen der jeweiligen Sitzung verwenden.

Erstellen Sie eine benannte Sitzung

Sie können auch eine Bildschirmsitzung mit einem beliebigen benutzerdefinierten Namen Ihrer Wahl erstellen, der nicht dem Standardbenutzernamen entspricht, wie unten gezeigt.

screen -S ostechnix

Der obige Befehl erstellt eine neue Bildschirmsitzung mit dem Namen "xxxxx.ostechnix" und sofort daran anhängen. Um die aktuelle Sitzung zu trennen, drücken Sie Strg+a gefolgt von d .

Das Benennen von Bildschirmsitzungen kann hilfreich sein, wenn Sie herausfinden möchten, welche Prozesse in welchen Sitzungen ausgeführt werden. Wenn beispielsweise ein Setup-LAMP-Stapel in einer Sitzung vorhanden ist, können Sie ihn einfach wie unten benennen.

screen -S lampstack

Getrennte Sitzungen erstellen

Manchmal möchten Sie vielleicht eine Sitzung erstellen, diese aber nicht automatisch anhängen. Führen Sie in solchen Fällen den folgenden Befehl aus, um eine getrennte Sitzung mit dem Namen "senthil" zu erstellen :

screen -S senthil -d -m

Oder kurz:

screen -dmS senthil

Der obige Befehl erstellt eine Sitzung namens "senthil", wird aber nicht daran angehängt.

Bildschirmsitzungen auflisten

Führen Sie Folgendes aus, um alle laufenden Sitzungen (verbunden oder getrennt) aufzulisten:

screen -ls

Beispielausgabe:

There are screens on:
    29700.senthil   (Detached)
    29415.ostechnix (Detached)
    29149.pts-0.sk  (Detached)
3 Sockets in /run/screens/S-sk.

Wie Sie sehen können, habe ich drei laufende Sitzungen und alle sind getrennt.

Wenn es keine laufenden Bildschirmsitzungen gab, erhalten Sie eine Ausgabe wie unten.

No Sockets found in /run/screen/S-sk.

An Bildschirmsitzungen anhängen

Wenn Sie jederzeit an eine Sitzung anhängen möchten, z. B. 29415.ostechnix , führen Sie einfach Folgendes aus:

screen -r 29415.ostechnix

Oder,

screen -r ostechnix

Oder verwenden Sie einfach die Bildschirm-ID:

screen -r 29415

Um zu überprüfen, ob wir mit der oben genannten Sitzung verbunden sind, listen Sie einfach die offenen Sitzungen auf und überprüfen Sie.

screen -ls

Beispielausgabe:

There are screens on:
        29700.senthil   (Detached)
        29415.ostechnix (Attached)
        29149.pts-0.sk  (Detached)
3 Sockets in /run/screens/S-sk.

Wie Sie in der obigen Ausgabe sehen, sind wir derzeit an 29415.ostechnix angehängt Sitzung. Um die aktuelle Sitzung zu verlassen, drücken Sie Strg+a, d.

Verschachtelte Sitzungen erstellen

Wenn wir den Befehl „screen“ ausführen, wird eine einzelne Sitzung für uns erstellt. Wir können jedoch verschachtelte Sessions (eine Session innerhalb einer Session) erstellen.

Erstellen Sie zunächst eine neue Sitzung oder hängen Sie sie an eine geöffnete Sitzung an. Ich werde eine neue Sitzung mit dem Namen "nested" erstellen.

screen -S nested

Drücken Sie jetzt Strg+a und c innerhalb der Sitzung, um eine weitere Sitzung zu erstellen. Wiederholen Sie dies einfach, um eine beliebige Anzahl verschachtelter Screen-Sitzungen zu erstellen. Jeder Sitzung wird eine Nummer zugeordnet. Die Nummer beginnt bei 0 .

Sie können zur nächsten Sitzung wechseln, indem Sie Strg+n drücken und wechseln Sie zum vorherigen, indem Sie Strg+p drücken .

Hier ist die Liste wichtiger Tastenkombinationen zum Verwalten verschachtelter Sitzungen.

  • Strg+a ” -  Alle Sitzungen auflisten
  • Strg+a 0 - Wechseln Sie zu Sitzungsnummer 0
  • Strg+a n - Zur nächsten Sitzung wechseln
  • Strg+a p - Zur vorherigen Sitzung wechseln
  • Strg+a S - Aktuelle Region horizontal in zwei Regionen aufteilen
  • Strg+a l - Aktuelle Region vertikal in zwei Regionen aufteilen
  • Strg+a Q - Schließen Sie alle Sitzungen außer der aktuellen
  • Strg+a X - Schließen Sie die aktuelle Sitzung
  • Strg+a \ - Beenden Sie alle Sitzungen und beenden Sie Screen
  • Strg+a ? - Tastenkombinationen anzeigen. Um dies zu beenden, drücken Sie ENTER.

Sitzungen sperren

Screen hat eine Option, um eine Bildschirmsitzung zu sperren. Drücken Sie dazu Strg+a und x . Geben Sie Ihr Linux-Passwort ein, um den Bildschirm zu sperren.

Screen used by sk <sk> on ubuntuserver.
Password:

Sitzungen protokollieren

Möglicherweise möchten Sie alles protokollieren, wenn Sie sich in einer Bildschirmsitzung befinden. Drücken Sie dazu einfach Strg+a und H .

Alternativ können Sie die Protokollierung beim Starten einer neuen Sitzung mit -L aktivieren Parameter.

screen -L

Von nun an werden alle Aktivitäten, die Sie innerhalb der Sitzung durchgeführt haben, aufgezeichnet und in einer Datei namens screenlog.x gespeichert in Ihrem $HOME-Verzeichnis. Hier, x ist eine Zahl.

Sie können den Inhalt der Protokolldatei mit cat anzeigen Befehl oder beliebige Textbetrachter-Anwendungen.

Empfohlene Lektüre:

  • So zeichnen Sie alles auf, was Sie im Terminal tun

Autostart-Bildschirmsitzungen

Das automatische Starten von Screen-Sitzungen ist sehr hilfreich, wenn Sie einen lang andauernden Prozess über SSH ausführen. Wenn Sie aus irgendeinem Grund die Netzwerkverbindung verloren haben, wird der Prozess innerhalb der Screen-Sitzung im Remote-System weiter ausgeführt und Sie können sich erneut damit verbinden, wenn das Netzwerk wieder online ist. Informationen zum automatischen Starten eines Bildschirms beim Systemstart finden Sie unter folgendem Link.

  • So starten Sie die Bildschirmsitzung unter Linux beim Anmelden automatisch

Überprüfen Sie, ob Sie eine Bildschirmsitzung sind oder nicht

Wie Sie vielleicht bemerkt haben, sehen die normale Sitzung und die Bildschirmsitzung genau gleich aus. Sie sehen keinen offensichtlichen Hinweis darauf, ob Sie sich in der Bildschirmsitzung oder in der normalen Sitzung befinden. Um zu erfahren, ob Sie sich in einer Bildschirmsitzung befinden oder nicht, folgen Sie den Schritten im folgenden Link.

  • So überprüfen Sie, ob Sie sich in einer Bildschirmsitzung befinden oder nicht in Linux

Kill Screen-Sitzungen

Wenn eine Sitzung nicht mehr benötigt wird, beenden Sie sie einfach. So beenden Sie eine getrennte Sitzung mit dem Namen "senthil":

screen -r senthil -X quit

Oder,

screen -X -S senthil quit

Oder,

screen -X -S 29415 quit

Wenn es keine offenen Sitzungen gibt, sehen Sie die folgende Ausgabe:

$ screen -ls
No Sockets found in /run/screens/S-sk.

Weitere Einzelheiten finden Sie in den Manpages.

$ man screen

Es gibt auch ein ähnliches Befehlszeilenprogramm namens "Tmux" was den gleichen Job macht wie GNU Screen. Um mehr darüber zu erfahren, lesen Sie die folgende Anleitung.

  • Tmux-Befehlsbeispiele zum Verwalten mehrerer Terminalsitzungen

Linux
  1. Teilen von Linux-Terminalsitzungen mit Tmux und Screen

  2. Verwenden Sie den Bildschirmbefehl, um Terminalsitzungen in Ubuntu 20.04 zu verwalten

  3. 7 Beispiele für Linux-df-Befehle

  4. Beispiele für diskutil-Befehle im Mac-Terminal

  5. Wie kann ich mehrere Bildschirmsitzungen automatisch starten?

So verwenden Sie den Bildschirmbefehl unter Linux, um Terminals zu verwalten

So führen Sie mehrere Linux-Befehle gleichzeitig im Linux-Terminal aus

15 Linux sfdisk-Befehlsbeispiele zum Verwalten von Festplattenpartitionen

Beispiele für Bildschirmbefehle:Holen Sie sich die Kontrolle über das Linux / Unix-Terminal

ip-Befehlsbeispiele zum Verwalten von Netzwerken in Linux

ClusterSSH(cssh) – Verwalten Sie mehrere SSH-Sitzungen unter Linux