15 Linux-Bildschirmbefehl für den Umgang mit Terminalsitzungen

Der Bildschirm oder GNU-Bildschirm ist ein Terminal-Multiplexer. Auf diese Weise können Sie eine beliebige Anzahl von konsolenbasierten Anwendungen, interaktiven Befehlsshells, kursbasierten Anwendungen usw. ausführen. Sie können den Bildschirm verwenden, um das Programm weiter auszuführen, nachdem Sie versehentlich close am Terminal oder sogar nach dem Abmelden und später wieder aufnehmen, wo immer Sie sind.

Ein praktisches example ist der Ort, an dem Sie eine Aufgabe auf einem Remote-Linux-Rechner ausführen, auf dem Sie eine SSH-Sitzung haben. Sie haben oft gesehen, dass diese SSH-Sitzung beendet wurde und Sie nicht mehr arbeiten können. Hier kommt das Bildschirm-Dienstprogramm, um die Sitzungen wieder aufzunehmen.

Wie funktioniert Bildschirm?

Wenn screen aufgerufen wird, erstellt es ein einzelnes Fenster mit einer Shell darin (oder dem angegebenen Befehl) und geht dann aus dem Weg, damit Sie das Programm wie gewohnt verwenden können. Dann können Sie jederzeit neue (Vollbild-)Fenster mit anderen Programmen darin (einschließlich mehr Shells) erstellen, das aktuelle Fenster beenden, eine Liste der aktiven Fenster anzeigen, Text zwischen Fenstern kopieren, zwischen Fenstern wechseln usw .

Screen verwaltet eine Sitzung, die aus einem oder mehreren Fenstern besteht, von denen jedes eine Shell oder ein anderes Programm enthält. Außerdem kann der Bildschirm eine Terminalanzeige in mehrere Bereiche unterteilen, von denen jeder den Inhalt eines Fensters anzeigt. Alle Fenster führen ihre Programme völlig unabhängig voneinander aus. Programme laufen weiter, wenn ihr Fenster gerade nicht sichtbar ist und sogar wenn die gesamte Bildschirmsitzung vom Terminal des Benutzers getrennt ist. Dies ist praktisch, um eine unfreiwillige ssh-Timeout-Sitzung zu verhindern.

Lassen Sie uns nun überprüfen, wie Sie dieses Dienstprogramm unter Linux verwenden.

1) Neue Fenster aufrufen

Wenn der Bildschirmbefehl noch nicht auf Ihrem System vorhanden ist, können Sie ihn mit dem folgenden Befehl installieren.

Auf Debian

# apt-get install screen

Auf Centos

# yum install screen

Sie können screen starten, indem Sie einfach screen an der Eingabeaufforderung eingeben. Dieser Bildschirmbefehl öffnet ein neues Fenster innerhalb des Bildschirms.

# screen

Sie können ein neues Fenster innerhalb des Bildschirms starten und dem Fenster auch einen Namen geben, z example hoch. Es erstellt eine Sitzung mit diesem Namen. Der Name kann zu einem späteren Zeitpunkt zum erneuten Anhängen verwendet werden.

# screen -S aloft

Beachten Sie, dass Sie Ihre gesamte Arbeit so erledigen können, wie Sie sich in der normalen CLI-Umgebung befinden.

2) Listen Sie alle Bildschirmprozesse auf

Da wir innerhalb des Bildschirms neue Fenster starten können, ist es möglich, die aktuell geöffneten Bildschirme einschließlich der im Hintergrund laufenden Bildschirme anzuzeigen. Es werden alle vorhandenen Bildschirmsitzungen aufgelistet.

# screen -ls
There is a screen on:
 10437.aloft (Attached)
1 Socket in /var/run/screen/S-root.

3) Hauptbefehl des Bildschirms

