Der Befehl “Bildschirm” um mehrere Shell-Sitzungen zu emulieren
Vorsicht
Dieser Artikel wurde mehr als vor einem Jahr veröffentlicht, Es gab Entwicklungen können.
Bitte berücksichtigen Sie dies.
Heute sehen wir, wie man es benutzt screen
.
Ich musste kürzlich Befehle ausführen, die eine sehr lange Dauer auf einem Remote-Server erwarteten. In meinem neusten Artikel, zB, Ich habe beschrieben, wie man Daten zwischen einem älteren NAS und einem modernen NAS per FTP überträgt. In diesem Fall habe ich verwendet wget
mit dem Thema -b
Ich habe den Prozess in den Hintergrund gestellt, damit ich die SSH-Sitzung trennen und den Prozess bis zum Ende fortsetzen konnte.
Um auch einen sehr langen Prozess in den Hintergrund zu stellen, fügen Sie einfach einen hinzu &
am Ende des Befehls. Leider bin ich sehr nachlässig und erwarte oft, dass der Befehl in kurzer Zeit eine Ausgabe zurückgibt, Während mir in Wirklichkeit klar wird, dass ich meine Zeit gespart hätte, wenn ich das verfluchte Zeichen am Ende des Befehls eingefügt hätte. Ein Beispiel?
~# updatedb &
Stattdessen möchten wir über die Zeiten sprechen, in denen wir denselben Befehlstyp ausgeführt haben, Doch dann zerbrach die Verbindung aus den unterschiedlichsten Gründen? Wer hat das nicht??
Zum Glück existiert es screen
das dies und noch viel mehr tut… und jetzt werden wir sehen.
Screen ist in der Lage, unendlich viele virtuelle Terminalfenster in einer einzigen Sitzung zu verwalten. Das bedeutet, dass wir, wenn wir mehrere Befehle auf einem Remote-Computer ausführen müssen, nicht für jeden ausgeführten Befehl eine SSH-Verbindung öffnen müssen. In einer Sitzung haben wir unendlich viele Möglichkeiten “Fenster” virtuelle und endlose Sitzungen.

