TMUX – der CLI-Manager
TMUX ist ein Kunstwort für »terminal multiplexer« und ist bekannt dafür, dass es mehrere Terminal-Sessions zeitgleich aufbauen und verwalten kann. Seine größte Stärke besteht darin, eine abgebrochene Shell-Session verlustfrei wieder aufzunehmen.
In diesem Blogbeitrag möchte ich auf den praktischen Einsatz von TMUX eingehen und aufzeigen, wie man mit einigen Tastenkombinationen fast alle Funktionen von TMUX verwenden kann.
Installation
TMUX ist in den Repositories der gängigen Linux-Distributionen als Binary-Paket vorhanden. Der Quellcode selbst sowie weitere Installationsmöglichkeiten der Anwendung sind auf Github veröffentlicht worden.
Plattform | Installationsbefehl |
Debian/Ubuntu | apt install tmux |
RHEL/CentOS | yum install tmux |
openSUSE | zypper install tmux |
macOS (Homebrew) | brew install tmux |
TMUX-Session out-of-the-box
Das Arbeiten mit TMUX ist simpel. Um eine Session zu starten, muss man nichts weiter tun, als in der Kommandozeile den Befehl »tmux« einzugeben. Anschließend bekommt der Anwender eine »unscheinbare Statusleiste« am unteren Bildschirmrand angezeigt, die ihm signalisiert, dass TMUX aktiv ist.
Auf den ersten Blick erkennen wir keinen nennenswerten Unterschied. Wie gewohnt, befinden wir uns immer noch in unserer bevorzugten Shell-Umgebung. Dabei macht es keinen Unterschied, ob wir ZSH, BASH, KSH oder die PowerShell für Linux verwenden.
Die Besonderheit liegt in der »neu hinzugekommenen Funktionalität« und wird erst ersichtlich, wenn wir uns ein wenig mit den vorhandenen Möglichkeiten auseinandersetzen.
Statusleiste im Detail
Die Statusleiste am unteren Bildschirmrand liefert uns unterschiedliche Informationen. Es ist möglich, die Statusleiste nach den eigenen Wünschen anzupassen. Dabei kann man sich auch nur die Informationen anzeigen lassen, die einen interessieren.
Präfix und Tastenkombination
Befehle an TMUX werden üblicherweise mit einem »Präfix« eingeleitet, gefolgt von einer Tastenkombination für die gewünschte Aktion. Die Standardeinstellung für den »Präfix« in TMUX ist »CRTL + B«.
Beispiel
Ein üblicher Befehl würde z. B. wie folgt aussehen: »Präfix → [SHIFT] +2«. Damit würden wir unser aktives Fenster horizontal teilen.
Tastenkombination TMUX – Fenster
Ein paar Tastenkombinationen, die den Einstieg in TMUX erleichtern.
»Präfix → c«
»Präfix → 0-9«
»Präfix → &«
»Präfix → [Shift+2]«
»Präfix → [Shift+5]«
»Präfix → [Pfeiltaste]«
»Präfix → z«
»Präfix → x«
#neues Fenster in TMUX erstellen
#Fokus-Fenster „Fensterindex 0-9"
#schließt das aktuelle Fenster
#Fenster horizontal teilen
#Fenster vertikal teilen
#Navigation zwischen Fensterabschnitten
#Zoom in/out – Schalter
#schließt den aktuellen Fensterabschnitt
TMUX – grafische Übersicht
TMUX verfügt über eine grafische Darstellung aller geöffneten »Sessions«, »Windows« und »Panes«. Mit der Tastenkombination »Präfix → w«, kommt man in die Fenster-Darstellung.
Innerhalb des angezeigten Verzeichnisbaumes kann man sich mithilfe der »Pfeiltasten hoch« und »runter« auf und ab bewegen. Einträge mit einem »Plus-Zeichen« davor, können mit der »Pfeiltaste rechts« erweitert und mit einem »Minus-Zeichen«, über die »Pfeiltaste links« reduziert werden. Mit der Taste »Enter« wird die markierte Auswahl bestätigt.
Anstelle der Pfeiltasten kann man auch die angebotene »Direktwahl« verwenden. Für jeden vorhandenen Eintrag steht in den runden Klammern die Tastenkombination, die benutzt werden kann, um den entsprechenden Eintrag zu öffnen. Das Kürzel „M“ steht hierbei für die »Taste [ALT]«.
TMUX – Session & Server
TMUX erstellt für jede Session eine Log-Datei. Darüber ist es möglich jederzeit eine abgebrochene Session wieder aufzunehmen. Verbindungsabbrüche zum Server führen nicht zum sofortigen Verlust aller bisherigen gemachten Eingaben.
Es ist auch möglich eine aktive »TMUX-Session« in den Hintergrund zu legen und die Arbeit zu einem späteren Zeitpunkt weiter fortzusetzen.
Ob ein TMUX-Server gerade aktiv ist oder bereits einige TMUX-Sessions vorhanden sind, kann man sich mit dem „List-Befehl“ anzeigen lassen.
tmux ls #Sessions anzeigen
Möchten wir uns mit einer der existierende »TMUX-Session« verbinden, so verwenden wir den folgenden Befehl.
tmux attach -t [session-name] #Session öffnen
Der Befehl »tmux« erstellt uns eine neue Session mit den Standardvorgaben. Soll die Session einen bestimmten Namen haben, so müssen wir diesen mit angeben.
tmux new -s mySession #erstellt eine neue Sitzung
Mit der folgenden Tastenkombination können wir »TMUX« in den Hintergrund legen »Präfix → d«.
Über die Tastenkombination »Präfix → :« kommen wir in den „Befehlszeilenmodus von TMUX“. Damit kann man jeden Shell-Befehl ausführen und sich das Ergebnis in TMUX anzeigen lassen.
TMUX – kopieren und einfügen
Das Kopieren in TMUX ist vergleichbar mit dem Kopieren in VIM. Zuerst muss man in den entsprechenden Modus wechseln, anschließend den Text markieren und kopieren.
»Präfix → [«
»Präfix → ]«
»Taste [q]«
»[Pfeiltasten]«
»[CRTL] + [Leertaste]«
»[CRTL] + w«
#Kopiermodus aktivieren
#Letzten Text-Buffer einfügen
#Kopiermodus beenden
#Bewegt den Cursor
#Start Eingabe Text-Markierungsmodus
Markierten Text kopieren und Eingabe beenden
TMUX - Text-Buffer
Inhalte, die in TMUX kopiert wurden, werden in den »Text-Buffer« abgelegt. Diesen kann man sich mit der Tastenkombination »Präfix → =« anzeigen lassen.
Der »Text-Buffer« ist erst aufrufbar, nachdem etwas in den „Text-Buffer“ abgelegt worden ist.
»[ENTER] / Taste [p]«
»Taste [d]«
#Selektierten Buffer einfügen
#Selektierten Buffer löschen
TMUX vs Screen
Oft wird TMUX mit Screen verglichen oder gar damit erklärt. Das ist nicht verwunderlich, da beide Anwendungen »terminal multiplexer« sind und somit über vergleichbare Funktionen verfügen.
Zuerst war »Screen« dar und dann kam »TMUX«. Aus diesem Grund ist es nicht verwunderlich, dass die meisten mit dem Begriff „Screen“ etwas anfangen können, mit „TMUX“ aber nicht.
Es ist naheliegend, dass TMUX die Schwächen von Screen beheben soll und deswegen einige Features besitzt, die dem Anwender mehr Bedienungskomfort liefert als Screen selbst. Darüber hinaus kann man TMUX über die Konfigurationsdatei nach den eigenen Vorstellungen anpassen.
Aber auch in anderen Punkten gibt es Unterschiede. Da hätten wir das »Session-Management«. In TMUX haben wir eine visuelle Hilfsoberfläche, in der wir uns mühelos bewegen können und somit leicht zwischen einzelne »Sessions«, »Windows« und »Panes« umschalten können. Screen besitzt zwar auch einen »Session-Manager«, aber in einer viel schlichteren Form.
Dasselbe gilt auch für die individuellen Anpassungen der Anwendung. Während TMUX vielfältige Einstellungsmöglichkeiten für »Tastenkombination«, »Statusleiste« und sogar unterschiedliche Konfigurationen für verschiedene »Sessions« anbietet, beschränkt sich Screen auf »Tastenkombination« und »Shell Skript Integration«.
In puncto »Scripting« sind beide Anwendungen gleich auf, obwohl auch hier TMUX leicht die Nase vorne behält, indem es eine bessere Skript-Funktionalität anbietet.
In TMUX können wir die Sessions und Windows umbenennen. Wenn TMUX in den Hintergrund gelegt und anschließend wieder aufgenommen wird, sind alle vorherigen Panes noch vorhanden. Screen dagegen verliert seine Panes, wenn es in den Hintergrund gelegt wird.
Der letzte Punkt ist das Optische. TMUX glänzt mit seiner Statusleiste und biete den sauberen Look eines modernen Interfaces. Screen dagegen glänzt mit dem Charm eines Barebone-Systems. Durch die Konfigurationsdatei sind dennoch beide Anwendungen in der Gestaltung sehr flexibel. Es ist auch möglich, Screen nachträglich mit einer Statusleiste zu versehen.
Fazit
TMUX hat eine steilere Lernkurve, da man erst die ganzen Funktionalitäten der Anwendung kennenlernen muss. Hier punktet Screen mit seiner Simplizität. Auf der anderen Seite bietet TMUX eine Fülle an Features, womit Screen einfach nicht mithalten kann.
Zweifelsohne sind beide Anwendungen sehr leistungsstark und die persönliche Präferenz wird letzten Endes entscheiden, womit man arbeiten möchte.
TMUX Cheat-Sheet
Seminarempfehlungen
LINUX SYSTEMADMINISTRATION GRUNDLAGEN BS-02
Mehr erfahrenLINUX SYSTEMADMINISTRATION FÜR FORTGESCHRITTENE BS-12
Mehr erfahrenCI/CD IN DER CLOUD (KUBERNETES) P-CI-01
Mehr erfahrenConsultant bei ORDIX
Bei Updates im Blog, informieren wir per E-Mail.
Kommentare