Mit einigen Befehlen ist es möglich, mit dem Bildschirm zu arbeiten. Wir werden unten die wichtigsten Befehle auflisten, die nützlicher sind.

  • Ctrl-a gefolgt von c: Erstellen Sie ein neues Fenster
  • Ctrl-a gefolgt von w: Liste aller aktuell geöffneten Fenster anzeigen
  • Ctrl-a gefolgt von A: Benennen Sie die aktuellen Fenster um. Der Name wird angezeigt, wenn Sie die Liste der mit geöffneten Fenster auflisten Ctrl-a gefolgt von w.
  • Ctrl-a gefolgt von n: gehe zu den nächsten Fenstern
  • Ctrl-a gefolgt von p: Gehe zu den vorherigen Fenstern
  • Ctrl-a gefolgt von Strg-a: zurück zu den zuletzt verwendeten Fenstern.
  • Ctrl-a gefolgt von einer Zahl von 0 bis X: Gehen Sie zum Fenster Nr. X.
  • Ctrl-a gefolgt von ": Wählen Sie die Fenster aus, in die Sie weitergehen möchten.
  • Ctrl-a gefolgt von k: close die aktuellen Fenster (kill)
  • Ctrl-a gefolgt von S: teilt die aktuellen Fenster horizontal auf. Um zwischen den Fenstern zu wechseln, tun Sie Ctrl-a gefolgt von Tab.
  • Ctrl-a gefolgt von |: die aktuellen Fenster vertikal teilen
  • Ctrl-a gefolgt von d: Trennen Sie eine Bildschirmsitzung, ohne sie zu stoppen
  • Ctrl-a gefolgt von r: eine getrennte Bildschirmsitzung erneut anhängen
  • Ctrl-a gefolgt von [: start the copy mode
  • Ctrl-a followed by ]: füge den kopierten Text ein

4) Bildschirmparameter anzeigen

Sie können alle Bildschirmparameter als Hilfe auflisten. Geben Sie dazu Ctrl-a gefolgt vom Zeichen ?. Es wird eine Liste aller Befehle angezeigt.

5) Sitzung trennen

Der größte Vorteil des screen-Befehls ist die Möglichkeit, eine Bildschirmsitzung zu trennen. Sie können eine Bildschirmsitzung auf einem Computer im Büro starten, die Sitzung vom lokalen Terminal trennen, nach Hause gehen, sich remote bei unserem Bürocomputer anmelden und die Bildschirmsitzung wieder an das Terminal unseres Heimcomputers anschließen. In der Zwischenzeit wurden alle Jobs auf Ihrem Bürocomputer weiter ausgeführt. Diese Funktion wird verwendet, um den Datenverlust zu verhindern, der plötzlich bei einer unterbrochenen SSH-Verbindung auftritt.

Um gut zu verstehen, wovon wir sprechen, lassen Sie uns eine example. Wir starten einen Installationsprozess.

Jetzt lösen wir den Bildschirm mit Ctrl-a gefolgt von d. Wir können mit dem folgenden Befehl überprüfen.

# screen -ls
There is a screen on:
 12449.win (Detached)
1 Socket in /var/run/screen/S-root.

Es ist möglich, den Bildschirm mit . abzunehmen screen -d Befehl gefolgt von der Bildschirm-ID oder ihrem Namen. Dies bedeutet, dass Sie ein anderes Fenster oder eine andere Konsole öffnen müssen, um die Sitzung zu trennen, wenn an der aktuellen Konsole ein Prozess ausgeführt wird. Sie müssen zuerst den aktuell angehängten Bildschirm auflisten.

# screen -ls
There is a screen on:
 13686.win200 (Attached)
1 Socket in /var/run/screen/S-root.

Geben Sie nun auf einem neuen Terminal den folgenden Befehl ein.

# screen -d 13686

oder Sie können den Namen verwenden

# screen -d win200

Sie erhalten eine Ausgabe wie unten, die anzeigt, dass der Bildschirm abgenommen wurde.

[remote detached from 13686.win200]

6) Eine Sitzung erneut anhängen

Nachdem Sie den Bildschirm abgenommen haben, können Sie ihn mit dem Befehl wieder anbringen. Normalerweise funktioniert Ihre Bildschirmsitzung noch, sodass alle Ihre Prozesse nicht gestoppt werden. Bevor Sie eine Sitzung erneut anhängen, müssen Sie die Sitzung wie oben beschrieben auflisten und dann die Sitzung auswählen, die erneut angehängt werden soll.

