So verwenden Sie den Bildschirmbefehl von Linux
Veröffentlicht: 2022-01-29 Mit dem Linux screen
können Sie laufende Terminalanwendungen in den Hintergrund schieben und nach vorne ziehen, wenn Sie sie sehen möchten. Es unterstützt auch Split-Screen-Anzeigen und funktioniert über SSH-Verbindungen, selbst nachdem Sie die Verbindung getrennt und wieder hergestellt haben!
VERWANDT: 10 grundlegende Linux-Befehle für Anfänger
Was ist der Bildschirmbefehl?
Der screen
ist ein Terminal-Multiplexer und vollgepackt mit Optionen. Zu sagen, dass es viel kann, ist der Urvater der Untertreibung. Die Manpage umfasst über 4.100 Zeilen.
Im Folgenden sind die häufigsten Fälle aufgeführt, in denen Sie den screen
verwenden würden, und wir werden diese in diesem Artikel weiter behandeln:
- Die Standardoperation besteht darin, ein neues Fenster mit einer darin enthaltenen Shell zu erstellen, einen Befehl auszuführen und das Fenster dann in den Hintergrund zu verschieben (als „Trennen“ bezeichnet). Wenn Sie sehen möchten, wie es Ihrem Prozess geht, können Sie das Fenster wieder in den Vordergrund ziehen („reattach“) und erneut verwenden. Dies ist großartig für lange Prozesse, die Sie nicht versehentlich durch Schließen des Terminalfensters beenden möchten.
- Sobald Sie eine
screen
ausgeführt haben, können Sie neue Fenster erstellen und andere Prozesse darin ausführen. Sie können einfach zwischen den Fenstern wechseln, um deren Fortschritt zu überwachen. Sie können Ihr Terminalfenster auch in vertikale oder horizontale Bereiche aufteilen und Ihre verschiedenenscreen
in einem Fenster anzeigen. - Sie können eine Verbindung zu einem Remotecomputer herstellen, eine
screen
starten und einen Prozess starten. Sie können die Verbindung zum Remote-Host trennen und erneut verbinden, und Ihr Prozess wird weiterhin ausgeführt. - Sie können eine
screen
zwischen zwei verschiedenen SSH-Verbindungen teilen, sodass zwei Personen in Echtzeit dasselbe sehen können.
Bildschirm installieren
Um screen
auf Ubuntu zu installieren, verwenden Sie diesen Befehl:
sudo apt-get Installationsbildschirm
Verwenden Sie den folgenden Befehl, um screen
auf Manjaro zu installieren:
sudo pacman -Sy-Bildschirm
Auf Fedora geben Sie Folgendes ein:
sudo dnf Installationsbildschirm
Erste Schritte mit Bildschirm
Um den screen
zu starten, geben Sie ihn einfach wie unten gezeigt ein und drücken Sie die Eingabetaste:
Bildschirm
Sie sehen eine Seite mit Lizenzinformationen. Sie können die Leertaste drücken, um die zweite Seite zu lesen, oder die Eingabetaste, um zur Eingabeaufforderung zurückzukehren.
Sie bleiben an der Eingabeaufforderung und es scheint nicht viel passiert zu sein. Allerdings führen Sie jetzt eine Shell in einem Multiplex-Terminalemulator aus. Warum ist das gut? Nun, lassen Sie uns einen Prozess beginnen, der lange dauern wird, bis er abgeschlossen ist. Wir laden den Quellcode für den neuesten Linux-Kernel herunter und leiten ihn in eine Datei namens latest_kernel.zip
.
Dazu geben wir Folgendes ein:
curl https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.9.tar.xz > Latest_kernel.zip
Unser Download beginnt und die curl
Ausgabe zeigt uns den Fortschritt.
Wir können Ihnen kein Bild des nächsten Bits zeigen, da es sich um eine Tastenfolge handelt. Sie geben Strg+A ein, lassen diese Tasten los und drücken dann d, um den Bildschirm abzutrennen.
Der Download-Vorgang läuft noch, aber das Fenster, das den Download anzeigt, wird entfernt. Sie kehren zum Terminalfenster zurück, von dem aus Sie die screen
gestartet haben. Eine Meldung teilt Ihnen mit, dass ein screen
mit der Bezeichnung 23167.pts-0.howtogeek
getrennt wurde.
Sie benötigen die Nummer vom Anfang des Fensternamens, um es wieder anzuhängen. Wenn Sie es vergessen, können Sie immer die Option -ls
(Liste) verwenden, wie unten gezeigt, um eine Liste der getrennten Fenster zu erhalten:
Bildschirm -ls
Wenn Sie fertig sind, können Sie die Option -r
(reattach) und die Nummer der Sitzung verwenden, um sie wie folgt erneut anzuhängen:
Bildschirm -r 23167
Das Fenster, das im Hintergrund gearbeitet hat, wird jetzt in Ihr Terminalfenster zurückgebracht, als ob es nie verlassen worden wäre.
Wenn es sich um einen Prozess handelt, der bis zu seinem Abschluss durchlaufen wird, wird er schließlich abgeschlossen sein. Wenn es sich um einen kontinuierlichen Prozess handelt, möchten Sie ihn schließlich beenden. In jedem Fall können Sie am Ende des Prozesses exit
eingeben, um den screen
zu verlassen. Alternativ können Sie Strg+A und dann K drücken, um ein Fenster zwangsweise zu beenden.
Geben Sie den folgenden Befehl ein:
Ausfahrt
Sie kehren zu Ihrem vorherigen Terminalfenster zurück, das immer noch den Befehl anzeigt, den Sie zum erneuten Anfügen des Fensters verwendet haben. Da wir unser einziges getrenntes Fenster geschlossen haben, erhalten wir eine Meldung, dass der screen
beendet wird.
VERWANDT: So verwenden Sie curl zum Herunterladen von Dateien von der Linux-Befehlszeile
Benannte Bildschirmsitzungen verwenden
Sie können die Option -S
(Sitzungsname) verwenden, um Ihre screen
zu benennen. Wenn Sie anstelle der numerischen Identität der Sitzung einen einprägsamen Namen verwenden, ist es bequemer, sich erneut mit einer Sitzung zu verbinden. Wir geben Folgendes ein, um unsere Sitzung „bigfile“ zu nennen:
screen -S große Datei
Wenn der screen
unsere Sitzung startet, sehen wir ein leeres Fenster mit einer Eingabeaufforderung. Wir werden eine große Datei herunterladen, damit wir einen lang andauernden Prozess als Beispiel verwenden können.
Wir geben Folgendes ein:
curl http://ipv4.download.thinkbroadband.com/1GB.zip > bigfile.zip
Wenn der Download beginnt, drücken wir Strg+A und dann D, um die Sitzung zu trennen. Wir geben Folgendes ein, um die Option -ls
(Liste) mit screen
zu verwenden, um die Details unserer getrennten Sitzung anzuzeigen:
Bildschirm -ls
Hinter der numerischen Kennung (23266) sehen wir den Namen unserer Sitzung (Bigfile). Wir geben Folgendes ein, einschließlich des Namens der Sitzung, um sie erneut anzuhängen:
screen -r große Datei
Wir sind wieder mit unserem Download-Fenster verbunden und sehen, dass der lange Download noch läuft.
Wenn der Download abgeschlossen ist, geben wir exit
ein, um das Sitzungsfenster zu schließen.
Verwenden des Bildschirms mit mehreren Fenstern
Bisher haben wir screen
verwendet, um einen einzelnen Prozess in einem separaten Fenster in den Hintergrund zu stellen. Der screen
kann jedoch noch viel mehr. Als Nächstes führen wir einige Prozesse aus, mit denen wir einige Aspekte unseres Computers überwachen können.
Wir geben Folgendes ein, um eine Bildschirmsitzung namens „Monitor“ zu starten:
Bildschirm -S-Monitor
An der Eingabeaufforderung in unserer neuen Fenstersitzung starten wir dmesg
und verwenden die Optionen -H
(für Menschen lesbar) und -w
(auf neue Nachrichten warten). Dies zeigt die Kernel-Puffermeldungen an; Neue Nachrichten werden angezeigt, sobald sie auftreten.
Wir geben Folgendes ein:
dmesg -H -w
Die vorhandenen Meldungen werden angezeigt. Wir kehren nicht zur Eingabeaufforderung zurück, da dmseg
auf neue Nachrichten wartet und diese anzeigt, sobald sie eintreffen.
VERWANDT: Verwendung des dmesg-Befehls unter Linux
Wir möchten eine andere Anwendung ausführen, daher benötigen wir ein neues screen
. Wir drücken Strg+A und dann C, um ein neues Fenster zu erstellen. Wir werden watch
verwenden, um vmstat
wiederholt auszuführen, sodass wir eine häufig aktualisierte Anzeige der Nutzung des virtuellen Speichers auf unserem Computer erhalten.
An der neuen Eingabeaufforderung geben wir Folgendes ein:
vmstat ansehen
Die Ausgabe vmstat
wird alle zwei Sekunden angezeigt und aktualisiert.
Unsere beiden Prozesse laufen jetzt. Um zwischen den screen
zu wechseln, drücken Sie Strg+A und die Nummer des Fensters. Das erste, das wir erstellt haben, ist Fenster Null (0), das nächste ist Fenster 1 und so weiter. Um zum ersten Fenster (dem dmesg
-Fenster) zu springen, drücken wir Strg+A und 0.
Wenn wir Strg+A und 1 drücken, gelangen wir zurück zum vmstat
Fenster.
Das ist ziemlich raffiniert! Wir können Strg+A und dann D drücken, um uns von dieser Sitzung zu trennen; wir können später wieder anhängen. Beide Sessions laufen noch. Um zwischen den Fenstern zu wechseln, drücken wir erneut Strg+A und die Nummer (0 oder 1) des Fensters, zu dem wir wechseln möchten.
Lassen Sie uns zum nächsten Schritt übergehen und beide Bildschirme in einem Fenster anzeigen. Wenn Sie dies tun, strecken Sie Ihr Terminalfenster auf eine Größe, die diesen Schritt sinnvoll macht. Unsere Beispiele sind auf die Größe unserer Screenshots beschränkt, sodass unsere Fenster etwas beengt aussehen.
Dazu drücken wir Strg+A und dann Umschalt+S (ein großes „S“ ist erforderlich).
Das Fenster teilt sich in zwei „Bereiche“.
Der obere Bereich zeigt immer noch vmstat
an und der untere Bereich ist leer. Der Cursor ist im Screenshot unten hervorgehoben. Um es in den unteren Bereich zu verschieben, drücken wir Strg+A und dann Tab.
Der Cursor bewegt sich in den unteren Bereich, der eigentlich nur ein leerer Raum ist. Es ist keine Shell, also können wir nichts hineintippen. Um eine nützliche Anzeige zu erhalten, drücken wir Strg+A und dann „0“, um das dmesg
Fenster in dieser Region anzuzeigen.
Dadurch erhalten wir beide Live-Ausgaben in einem geteilten Fenster. Wenn wir Strg+A und D drücken, um das Fenster zu lösen, und es dann wieder anfügen, verlieren wir die Split-Pane-Ansicht. Wir können es jedoch mit den folgenden Tastenkombinationen wiederherstellen:
- Strg+A, S: Fenster horizontal teilen.
- Strg+A , Tab: In den unteren Bereich verschieben.
- Strg+A, 0: Fenster Null im unteren Bereich anzeigen.
Wir können sogar noch einen Schritt weiter gehen. Wir teilen jetzt den unteren Bereich vertikal und fügen der Anzeige einen dritten Prozess hinzu. Mit dem Cursor im unteren Bereich drücken wir Strg+A und C, um ein neues Fenster mit einer Shell darin zu erstellen. Der untere Bereich zeigt das neue Fenster und gibt uns eine Eingabeaufforderung.
Als nächstes führen wir den Befehl df
aus, um die Nutzung des Dateisystems zu überprüfen:
df
Wenn wir sehen, dass df
läuft, drücken wir Strg+A und das Pipe-Zeichen (|)
. Dadurch wird der untere Bereich vertikal geteilt. Wir drücken Strg+A und Tab, um in die neue Region zu wechseln. Als nächstes drücken wir Strg+A und 0, um das dmesg
Fenster anzuzeigen.
Sie können sich auch von Region zu Region bewegen und weitere vertikale oder horizontale Teilungen hinzufügen. Hier sind einige weitere nützliche Tastenkombinationen:
- Strg+A: Springt zwischen der aktuellen und vorherigen Region hin und her.
- Strg+A, Q: Schließt alle Regionen außer der aktuellen.
- Strg+A, X: Aktuelle Region schließen.
Bildschirm über SSH verwenden
Mit screen
können Sie eine Fenstersitzung starten, sie trennen, sodass sie weiterhin im Hintergrund ausgeführt wird, sich abmelden oder wieder anmelden und die Sitzung erneut anhängen.
Stellen wir mit dem Befehl ssh
von einem anderen eine SSH-Verbindung zu unserem Computer her. Wir müssen den Namen des Kontos angeben, mit dem wir uns verbinden, und die Adresse des Remote-Computers.
Für unser Beispiel geben wir Folgendes ein:
ssh [email protected]
Nachdem wir uns auf dem Remote-Computer authentifiziert und angemeldet haben, geben wir Folgendes ein, um eine screen
namens „ssh-geek“ zu starten:
screen -S ssh-Geek
Zu Demonstrationszwecken laufen wir top
im screen
, aber Sie können jeden lang andauernden oder endlosen Prozess starten.
Wir geben Folgendes ein:
oben
Sobald top
im Fenster läuft, drücken wir Strg+A und dann D, um das Fenster zu trennen.
Wir kehren zum ursprünglichen Remote-Terminal-Fenster zurück.
Wenn wir wie unten gezeigt exit
eingeben, wird die SSH-Sitzung getrennt und wir sind wieder auf unserem lokalen Computer:
Ausfahrt
Wir geben Folgendes ein, um die Verbindung wiederherzustellen:
ssh [email protected]
Nachdem wir wieder verbunden und angemeldet sind, können wir Folgendes eingeben, um die screen
wieder anzuhängen:
screen -r ssh-geek
Wir sind jetzt wieder mit unserer noch laufenden Instanz von top
.
Dies ist großartig, wenn Sie einen Prozess auf einem Computer starten und dann dort weitermachen möchten, wo Sie auf einem anderen aufgehört haben.
VERWANDT: So erstellen und installieren Sie SSH-Schlüssel aus der Linux-Shell
Teilen einer Bildschirmsitzung
Sie können auch eine screen
verwenden, damit zwei Personen dasselbe Fenster sehen und damit interagieren können. Nehmen wir an, jemand, der Fedora auf seinem Computer ausführt, möchte sich mit unserem Ubuntu-Server verbinden.
Er würde Folgendes eingeben:
ssh [email protected]
Nachdem er verbunden ist, startet er eine Bildschirmsitzung namens „ssh-geek“ mit der Option -S (Sitzungsname). Er verwendet auch die Optionen -d
(trennen) und -m
(erzwungene Erstellung), um eine neue screen
zu erstellen, die bereits getrennt ist.
Er tippt folgendes ein:
screen -d -m -S ssh-Geek
Er gibt Folgendes ein und verwendet die Option -x
(Multiscreen-Modus), um die Sitzung anzuhängen:
screen -x ssh-geek
Auf einem Manjaro-Computer verbindet sich eine andere Person mit denselben Anmeldedaten mit dem Ubuntu-Computer, wie unten gezeigt:
ssh [email protected]
Sobald sie verbunden ist, gibt sie den screen
ein und verwendet die Option -X (Multiscreen-Modus), um derselben Fenstersitzung beizutreten, etwa so:
screen -X ssh-Geek
Nun, alles, was eine Person eingibt, wird die andere sehen. Wenn beispielsweise eine Person den Datumsbefehl ausgibt, sehen beide ihn so, wie er eingegeben wird, sowie seine Ausgabe.
Beide Personen teilen sich jetzt eine screen
, die auf einem entfernten Ubuntu-Computer ausgeführt wird.
Für eine Software, die 1987 zum ersten Mal das Licht der Welt erblickte, bietet der screen
immer noch einen guten Produktivitätsschub. Es ist gut investierte Zeit, sich damit vertraut zu machen!
VERWANDT: 37 Wichtige Linux-Befehle, die Sie kennen sollten
Linux-Befehle | ||
Dateien | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konvertieren · rclone · shred · srm | |
Prozesse | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
Vernetzung | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten