Tmux

In letzter Zeit werde ich immer wieder eine Sache gefragt:

SSH ist ja ein tolles Ding, aber kann man nicht verhindern, dass alles abbricht, wenn man die Verbindung beendet?

Die Antwort ist einfach, auch wenn ich hier einen anderen Weg zeige, als in den E-Mails. Sie lautet ja!

Wobei, ssh selbst wird immer alles hinter sich abbrechen, wenn die Verbindung beendet wird. Das ist aber gar nicht schlimm, denn es gibt kleine Helfer, mit denen man das trotzdem regeln kann.

Bislang habe ich immer Screen für diesen Fall genannt. Nun dachte ich, stelle ich das Ding hier doch einmal vor. Da ich Screen aber eigentlich nur mit seinem minimalsten Können benutze dachte ich, da lese ich mich mal tiefer ein und gebe hier ein bisschen mehr Informationen.

Tja, da bin ich dann über Tmux gestolpert, habe es mir angeschaut und mir persönlich gefällt es besser. Das ist aber alles irgendwo Geschmacksache, aber ich habe mich jetzt dafür entschieden, hier Tmux vorzustellen.

Und so funktioniert es!

Zuerst muss Tmux installiert werden. Aber Achtung! Es muss dort installiert werden, wo es auch ausgeführt werden soll! Sprich, wenn ihr es auf einem Server betreiben wollt, dann muss es auf dem Server installiert werden!

Wie immer, ihr solltet wissen, wie man ein Programm bei eurer Distribution installiert. Unter Arch wäre es:

sudo pacman -S tmux

Tmux ist aber auch auf dem heimischen Rechner von Vorteil. Also ohne das man vorher mit ssh auf einen anderen Rechner muss. Dabei unterscheidet sich nur eine Sache! Auf einem entfernten Rechner muss man sich erst zum Beispiel mit ssh verbinden, auf dem lokalen Gerät natürlich nicht. Alles Andere ist gleich!

Man startet Tmux über einen Terminal. Irgendwie logisch. Dazu reicht es schon, wenn man

tmux

eingibt. Ja, es reicht, aber es hat seine Vorteile, wenn man der Session einen Namen gibt. Das geht dann so:

tmux new -s <name>

Warum das Sinn macht? Nun, wer sagt denn, dass man nur eine Session starten will? Vielleicht hat man ja mehrere laufen und wer ein wenig mit Tmux arbeitet, dem wird das wahrscheinlich auch passieren, denn Tmux eignet sich auch wunderschön, um etwas zu organisieren! Ihr werdet sehen!

Dann mal los!

tmux new -s tut

Ja schau an, so viel ist da ja gar nicht passiert, oder? Da unten ist so ein grüner Balken, aber was nun?

Ganz einfach. Tmux hat eine neue Session mit dem Namen tut gestartet und darin läuft, man glaubt es kaum, der bevorzugte Terminal! In meinem Fall eben Bash. Warum ich nicht zsh benutzte? Na ja, da hätten wir dann ein ganz anderes Thema!

Okay. Aber was bringt das jetzt? Ganz einfach. Alles, was da drin nun passiert, passiert auch weiterhin. Egal, ob man ssh, oder den lokalen Terminal einfach schliesst. Das zeug darin läuft weiter!

Um das zu verdeutlichen, starte ich htop, schliesse den Tab, öffne einen neuen und verbinde mich wieder mit der Session.

Das funktioniert immer, solange der entsprechende Rechner läuft. Bei einem Neustart hingegen wird auch Tmux und die Session beendet. Wer das aber auf einem Server einsetzt, dem sollte das wohl egal sein.

Das ist im Prinzip schon die ganze Magie hinter Tmux.

Doch es geht weiter!

Hier sei aber mal klar gesagt, ich gehe nicht auf die ganze Funktionsvielfalt und die ganzen Konfigurationsmöglichkeiten ein. Dann müsste ich das alles binden lassen und als Buch verkaufen. Ausserdem bin ich durchaus der Meinung, Learning by doing ist die beste Art, sich wirklich mit etwas vertraut zu machen. Hier will ich nur grundlegende Dinge erklären, die man im Hausgebrauch wohl am ehesten verwendet.