# screen -r 13686

oder du kannst verwenden

# screen -r win200

Sie können sehen, dass nach dem erneuten Anhängen der Sitzung die Fenster das Ende des Vorgangs anzeigen, der abgeschlossen ist. Das bedeutet, dass Sie an ssh arbeiten und eine Sitzung trennen können, die Sie zu Hause wieder anhängen, um Ihren Arbeitsprozess fortzusetzen, ohne etwas zu verlieren.

7) Erstellen Sie eine neue interaktive Shell

Wenn Sie einige Aufgaben zu erledigen haben und Ihre Arbeit nicht verlieren möchten, können Sie eine neue interaktive Shell erstellen. Sie können ganz einfach einige interaktive Shells (von 0 bis X nummeriert) in einem Terminalfenster öffnen. Wenn Sie eine neue Sitzung starten, befinden Sie sich in Shell 0.

Dazu müssen Sie innerhalb bestehender Fenster mit . neue Fenster erstellen Ctrl-a gefolgt von c. Sie werden etwas wie unten haben.

Sie können Bildschirm 3 oben im Screenshot sehen, der anzeigt, dass wir uns auf dem dritten Bildschirm befinden. Unten sehen wir auch 3

8) Wechseln zwischen Bildschirmfenstern

Wenn Sie mehr als ein Bildschirmfenster geöffnet haben, drücken Sie zum Umschalten zwischen den einzelnen Fenstern Control-a gefolgt von space oder die Nummer der Schale. Für example, um zu Shell Nummer 1 zu wechseln, drücken Sie Control-a dann 1. Für example, bewegen wir uns auf dem ersten Bildschirm.

Oben und unten im Screenshot sehen Sie, dass wir uns auf dem ersten Bildschirm befinden.

9) Fenster teilen

Um eine globale Ansicht Ihrer Arbeit zu erhalten, müssen Sie Ihre Fenster möglicherweise aufteilen, anstatt mehrere Fenster zu haben. Ctrl-a gefolgt von S oder | teilen Sie Ihren Bildschirm horizontal oder vertikal auf. Es ist möglich, den Vorgang ohne Einschränkung zu wiederholen. Um ein weiteres Fenster zu verschieben, verwenden Sie Ctrl-a gefolgt von Tab.

Wenn sich der Cursor auf den unteren Fenstern befindet, können Sie ein neues Fenster erstellen (Ctrl-a gefolgt von c) oder rufen Sie ein bestehendes Fenster auf (Ctrl-a gefolgt von einer Zahl).

Zu close ein geteiltes Fenster, verwenden Ctrl-a gefolgt von X (Beachten Sie, dass es sich um Großbuchstaben handelt).

10) Erneut eine Verbindung zu einer getrennten SSH-Sitzung herstellen

Wenn Sie sich zum ersten Mal anmelden,

  • run screen, um eine Bildschirmsitzung zu starten. Sie erhalten eine andere Shell, in der Befehle ausgeführt werden.
# screen -S remote_session
  • Wenn Sie fertig sind, trennen Sie die Bildschirmsitzung und melden Sie sich bei der ssh . ab
[detached from 20995.remote_session]
  • Sie können zuerst alle Bildschirmsitzungen auflisten
# screen -ls
There are screens on:
 20995.remote_session (Detached)
 14331.daby (Attached)
 14134.mom (Detached)
3 Sockets in /var/run/screen/S-root.
  • Verbinden Sie sich wieder mit Ihrer Bildschirmsitzung und setzen Sie Ihre Arbeit fort
# screen -d -r remote_ression

Der Befehl screen wird am häufigsten für ssh-Sitzungen verwendet, da er hilft, Ihre Arbeit nach einer Trennung fortzusetzen, ohne die aktuellen Prozesse zu verlieren.

11) In Bildschirmfenstern nach oben scrollen

