So verwenden Sie tmux unter Linux (und warum es besser als Bildschirm ist)

Veröffentlicht: 2022-01-29
Ein stilisiertes Linux-Terminal auf einem Laptop mit Shell-Sessions im Hintergrund.
fatmawati achmad zaenuri/Shutterstock.com

Der Linux-Befehl tmux ist ein Terminal-Multiplexer, wie screen . Seine Befürworter sind zahlreich und lautstark, also haben wir uns entschieden, die beiden zu vergleichen. Ist tmux wirklich besser oder geht es nur darum, das zu bevorzugen, was Sie wissen?

tmux vs. Bildschirm

Sowohl die tmux als auch die GNU screen Befehle sind Terminal-Multiplexer. Sie ermöglichen es Ihnen, mehrere Fenster in einem einzigen Terminalfenster zu haben und zwischen ihnen hin und her zu springen. Ein Fenster kann in Bereiche unterteilt werden, von denen jeder Ihnen eine unabhängige Befehlszeile bietet.

10 grundlegende Linux-Befehle für Anfänger
VERWANDTE 10 grundlegende Linux-Befehle für Anfänger

Sie können eine Sitzung auch trennen und sie wird zu einer kopflosen Einheit, die im Hintergrund läuft – Sie können sogar das Terminalfenster schließen, das sie gestartet hat. Wenn Sie fertig sind, können Sie ein neues Terminalfenster öffnen und die noch laufende Sitzung erneut anhängen. Sie können dies auch über eine SSH-Verbindung tun.

Sie können eine Sitzung auf einem Computer trennen, nach Hause gehen und sich beim Remote-Computer anmelden. Wenn die Verbindung wiederhergestellt ist, können Sie die Hintergrundsitzung erneut anhängen und sie wieder interaktiv verwenden.

Was ist der Bildschirmbefehl?

Der screen ist auch ein Terminal-Multiplexer und vollgepackt mit Optionen. Alles, was Sie damit tun können, erfahren Sie in unserem ausführlichen Artikel.

Anzeige

Dieses Mal konzentrieren wir uns auf tmux . Im weiteren Verlauf werden wir erwähnen, wie der screen dieselbe Funktion oder Funktion handhabt.

Nur eines hat uns am screen . Wir werden das behandeln, wenn wir dazu kommen, und sehen, ob tmux besser abschneidet.

VERWANDT: So verwenden Sie den Bildschirmbefehl von Linux

tmux installieren

Während screen in gängigen Linux-Distributionen standardmäßig installiert ist, ist dies bei tmux nicht der Fall. Geben Sie Folgendes ein, um tmux unter Ubuntu zu installieren:

 sudo apt-get install tmux 

Auf Manjaro können Sie pacman verwenden:

 sudo pacman -Sy tmux 

Auf Fedora 31 ist tmux bereits installiert.

Starten einer tmux-Sitzung

Um tmux zu starten, geben Sie es einfach ein und drücken Sie die Eingabetaste:

 tmux 

Das Terminalfenster zeigt eine Statusleiste, wenn Sie sich in einer tmux Sitzung befinden.

Auf der rechten Seite der Statusleiste werden der Hostname sowie Uhrzeit und Datum angezeigt. Auf der linken Seite werden die folgenden sitzungsbezogenen Informationen angezeigt:

  • [0]: Dies ist der Sitzungsname. Standardmäßig sind sie nummeriert, beginnend mit Null. Im Folgenden erfahren Sie, wie Sie Sitzungen aussagekräftige Namen geben können.
  • 0:bash*: Die 0 zeigt an, dass dies das erste Fenster in dieser Sitzung ist. Der einzige Prozess, der in dieser Sitzung ausgeführt wird, ist bash . Wenn Sie ein Programm ausführen, wird sein Name hier angezeigt. Das Sternchen (*) bedeutet, dass dies das Fenster ist, das Sie betrachten. Jedes Mal, wenn Sie in einer tmux Sitzung ein neues Fenster erstellen, werden dessen Fensternummer und der Name des darin laufenden Programms zur Statusleiste hinzugefügt.

Der screen gibt Ihnen standardmäßig keine Statusleiste. Sie müssen blind fliegen und sich auf Ihren Verstand verlassen, um zu wissen, was los ist, was ein wenig Übung erfordert. (Es sei denn, Sie konfigurieren Ihre eigene Statusleiste.)