Ganz wichtig hierbei ist der Umgang mit Tmux. Der wird eigentlich gar nicht mit der Mouse gesteuert, sondern man benutzt dafür Kommandos, die man mit Tastenkombinationen eingibt.

Wer keine extra Konfiguration angelegt hat (wer es doch hat, braucht den Artikel wahrscheinlich auch gar nicht), der kommt mit der Standardkonfiguration daher und in dieser ist eines dominiertend.

Strg+b

Gibt man diese Kombination ein weiss Tmux, aha, da kommt jetzt ein Kommando.

Strg+b d

Zum Beispiel wird benutzt, um Tmux wieder zu verlassen. Dabei sei zu beachten, hier gibt es nur ein Einziges +! Das heisst, man drückt die Tasten nicht gleichzeitig!

  1. Strg+b
  2. d

Warum ich das so deutlich schreibe? Weil ich selbst bei meinen ersten Gehversuchen daran hängengeblieben bin und das Internet Abhilfe schaffen musste. Wie ich dabei gesehen habe, viele stellen diese Frage und das ist Grund genug, es auch zu erklären!

Tabs

Das kennt man aus den meisten Terminals und im Video hat man ja auch gesehen, dass ich Tabs verwendet habe. Tmux kann das auch.

Neuer Tab: Strg+b c

Vorher
Nachher

Hier haben wir also zwei Tabs. Tab 0 und Tab 1. Hinter Tab 1 ist dann noch ein * der anzeigt, in welchem Tab man sich gerade befindet.

Natürlich kann man auch zwischen den Tabs wechseln.

Vorheriger Tab: Strg+b p

Nächster Tab: Strg+b n

Man kann aber auch mit Strg+b <n> direkt in einen Tab springen. Dafür sind die Zahlen dann wieder gut!

Jetzt eine Ausnahmeerscheinung!

Tab schliessen: Strg+d

Ja genau, hier gibt man kein b ein!

Tab splitten

Etwas, was ich persönlich unglaublich praktisch finde, ist das splitten von Tabs. Dann hat man also mehrere Terminals in einem Tab und hat alles im Blick!

Als Beispiel nehme ich meinen Server daher. Da drauf laufen zwei verschiedene Minetest-Server. Ich habe meinen Tab in Tmux also horizontal gesplittet, links läuft der erste Server, Rechts der Zweite. So sehe ich auf einen Blick, ob irgendetwas nicht stimmt und muss nicht erst Tabs wechseln!

Tab horizontal splitten: Strg+b %

Tab vertikal splitten: Strg+b “

Zwischen gesplitteten Tabs wechseln: Strg+b <Pfeiltaste>

Dabei kann man auch geteilte Tabs weiter unterteilen. Das kann man ziemlich exzessiv treiben, aber irgendwann wird es unübersichtlich.

Man kann auch eine Reihe von vordefinierten Unterteilungen auswählen.

Strg+b Leertaste

und schon hat man verschieden gesplittete Tabs. Durch mehrmaliges drücken kann man diese durchschauen und nutzt dann den, der einem am Besten gefällt. Ich bin mir sicher, in den Einstellungen kann man das auch selbst definieren, habe ich aber nicht versucht.

Sonstiges

Wem das nun Lust gemacht hat, der kann mittels

Strg+b ?

sich eine Liste der verfügbaren Shortcuts anzeigen lassen. Da Scrollt man mit Bild hoch und Bild runter durch.

Zum guten Schluss gibt es auch noch die Kommandozeile mittels

Strg+b :

Auch damit kann man spielen. Einfach ausprobieren!

Fazit

Tmux ist eine ganz hervorragende Möglichkeit, auf dem lokalen Rechner, oder einem entfernten Server, Prozesse am Leben zu erhalten, auch wenn die Verbindung geschlossen wurde. Tmux ist einfach zu bedienen, wenn man die Geschichte mit den Shortcuts mal verstanden hat und die Fülle an Funktionen ist beeindruckend! Dazu noch die Möglichkeiten der Konfiguration, Spielkinder werden daran genauso ihren Spass haben wie diejenigen, die einfach nur auf einem entfernten System Prozesse am laufen halten wollen.

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert