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

15 Linux-Bildschirmbefehl zum Behandeln von Terminalsitzungen

Der Bildschirm oder GNU-Bildschirm ist ein Terminal-Multiplexer. Damit können Sie eine beliebige Anzahl von konsolenbasierten Anwendungen, interaktiven Befehlsshells, kursbasierten Anwendungen usw. ausführen. Sie können screen verwenden, um das Programm weiter auszuführen, nachdem Sie das Terminal versehentlich geschlossen haben, oder sogar nachdem Sie sich abgemeldet haben und später fortsetzen, wo immer Sie sind.

Ein praktisches Beispiel ist, wenn Sie eine Aufgabe auf einem Remote-Linux-Computer ausführen, in dem Sie eine SSH-Sitzung haben. Sie haben oft gesehen, wie diese SSH-Sitzung beendet wurde und Sie nicht mehr arbeiten können. Hier kommt das Bildschirmdienstprogramm, um die Sitzungen fortzusetzen.

Wie funktioniert der Bildschirm?

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

Bildschirm verwaltet eine Sitzung bestehend aus einem oder mehreren Fenstern jede enthält eine Shell oder ein anderes Programm. Außerdem kann screen eine Terminalanzeige in mehrere Bereiche unterteilen , die jeweils den Inhalt eines Fensters anzeigen. Alle Fenster führen ihre Programme völlig unabhängig voneinander aus. Programme werden weiter ausgeführt, wenn ihr Fenster derzeit nicht sichtbar ist, und selbst wenn die gesamte Bildschirmsitzung vom Terminal des Benutzers getrennt ist. Dies ist praktisch, um ein unfreiwilliges SSH-Timeout der Sitzung zu verhindern.

Sehen wir uns nun an, wie dieses Dienstprogramm unter Linux verwendet wird.

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 den Bildschirm starten, indem Sie einfach an der Eingabeaufforderung screen eingeben. Dieser Bildschirmbefehl startet ein neues Fenster innerhalb des Bildschirms.

# screen

Sie können innerhalb des Bildschirms ein neues Fenster beginnen und dem Fenster auch einen Namen geben, zum Beispiel oben. Es erstellt eine Sitzung, die durch diesen Namen identifiziert wird. Der Name kann zu einem späteren Zeitpunkt wieder verwendet werden.

# screen -S aloft

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

2) Alle Screen-Prozesse auflisten

Da wir in der Lage sind, neue Fenster innerhalb des Bildschirms zu starten, ist es möglich, die aktuell geöffneten Bildschirme einschließlich der im Hintergrund laufenden Bildschirme anzuzeigen. Es listet alle vorhandenen Bildschirmsitzungen auf.

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

3) Hauptbefehl des Bildschirms

Es ist möglich, mit dem Bildschirm zu arbeiten, indem einige Befehle verwendet werden. Wir werden unten die wichtigsten Befehle auflisten, die nützlicher sind.

  • Ctrl-a gefolgt von c :Neues Fenster erstellen
  • 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 erscheint, wenn Sie die Liste der mit Ctrl-a geöffneten Fenster auflisten gefolgt von w .
  • Ctrl-a gefolgt von n :gehe zum nächsten Fenster
  • Ctrl-a gefolgt von p :zum vorherigen Fenster wechseln
  • 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 wechseln möchten.
  • Ctrl-a gefolgt von k :Aktuelles Fenster schließen (kill)
  • Ctrl-a gefolgt von S :Teilt das aktuelle Fenster horizontal. Um zwischen den Fenstern zu wechseln, führen Sie Ctrl-a aus gefolgt von Tab .
  • Ctrl-a gefolgt von | :Teilt das aktuelle Fenster vertikal
  • Ctrl-a gefolgt von d :Trennen Sie eine Bildschirmsitzung, ohne sie zu stoppen
  • Ctrl-a gefolgt von r :fügen Sie eine getrennte Bildschirmsitzung wieder hinzu
  • Ctrl-a gefolgt von [ :Kopiermodus starten
  • Ctrl-a gefolgt von ] :kopierten Text einfügen

4) Bildschirmparameter anzeigen

Sie können alle Parameter des Bildschirms als Hilfe auflisten. Geben Sie dazu Ctrl-a ein gefolgt von dem Zeichen ? . Es wird eine Liste aller Befehle angezeigt.

5) Sitzung trennen

Der größte Vorteil des Bildschirmbefehls 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 mit dem Terminal unseres Heimcomputers verbinden. 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 während einer unterbrochenen SSH-Verbindung auftritt.

Um besser zu verstehen, wovon wir sprechen, lassen Sie uns ein Beispiel nehmen. Wir starten einen Installationsprozess.

