Mit screen Fenster unter Linux verwalten - Tutorial

Wir schauen uns heute ein sehr wichtiges Linux-Werkzeug an. Der name des Programms ist screen und kann mit sudo apt-get install screen installiert werden. Wir werden heute screen mit seinen Basics kennenlernen und sehen, warum screen auf keinem Linux-System fehlen sollte.

Was ist screen und gibt es Alternativen dazu?

Screen ist mit anderen Worten TeamViewer in der Linux-Shell. Man kann mit anderen Nutzern quasi einen Screen teilen und Ihnen bei irgendetwas helfen und diese können direkt zuschauen. Vor allem wird es aber verwendet um mehrere Fenster in einem zu verwalten (quasi unter Windows mehrere Desktops). Ich persönlich habe screen schätzen gelernt, weil ich zeitintensive Aufgaben (Importieren von 300GB Daten in eine Datenbank) durchführen musste. Ich wollte sicherstellen, dass der Befehl auch ausgeführt wird, wenn die Internetverbindung abbricht und dennoch die volle Kontrolle jederzeit zu haben. Genau das gelingt spielerisch einfach mit screen.

Unter Windows gibt es auch diverse Programme dafür. Aber das kann man ja nicht wirklich vergleichen, da hier alles sich in unterschiedlichen Fenstern abspielt. Screen kann eben in NUR einem Fenster text-basiert alles darstellen.

Es gibt keine mir bekannte Alternative die an screen herkommt. Programme können von hause aus z.B. mit top & ausgeführt werden. Somit kann man ein Programm zwingen im Hintergrund aktiv zu sein. Das hat jedoch mehrere Nachteile:

  • die direkte Kontrolle (Beenden, Monitoring) über den Task fehlt
  • man kann nicht zurückspringen und das Programm steuern
  • das Programm läuft im Hintergrund und Log-Ausgaben sind somit verloren
  • wesentlich komplizierter auf mehrere Tasks zuzugreifen

Screen Grundlagen

Zunächst starten wir screen durch den gleichnamigen Befehl. Jetzt drückt ihr zunächst STRG+a. Danach lasst ihr die beiden Tasten wieder los und seid jetzt quasi im Befehl-Modus. Das STRG+a brauchen wir folglich für alle weiteren Befehle. Verfahrt also gleich ebenso wie hier an dieser Stelle.

Version anzeigen

Wir lassen uns jetzt die Version von screen anzeigen um screen kennenzulernen. Geht dazu in den STRG+a Modus und danach tippt ihr einmal auf v. Folglich der besseren Verständlichkeit halber mit STRG+a v abgekürzt.

Tastatur-Shortcuts

Wie gut zu erkennen ist, kommt man ohne Tastenkürzel nicht weit. Tippt STRG+a ? ein und ihr könnt einen Auszug aus den vorhanden Befehlen sehen.

Mehrere screens anlegen

Kommen wir jetzt dazu mehrere screens zu erstellen. Dazu starten wir im aktiven screen den Befehl top. Dieser screen dient also nun der Anzeige der CPU-Auslastung.

Wir fügen nun per STRG+a c einen neuen screen hinzu.

Jetzt haben wir also 2 screens offen. Um jetzt zum letzten screen zu gelangen, tippt einfach STRG+a n. Jetzt solltet ihr wieder die top-Auslastung sehen.

Tipp: STRG+a STRG+a bringt euch zum letzten screen zurück. Also sehr cool wenn ihr zwischen zwei screens einfach hin- und herspringen möchtet.

Tipp: STRG+a p bringt euch in die entgegensetzte Richtung. Quasi das Gegenstück zu STRG+a n.

Screens kontrollieren

w-Command

Wir erstellen zum testen 4 screens. Also wenn ihr oben alles befolgt habt, existieren bereits 2 screens. Daher STRG+a c und STRG+a c.

Eine kleine Übersicht könnt ihr mit STRG+a w anzeigen lassen. Der Stern * markiert den aktuellen screen. Wir sind also derzeit im screen Nummer 3. Die Nummerierung beginnt immer bei 0.

Wir wollen nun zum screen 1 wechseln. Dazu geben wir STRG+a 1 ein. Ihr solltet nun wieder die top-Auslastung sehen. STRG+a w sollte nun den Stern bei Nummer 1 anzeigen.

"-command

Neben dem einfachen w-Befehl, gibt es noch den "-Befehl (Hochkommata über der 2er-Taste). Dazu einfach STRG+a ".

Hier können wir schon viel einfacher sehen wo wir uns befinden und mit den Pfeiltasten nun sehr einfach einen anderen screen (z.B. 2) wählen.

Screens umbenennen

