tmux ein Windowmanager für die Konsole

Die Konsole, die Manche auch als Kommandofenster oder Shell bezeichnen, ist für die Einen der furchtbar langweiligste und komplizierteste Weg irgendwas am System zu verändern. Für die Anderen ist es der Weg der ultimativen Macht und Kontrolle über ein System.

Standardmäßig öffnet man genau 1 Konsole und kann dort Befehle absetzt, Scripte starten oder Programme wie SSH starten und Verbindungen zu anderen Servern aufmachen. Braucht man mehr als nur eine Konsole, dann könnte man weitere Konsolen starten.

Nun gibt es aber Anwendungsszenarien, bei denen man mehrere Dinge parallel machen und sie auch im Auge behalten, oder nur 1 SSH Verbindung zu einem anderen Computer aufmachen möchte, dort aber ebenfalls mehrere Sessions mit z.B. unterschiedlichen Benutzern gleichzeitig starten, oder nicht jedes Mal warten müssen, bis ein Programm seine Arbeit erledigt hat, bevor man weiter machen kann. Und man möchte sich nicht für jede Aufgabe neu einloggen, wo man doch schon eigentlich eingeloggt ist. Hier kommt tmux ins Spiel.

Tmux ist ein sogenannter Terminal Multiplexer. Salopp ausgedrückt: Es vervielfältigt die aktuelle Konsole um weitere virtuelle Konsolen (Prozesse). Also aus einer einzigen Konsole werden viele Konsolen gemacht. Wenn man möchte.

  1. So gibt es zwei hauptsächliche Anwendungsszenarien. Die beide natürlich parallel nutzbar sind:
  2. Einerseits kann die (Text) Konsole in verschiedene Bereiche aufgeteilt werden, wie Fenster die auf einem grafischen Desktop nebeneinander und untereinander angeordnet werden.
    1. vertikale Aufteilung Strg+b+%
    2. horizontale Aufteilung Strg+b+"
    3. Wechseln zwischen den Fenstern Strg+b+<Pfeiltasten>
    4. In das Fenster “reinzoomen” maximieren und wieder zurück zur nomalen Ansicht mit Strg+b + z.

      Dabei unbedingt beachten: wenn die Strg Taste vor dem z nicht losgelassen wurde, dann interpretiert das System das als Strg+z und schiebt den gesamten tmux Prozess in den Hintergrund. Mit dem Befehl fg (foreground) kann tmux wieder in der Vordergrund geholt werden.

      Das alles ist Teil der “Job Kontrolle” mit dem Prozesse in den Hintergrund geschoben werden können und stammt aus einer Zeit, als nur ein Terminalfenster in einem Multitaskingsystem zur Verfügung stand. Auch wenn das Konzept sehr alt ist, ist es immer noch sehr praktisch.
  3. Andererseits kann man Konsolen (Sessions) hintereinander stapeln, so dass man immer nur eine Konsole zur Zeit sieht
    1. Neue Session (Vollbildfenster) erstellen Strg+b+c
    2. Wechsel zwischen den Sessions Strg+b+<Nummer> , beginnt mit 0,1,2,3


Alle diese Fenster kann man mit Strg+d oder einfach mit der Eingabe von exit wieder schliessen.

Will man tmux aber nicht schliessen, sondern sich z.B. von einem Server ausloggen, dort aber alle tmux Sessions offen halten, weil ein Prozess dort noch länger läuft, oder man mehrere Fenster angeordnet hat und Prozesse monitored, so kann man

  1. tmux einfach im Hintergrund weiterlaufen lassen mit Strg+b+d   (detach)
  2. später die Session wieder aufnehmen indem man in der Konsole tippt: tmux a      (attach)

Der Vorteil von tmux ist hier ganz klar, dass man nicht nur eine Session vervielfachen kann, sondern auch, dass bei einem Verbindungsabbruch, die Scripte und Programm, die man gestartet hat unbehelligt auf dem entfernten Server weiter laufen. Sobald man wieder Netz hat, verbindet man sich wieder mit dem Server und holt sich die Session mit tmux a (attach) wieder zurück.

Man sollte dabei im Hinterkopf behalten, dass tmux immer mit dem Benutzer und dessen Rechten neue Sessions aufmacht, mit der tmux gestartet wurde. Braucht man also z.B. viele root Sessions, so sollte man erst zum Benutzer root wechseln, bevor man tmux startet.

Tmux kann noch wesentlich mehr, inklusive einem Theming, wenn man die Farben und die Statuszeile anpassen möchte, oder alle Tasten komplett umkonfigurieren usw. Sehr gute Einstiegsseiten, um mehr darüber zu erfahren sind

  1. Ubuntuusers Wiki https://wiki.ubuntuusers.de/tmux/
  2. Tmux Entwickler Seite https://github.com/tmux/tmux/wiki

Meine persönliche .tmux.conf in meinem Benutzerverzeichnis /home/Benutzer/ sieht momentan so aus

Weitere hyperblog Artikel zum Thema

tmux

bash

Views: 14