Auf der positiven Seite verlieren Sie keine Zeile mit Terminalfensterimmobilien. Natürlich würden Sie normalerweise Ihr Terminalfenster erweitern, damit sich die Verwendung eines Terminal-Multiplexers lohnt. In diesem Fall ist der Verlust einer Zeile für die Statusleiste kein großes Problem. Wir haben die Bilder der Terminalfenster hier in der Standardgröße belassen, damit Sie die Informationen sehen können.

Anzeige

Befehle werden mit Tastenanschlägen an tmux gegeben, und dies besteht aus zwei Teilen. Zuerst drücken Sie Strg+B, um die Aufmerksamkeit von tmux zu erregen. Sie drücken dann schnell die nächste Taste, um einen Befehl an tmux zu senden. Befehle werden durch Drücken von Buchstaben, Ziffern, Satzzeichen oder Pfeiltasten erteilt.

Dasselbe gilt für screen , außer dass Sie Strg+A drücken, um seine Aufmerksamkeit zu erregen.

Um das Fenster zu schließen, drücken Sie Strg+B und dann schnell X. Die Statusleiste wird gelb. Sie werden dann aufgefordert, zu bestätigen, dass Sie das Fenster beenden möchten.

Drücken Sie Y, um das Fenster zu schließen, oder N, wenn Sie Ihre Meinung ändern. Sie müssen danach nicht die Eingabetaste drücken; Y oder N reicht aus, um Ihre Wahl zu registrieren.

Wenn Sie Y drücken, schließt sich das Fenster. Da dies das einzige Fenster in dieser Sitzung ist, wird die Sitzung beendet.

Die tmux Sitzung wird geschlossen und Sie kehren zur Befehlszeile zurück, von der aus Sie tmux gestartet haben. Im Terminalfenster sehen Sie „[exited]“.

Anzeige

Dies mag so aussehen, als würde es das Offensichtliche sagen, aber es ist eine Bestätigung, dass Sie die Sitzung geschlossen und nicht getrennt und ausgeführt haben. Wir werden das Trennen von Sitzungen weiter unten besprechen.

Starten einer benannten tmux-Sitzung

Wenn Sie regelmäßig mehrere tmux Sitzungen starten, werden Sie schnell die Funktionalität zu schätzen wissen, jeder einen aussagekräftigen Namen zu geben. Sie können Sitzungen auch im screen benennen, aber sie werden nirgendwo in den Sitzungsfenstern angezeigt.

Um tmux mit einem Sitzungsnamen zu starten, verwenden Sie den Befehl new (neue Sitzung) und die Option -s (Sitzungsname). Unsere Sitzung wird „Geek-1“ heißen, also geben wir Folgendes ein:

 tmux neu -s geek-1 

Wenn die tmux -Sitzung geladen wird, wird „geek-1“ als erster Eintrag in der Statusleiste ganz links angezeigt.

Eine tmux-Sitzung mit dem Namen „geek-1“ auf der linken Seite der Statusleiste.

Weitere Fenster hinzufügen

Um in der aktuellen Sitzung ein neues Fenster zu erstellen, drücken Sie Strg+B und dann C. Sie erhalten in der aktuellen Sitzung ein leeres Terminalfenster. Damit in diesem neuen Fenster etwas ausgeführt wird, starten wir den Befehl dmesg mit der Option -w (follow):

 dmesg-w 

Jetzt haben wir zwei Fenster in der Sitzung; einer läuft top und der andere dmesg . Wir können jedoch nur jeweils einen sehen (mehr dazu gleich).

Anzeige

Werfen Sie einen Blick auf die linke Seite der Statusleiste. Wir befinden uns immer noch in der tmux -Sitzung „geek-1“. In Fenster Null läuft top und in Fenster Eins läuft dmesg . Das Sternchen (*) nach dmesg sagt uns, welches Fenster sichtbar ist.

Um zwischen den Fenstern zu wechseln, drücken Sie Strg+B und dann eine der folgenden Tasten:

  • N : Nächstes Fenster anzeigen.
  • P: Vorheriges Fenster anzeigen.
  • 0 bis 9: Zeigt ein Fenster mit den Nummern 0 bis 9 an.

Sie können auch ein Fenster aus einer Liste auswählen. Wenn Sie Strg+B und dann W drücken, wird eine Liste mit Fenstern angezeigt.

Um die gelbe Markierungsleiste zu verschieben, drücken Sie den Aufwärts- oder Abwärtspfeil, Pos1 oder Ende. Der untere Bereich des Displays zeigt eine Vorschau des Inhalts im markierten Fenster.

Drücken Sie die Eingabetaste, um zum markierten Fenster zu wechseln, oder die Esc-Taste, um die Fensterliste zu verlassen, ohne zu wechseln.