Per Standard sind alle screens als bash benannt. Dies macht in einer Übersicht wenig Sinn, wo man anhand des Namens entscheiden möchte welchen screen man gerne sehen möchte. Daher macht es Sinn eigene Namen zu vergeben. In der Nummer 1 läuft immer noch top. Also geben wir diesem einen solchen Namen. Dazu STRG+a 1 und danach STRG+a A. Jetzt statt bash einfach top tippen.

Jetzt nochmal schnell eine Übersicht mit STRG+a ".

Screen ausschalten

Wir wissen bereits wie man einen screen erzeugt und umbennent. Von Interesse kann aber auch das Löschen eines screens sein, z.B. wenn der darin befindliche Befehl unwichtig geworden ist. Dazu einfach den screen wählen mit z.B. STRG+a 0 und STRG+a k.

Jetzt schnell wieder die Übersicht aufrufen mit STRG+a ".

Tipp: mit STRG+a \ könnt ihr alle screens in einem Rutsch ausschalten. Macht nur wenig Sinn, aber ist damit immerhin möglich.

Screen sichern

Es kann auch vorkommen, dass man derzeit einen screen nicht mehr braucht, aber dennoch vielleicht in ferner Zukunft. Ein Löschen und wiederholtes Anlegen ist nicht zwingend erforderlich. Wir können einen screen sehr einfach quasi backupen und später wieder zugreifen. Hier ist es etwas unterschiedlich von der Anzahl an screens abhängig. Wenn ihr WinSCP nutzt und einfach die Verbindung schließt, dann wird der aktuelle screen automatisch attached. Also folgendes ist für euch dann sehr wichtig.

1 screen

Fangen wir mit nur einem aktiven screen an. Im screen einfach STRG+a d eingeben (d steht für detached). Das führt dazu, dass der aktive screen verlassen wird und gespeichert wird.

Nun sind wir außerhalb von screen. Um zurück in den screen-Modus zu kommen einfach STRG+a -r drücken und wir kommen zu unserem einzigen screen zurück. (r steht übrigens für reatach)

Mehrere screens

Bei mehrere screens müsst ihr zusätzlich die pid des screens auswählen. Angenommen wir haben 2 screens detached. Geben wir nun screen -ls ein, bekommen wir die detachten screens angezeigt.

Wollen wir einen der screens wieder öffnen müssen wir screen -r 42 eingeben. Hiernach reicht einmal der Klick auf die Tab-Taste zur Vervollständigung aus. Alternativ könnt ihr auch nur die pid eintippen, also screen -r 4277. Das reicht auch aus. Schickt den Befehl ab und ihr seid dann im screen mit der pid 4277.

Fazit

Screen ist essenziell wenn ihr in der Cloud ein Linux-System habt und gerne langläufige Prozesse verwalten wollt. Auch eignet es sich hervorragend zum Monitoring.

Kommentar schreiben

Kommentare: 5
  • #1

    McUnix (Donnerstag, 04 Dezember 2014 22:38)

    Wow schöne Zusammenfassung hier, hatte damals Probleme mit screen, weil ich von Windows kam. Am Anfang ist das mit der Kombo drücken zu Beginn echt trickreich. Aber nach einiger Zeit hat man das raus und das geht ganz gut intuitiv dann. Also für alle, die es lernen wollen, einfach immer nutzen!

    Also nochmal sehr gute Auflistung und Einleitung für das Linux Tool. Weiter so.

    Ganz lieben Gruß
    Mc

  • #2

    Peter Zorn (Dienstag, 09 Dezember 2014 11:44)

    Sehr ausführlich und auf den Punkt gebracht. Gute Arbeit. Für Einsteiger in Linux optimal mit Bildern versehen. Weiter so.

  • #3

    kwoxer (Mittwoch, 10 Dezember 2014 09:49)

    Danke danke =) Hört man sehr gern.

  • #4

    Pete (Mittwoch, 24 Dezember 2014 21:13)

    Gutes Tutorial. Würde aber auch gut ankommen wenn du es auf Englisch schreiben würdest. Aber gut das ist nunmal ein deutscher Blog. Daher ist es verständlich. Dennoch vielen Dank.

  • #5

    Hans Peter (Mittwoch, 24 Oktober 2018 15:05)

    Also quasi kann man zusammenfassen:
    - immer wennin der Konsole "screen -r" sagt, nichts vorhanden, dann screen starten mit "screen"
    - den aktuellen screen kann man via "STRG+a+d" jederzeit verlassen, screen bleibt dabei weiterhin vorhanden im Hintergrund
    - will man dann wieder hinein in den screen, einfach "screen -r"

    Cool danke dir für die sonstigen Infos