Jetzt lösen wir den Bildschirm mit Ctrl-a gefolgt von d . Wir können dies 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 screen -d abzutrennen 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 auf der aktuellen Konsole ein Prozess ausgeführt wird. Sie müssen zuerst den aktuell angeschlossenen 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 getrennt 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 nicht alle Ihre Prozesse gestoppt werden. Bevor Sie eine Sitzung erneut hinzufügen, müssen Sie die Sitzung wie oben beschrieben auflisten und dann die Sitzung auswählen, die erneut hinzugefügt werden soll.

# screen -r 13686

oder Sie können

verwenden
# screen -r win200

Sie können sehen, dass nach dem erneuten Verbinden der Sitzung die Fenster das Ende des abgeschlossenen Vorgangs anzeigen. Das bedeutet, dass Sie über 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 problemlos einige interaktive Shells (nummeriert von 0 bis X) in einem Terminalfenster öffnen. Wenn Sie eine neue Sitzung starten, befinden Sie sich in Shell 0 .

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

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

8) Zwischen Bildschirmfenstern wechseln

Wenn Sie mehr als ein Bildschirmfenster geöffnet haben, drücken Sie Ctrl-a, um zwischen den einzelnen Fenstern zu wechseln gefolgt von space oder die Nummer der Schale. Um beispielsweise zu Shell Nummer 1 zu wechseln, drücken Sie Ctrl-a dann 1 . Zum Beispiel bewegen wir uns auf dem ersten Bildschirm.

Der obere und untere Teil des Screenshots zeigt, dass wir uns auf dem ersten Bildschirm befinden.

9) Geteilte Fenster

Um eine globale Ansicht Ihrer Arbeit zu haben, 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. Der Vorgang kann unbegrenzt wiederholt werden. Um ein anderes 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 ein bestehendes Fenster aufrufen (Ctrl-a gefolgt von einer Zahl).

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

10) Verbinden Sie sich erneut mit einer getrennten SSH-Sitzung

Wenn Sie sich zum ersten Mal anmelden,

  • Bildschirm ausführen, um eine Bildschirmsitzung zu starten. Du bekommst eine andere Shell, führe darin Befehle aus.
# screen -S remote_session
  • Wenn Sie fertig sind, trennen Sie die Bildschirmsitzung und melden Sie sich bei 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 erneut mit Ihrer Bildschirmsitzung und setzen Sie Ihre Arbeit fort
# screen -d -r remote_ression

Der Bildschirmbefehl wird am häufigsten für SSH-Sitzungen verwendet, da er Ihnen hilft, Ihre Arbeit nach einer Verbindungsunterbrechung fortzusetzen, ohne dass die laufenden Prozesse verloren gehen.

11) In Bildschirmfenstern nach oben scrollen

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

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

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

12) Sehen Sie sich den Eigentümer jeder Bildschirmsitzung an

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

Wenn Sie sehen möchten, welche Bildschirmsitzungen von welchen Benutzern gestartet wurden, sehen Sie in den einzelnen Benutzerverzeichnissen in /var/run/screen/ nach .

# 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) Teilen einer Bildschirmsitzung mit einem Konto

Sie können zwei Personen von entfernten Standorten aus bei demselben Konto anmelden. Sie können ganz einfach eine Bildschirmsitzung teilen (also was der eine tippt, sieht der andere und umgekehrt). Dazu:

  • 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 (eingeloggt im selben Konto) ebenfalls an der Bildschirmsitzung teilnehmen
# screen -x share_session

Sie haben genau die gleiche Ausgabe, die an der anderen Stelle angezeigt wird. 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 den Benutzer der normalen Sitzung zu sperren. Das bedeutet, dass Sie Ihren Computer verlassen 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 Ctrl-a verwenden gefolgt von k . Sie werden zur 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.

Schlussfolgerung

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 aus mit dem Bildschirmbefehl starten und ihn trennen, wenn Sie fertig sind.


Linux
  1. Eine Anleitung zum Linux-Terminal für Anfänger

  2. Linux tty Command Tutorial für Anfänger (mit Beispielen)

  3. Meine Top 10 Terminal-Shortcuts für Linux

  4. Linux-äquivalenter Befehl für Open-Befehl auf Mac/Windows?

  5. Was ist das Äquivalent zum Linux-Dateibefehl für Windows?

Die 20 besten Linux-Terminalbefehle zum Ausprobieren für Anfänger

Beispiele für Bildschirmbefehle zum Verwalten mehrerer Terminalsitzungen

Installieren Sie das Windows-Subsystem für Linux mit einem einzigen Befehl

Bildschirmbefehl unter Linux erklärt

Verlaufsbefehl in Linux – Zeigen Sie den Verlauf des Linux-Terminals an

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