Sitzungen trennen und anhängen

Wenn Sie Strg+B und dann D drücken, trennen Sie die Sitzung. Es wird weiterhin im Hintergrund ausgeführt, aber Sie können es nicht sehen oder damit interagieren.

Anzeige

Wir haben in der Sitzung ganz top begonnen, also haben wir einen laufenden Prozess, mit dem wir demonstrieren können. Dann drücken wir Strg+B und dann D. Die Sitzung verschwindet und wird zu einer Hintergrundsitzung.

Wir kehren zum ursprünglichen Terminalfenster zurück. Es gibt eine Nachricht von tmux , die uns mitteilt, dass die Sitzung getrennt ist. Es erinnert uns auch an den Namen, den wir der Sitzung gegeben haben. Das ist praktisch, weil wir es verwenden, um es an eine Hintergrundsitzung anzuhängen und es dann zu einer interaktiven Sitzung wiederherzustellen.

Um eine getrennte Sitzung anzuhängen, verwenden wir den selbsterklärenden Befehl „ attach-session “ mit der Option „ -t “ (Zielsitzung). Wir geben auch den Namen der Sitzung an, die wir zurückrufen möchten.

Wir geben Folgendes ein:

 tmux Attach-Session -t Geek-1 

Unsere Sitzung kehrt zurück und wird wieder zu einer sichtbaren, interaktiven Sitzung.

Alle lang andauernden oder kontinuierlichen Prozesse, die Sie vor dem Trennen der Sitzung gestartet haben, werden weiterhin im Hintergrund ausgeführt (sofern sie nicht abgeschlossen sind), wenn Sie die Sitzung anhängen.

screen kann das, aber nicht so intuitiv.

Umgang mit mehreren Sitzungen

Lassen Sie uns ein weiteres Terminalfenster öffnen und eine neue tmux -Sitzung namens „geek-2“ starten:

 tmux neu -s geek-2 

In dieser Sitzung starten wir dmesg :

 dmesg-w 

Anzeige

Jetzt haben wir unsere ursprüngliche tmux -Sitzung „Geek-1“ und eine neue namens „Geek-2“.

Die Statusleiste zeigt uns, dass diese Sitzung „geek-2“ heißt und ein Fenster hat, in dem dmesg ausgeführt wird.

Wenn wir Strg+B und dann D drücken, trennen wir diese Sitzung.

Abgetrennte tmux-Sitzung geek-2 in einem Terminalfenster.

Zurück in der tmux -Sitzung „geek-1“ drücken wir Strg+B und dann S, um eine Liste der tmux Sitzungen anzuzeigen.

Um es klarzustellen, dies ist eine Liste von Sitzungen. Die ähnliche Anzeige, die wir zuvor gesehen haben, war eine Liste von Fenstern in einer einzelnen Sitzung.

Sie können die gelbe Markierungsleiste verschieben, indem Sie die Aufwärts- und Abwärtspfeile, die Pos1-Taste und die Ende-Taste drücken. Der untere Abschnitt zeigt eine Vorschau des Inhalts in der markierten Sitzung an.

Anzeige

Wenn Sie den Rechtspfeil drücken, werden die Fenster für die markierte Sitzung angezeigt.

Drücken Sie die Eingabetaste, um zur markierten Sitzung oder zum Fenster zu wechseln, oder Esc, um die Sitzungsliste zu verlassen, ohne die Sitzungen zu ändern. Wenn Sie eine neue Sitzung auswählen, wird Ihre aktuelle getrennt und die von Ihnen ausgewählte Sitzung angehängt.

Wir haben die Sitzung „Geek-2“ getrennt, bevor wir dies taten. Sie können dies jedoch mit Sitzungen tun, die noch mit ihren ursprünglichen Terminalfenstern verbunden sind. Wenn Sie dies tun, werden alle Bildschirmänderungen gleichzeitig in beiden tmux Sitzungen angezeigt.

Der screen kann dies ebenfalls über einen ähnlichen Befehlssatz tun.

Arbeiten mit Fensterscheiben

Wenn Sie Strg+B und dann doppelte Anführungszeichen („“) drücken, teilen Sie das Fenster horizontal in zwei Bereiche.

Dies betrifft nur das aktuelle Fenster; die anderen in der Sitzung werden nicht geändert. Wir haben den Befehl tmux ls im oberen Bereich verwendet, um die Fenster in dieser Sitzung aufzulisten. Es gibt zwei, und die Statuszeile sagt uns, dass wir uns in Fenster eins befinden. Wenn wir zu Fenster Null springen, indem wir Strg+B und dann 0 (Null) drücken, sehen wir, dass es genauso ist, wie wir es verlassen haben.