Da screen die Verwaltung Ihrer Remote-Programme übernimmt, können Sie die Scrollfunktionen Ihres Terminalemulators nicht verwenden, während Sie screen ausführen. Sie müssen die Screen-Befehle verwenden, um auf den Scrollback-Puffer zuzugreifen.

  • Benutzen Ctrl-a gefolgt von escape
  • Drücken Sie die Up und Down Pfeiltasten oder die PgUp und PgDn -Tasten, um durch die vorherige Ausgabe zu blättern.

Sie können sehen, wo sich mein Cursor auf dem Screenshot befindet. Jedes virtuelle Terminal hat seinen eigenen Scrollback-Puffer.

12) Sehen Sie den Besitzer jeder Bildschirmsitzung

Der screen -ls oder screen -list Befehle zeigen Ihnen nur Ihre eigenen Bildschirmsitzungen, selbst für Root. Soweit ich weiß, ist das so gut wie es nur geht für den Bildschirm selbst.

Wenn Sie sehen möchten, welche Bildschirmsitzungen von welchen Benutzern gestartet wurden, schauen Sie in jedem Benutzerverzeichnis in /var/run/screen/.

# ls -lR /var/run/screen
/var/run/screen:
total 0
drwx------ 2 patrick patrick 60 Jun 17 20:47 S-patrick
drwx------ 2 root root 100 Jun 17 19:39 S-root

/var/run/screen/S-patrick:
total 0
srwx------ 1 patrick patrick 0 Jun 17 20:47 21941.pat_session

/var/run/screen/S-root:
total 0
srw------- 1 root root 0 Jun 9 16:45 14134.mom
srwx------ 1 root root 0 Jun 9 01:07 14331.daby
srwx------ 1 root root 0 Jun 17 20:46 20995.remote_session

13) Eine Bildschirmsitzung mit einem Konto teilen

Sie können zwei Personen von entfernten Standorten aus bei demselben Konto anmelden. Sie können ganz einfach eine Bildschirmsitzung teilen (also das, was der eine schreibt, der andere sieht und umgekehrt). Um dies zu tun:

  • Erstellen Sie eine benannte Bildschirmsitzung:
# screen -d -m -S share_session
  • An die Bildschirmsitzung in Ihrem Terminalfenster anhängen
# screen -x share_session
  • Lassen Sie die andere Person (im selben Konto angemeldet) auch an der Bildschirmsitzung anhängen
# screen -x share_session

an der anderen Stelle wird genau dieselbe Ausgabe angezeigt. Alles, was auf Ihrem Terminal erscheint, erscheint auch auf dem Terminal des anderen Benutzers.

14) Sperrbildschirmsitzung

Es ist möglich, die Bildschirmsitzung zu sperren, ohne Ihren normalen Sitzungsbenutzer zu sperren. Dies bedeutet, dass Sie Ihren Computer verlassen können und sicher sein können, dass niemand zu unbefugten Operationen kommt. Verwenden Sie dazu den Befehl Ctrl-a gefolgt von x (Beachten Sie, dass es sich um Kleinbuchstaben handelt).

Screen used by root <root> on centos-01.
Password:

15) Bildschirmsitzung beenden

Wenn Sie fertig sind und die Bildschirmsitzung beenden möchten, können Sie den Befehl verwenden Ctrl-a gefolgt von k. Sie werden zu einer Bestätigung aufgefordert.

Sie können auch den Exit-Befehl verwenden. Wenn Sie Ihren laufenden Prozess speichern möchten, können Sie Ihre Bildschirmsitzung einfach trennen, bevor Sie die Sitzung beenden.

Fazit

Das Bildschirmdienstprogramm kann ein Fenster auf Aktivität oder Inaktivität überwachen. Dies ist großartig, wenn Sie große Dateien herunterladen, kompilieren oder auf die Ausgabe warten. Zu diesem Zeitpunkt können Sie bei Bedarf sogar einen Prozess von einem Computer mit dem Bildschirmbefehl starten und ihn trennen, wenn Sie fertig sind.