Bildschirmprozesse bleiben auch dann aktiv, wenn wir die Hauptsitzung schließen, es sei denn, wir beenden sie freiwillig. Dies bedeutet, dass im Falle einer versehentlichen Verbindungsunterbrechung der Vorgang bis zum Ende fortgesetzt wird und wir problemlos die Verbindung zur abgebrochenen Sitzung wiederherstellen können.
Die Installation
Screen ist auf allen wichtigen Distributionen vorinstalliert. Überprüfen Sie, ob es in Ihren Paketen enthalten ist.
~# screen --version
Screen version 4.08.00 (GNU) 05-Feb-20
Für Architekturen basierend auf apt
:
~# apt install screen
Für Architekturen basierend auf rpm
:
~# yum install screen
Startbildschirm
Um eine Bildschirmsitzung zu starten, geben Sie einfach screen in eine Konsole ein.
~$ screen
Dieser Befehl erstellt eine Bildschirmsitzung, erstellt innerhalb der Sitzung ein neues virtuelles Fenster und startet eine Shell in diesem Fenster.
Nachdem wir die Sitzung gestartet haben, können wir durch Eingabe eine Liste mit Befehlen finden: Ctrl + a
?
.
Ed ecco l'Ausgang:
Command key: ^A Literal ^A: a
break ^B b license , removebuf =
clear C lockscreen ^X x reset Z
colon : log H screen ^C c
copy ^[ [ login L select '
detach ^D d meta a silence _
digraph ^V monitor M split S
displays * next ^@ ^N sp n suspend ^Z z
dumptermcap . number N time ^T t
fit F only Q title A
flow ^F f other ^A vbell ^G
focus ^I pow_break B version v
hardcopy h pow_detach D width W
help ? prev ^H ^P p ^? windows ^W w
history { } quit \ wrap ^R r
info i readbuf < writebuf >
kill K k redisplay ^L l xoff ^S s
lastmsg ^M m remove X xon ^Q q
^] paste .
" windowlist -b
- select -
0 select 0
1 select 1
2 select 2
3 select 3
4 select 4
5 select 5
6 select 6
7 select 7
8 select 8
9 select 9
I login on
O login off
] paste .
| split -v
:kB: focus prev
Geben Sie einer Sitzung einen Namen
Eine umbenannte Sitzung ist praktisch, wenn wir sie abrufen müssen. Zum Beispiel durch Umbenennen einer Sitzung “wget_debian” Anhand der Liste der aktiven Sitzungen erkennen wir auf einen Blick, dass wir in dieser Sitzung den Debian-ISO-Download gestartet haben.
~$ screen -S wget_debian
Machen Sie sich mit den Bildschirmfenstern vertraut
Wenn Sie eine Sitzung starten, erstellt screen ein virtuelles Fenster mit einer enthaltenen Shell.
Bildschirmfenster sind nicht mit Sitzungen zu verwechseln. Ein Fenster (alle gewünschten Fenster) ist in einer Sitzung enthalten, von dem Sie die Verbindung trennen können, ohne dass dadurch die enthaltenen Prozesse beendet werden.
Sie können mehrere Fenster in einer Bildschirmsitzung haben.
So erstellen Sie einen neuen virtuellen Fenstertyp Ctrl+a
c
und die erste Zahl von 0 a 9 wird zugewiesen.
Hier sind einige der gebräuchlichsten Befehle zum Verwalten von Bildschirmfenstern:
Ctrl + a
c
Erstellen Sie ein neues FensterCtrl + a
"
Zeigt eine Liste von Fenstern anCtrl + a
0
(Null) Wechseln Sie zum Fenster “0” (Ersatz “0” mit der Nummer des gewünschten FenstersCtrl + a
A
Benennen Sie das aktuelle Fenster umCtrl + a
S
Teilt den Teil des Bildschirms horizontalCtrl + a
|
Teilt den Teil des Bildschirms vertikalCtrl + a
tab
Fokus auf nächste Region verschiebenCtrl + a
Ctrl + a
Wechseln Sie vom vorherigen Fenster zum nächstenCtrl + a
Q
Schließen Sie alle RegionenCtrl + a
X
Schließen Sie die aktuelle Region
Ziehen Sie den Stecker heraus (ablösen) Ihr Terminal aus der aktuellen Sitzung
Ein Plus, wie gesagt, besteht darin, weiterarbeiten zu können, indem man die Bildschirmsitzungen im Hintergrund laufen lässt, während der Benutzer an etwas anderem arbeiten kann.
Ctrl + a
d
Wieder verbinden (fortsetzen) Ihr Terminal zu einer Sitzung
Um die Verbindung mit einer abgebrochenen Sitzung wiederherzustellen:
~$ screen -r
Wenn auf einem einzelnen Computer mehrere Sitzungen vorhanden sind, müssen Sie nach dem Argument auch die Sitzungs-ID hinzufügen -r
.
Um die ID der Sitzung zu ermitteln, zu der die Verbindung wiederhergestellt werden soll, verwenden Sie den folgenden Befehl:
~$ screen -ls
There are screens on:
13871.pts-3.joe-toshiba (29/11/2022 11:59:39) (Detached)
13836.pts-3.joe-toshiba (29/11/2022 11:59:20) (Detached)
13811.pts-3.joe-toshiba (29/11/2022 11:58:49) (Detached)
3 Sockets in /run/screen/S-joe.
Wenn wir zur Sitzung zurückkehren wollen 13836.pts-3
Wir geben den Befehl ein:
~$ screen -r 13836
Schlussfolgerungen
Heute haben wir gelernt, wie man mit screen mehrere Fenster in einer einzigen Sitzung erstellt, Sie können zwischen den Fenstern navigieren und die verschiedenen Sitzungen trennen und wieder verbinden… aber da ist viel mehr zu lernen su-Bildschirm.
0 Kommentare