Anzeige

Dies sind zwei unabhängige Befehlszeilen, nicht zwei Ansichten in einem Fenster; Sie sind unterschiedliche und separate Schalen. Wir können dies zeigen, indem wir in jedem Bereich einen anderen Befehl ausführen.

Wir geben Folgendes ein:

uname -a

ls -hl

Um von einem Bereich zum anderen zu wechseln, drücken Sie Strg+B und dann entweder den Aufwärts-, Abwärts-, Links- oder Rechtspfeil.

Zwei verschiedene Befehle in zwei Fenstern in einer tmux-Sitzung in einem Terminalfenster.

Wenn Sie Strg+B und dann das Prozentzeichen ( %) drücken, wird der aktuelle Bereich vertikal geteilt.

Drücken Sie Strg+B und dann Q, damit tmux die Nummer jedes Bereichs kurz aufblinkt.

Diese Nummern werden in Eingabeaufforderungen und Nachrichten von tmux . Drücken Sie Strg+B und dann X, um das aktuelle Fenster zu schließen. Die Statusleiste wird gelb und Sie werden aufgefordert, zu bestätigen, dass Sie diese Bereichsnummer schließen möchten. Drücken Sie Y, um das Fenster zu entfernen, oder N, um alles so zu lassen, wie es ist.

Wenn Sie Y drücken, wird das Fenster entfernt.

Anzeige

Der screen hat auch Bereiche, aber auch diese sind weniger intuitiv zu verwenden. Was uns am screen ärgert, ist, dass wenn Sie eine Sitzung mit Fenstern trennen, diese verschwinden, wenn Sie diese Sitzung erneut anhängen. Das altert sehr schnell.

Ein Strg+B-Spickzettel

Wir haben unten einen Spickzettel mit den verschiedenen Befehlen eingefügt, die Sie in tmux verwenden können.

Sitzungsbefehle

  • S: Sitzungen auflisten.
  • $: Aktuelle Sitzung umbenennen.
  • D: Trennen Sie die aktuelle Sitzung.
  • Strg+B und dann ?: Hilfeseite in tmux .

Fensterbefehle

  • C: Erstellen Sie ein neues Fenster.
  • ,: Aktuelles Fenster umbenennen.
  • W: Listen Sie die Fenster auf.
  • N: Zum nächsten Fenster wechseln.
  • P: Zum vorherigen Fenster wechseln.
  • 0 bis 9: Geht zur angegebenen Fensternummer.

Bereichsbefehle

  • %: Erstellen Sie eine horizontale Teilung.
  • “: Erstellen Sie eine vertikale Teilung.
  • H oder Pfeil nach links: Zum Bereich auf der linken Seite bewegen.
  • I oder Pfeil nach rechts: Zum Bereich auf der rechten Seite wechseln.
  • J oder Abwärtspfeil: Zum unteren Bereich wechseln.
  • K oder Aufwärtspfeil: Zum oberen Bereich wechseln.
  • F : Fensternummern kurz anzeigen.
  • O: Gehen Sie der Reihe nach durch die Fenster. Jedes Drücken bringt Sie zum nächsten, bis Sie alle durchlaufen haben.
  • }: Vertauscht die Position des aktuellen Bereichs mit dem nächsten.
  • {: Vertauscht die Position des aktuellen Bereichs mit dem vorherigen.
  • X: Schließt das aktuelle Fenster.

Wie sie vergleichen

In Bezug auf die Funktionalität verhalten sich screen und tmux ähnlich und bieten die gleichen Hauptfunktionen. Es ist die Art und Weise, wie Sie auf diese Funktionen zugreifen, die sich deutlich unterscheidet. tmux bietet glattere und komfortablere Möglichkeiten, um zu den verschiedenen Funktionen zu gelangen. Das ist jedoch nicht der einzige Unterschied.

Die Möglichkeit, Sitzungen und Fenster in tmux umzubenennen, ist nett, und die Tatsache, dass die Fensterbereiche beibehalten werden, wenn Sie eine Sitzung erneut anhängen, ist ein Wendepunkt.

screen hingegen verliert Fenster vollständig, wenn Sie eine Sitzung trennen und wieder anhängen. Das ist fast schon ärgerlich genug, um das Ablösen von vornherein zu vermeiden.

tmux hat so viel mehr zu bieten, einschließlich seiner unglaublich flexiblen Skriptfähigkeiten. Du schuldest es dir selbst, es zu überprüfen.

RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten