tmux
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
tmux 🇬🇧 ist ein Terminal-Multiplexer für die Kommandozeile, vergleichbar mit screen oder Terminator. tmux ermöglicht es, innerhalb eines Terminals oder einer Terminalemulation verschiedene virtuelle Konsolensitzungen zu erzeugen und zu verwalten. Sitzungen können getrennt ("detach") und später weitergeführt werden ("attach"). Mit tmux ist es möglich, Konfigurationen für unterschiedliche Zwecke zu definieren, sodass man die jeweils gewünschte Umgebung zur Verfügung hat.
Merkmale:
Client-Server Struktur
Darstellung mittels ncurses (und damit für die Konsole geeignet)
Horizontales und vertikales Aufteilen des Fensters
Fenster können frei vergrößert oder verkleinert werden
Statusleiste mit Informationen zu Sitzungen, Fenstern, Programmnamen, Hostname und Datum/Uhrzeit
Copy&Paste zwischen den verschiedenen Anwendungen
Verwaltung mehrerer "paste buffer"
Benennen und Finden von Sitzungen
Steuerung mittels Tastenkombinationen und Befehlen, sowie "Aliasen"
Tastaturbelegung frei wählbar
Gut dokumentierte Befehlsschnittstelle (manpage)
Anpassbar über die tmux.conf oder zur Laufzeit
Über Skripte steuerbar
Installation¶
tmux ist in den offiziellen Paketquellen enthalten und kann über das folgende Paket installiert werden [1]:
tmux (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install tmux
Oder mit apturl installieren, Link: apt://tmux
Bedienung¶
tmux wird über ein normales Terminal [2] gestartet:
tmux
Sollte kein Server gestartet sein, wird dieser automatisch mitgestartet. tmux kennt eine Reihe von Aufrufoptionen, die in der Manpage sehr gut beschrieben sind. Zum Starten von tmux mit Unterstützung für 256 Farben im Terminal und eigener Konfigurationsdatei wird z.B. folgender Befehl genutzt:
tmux -2 -f tmux.conf
Alternativ kann tmux mit einem Bash-Script (z.B. tmux.sh) gestartet werden, in der die jeweilige tmux.conf eingebunden wird[3]:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/bin/bash SESSION=main tmux="tmux -2 -f tmux.conf" # if the session is already running, just attach to it. $tmux has-session -t $SESSION if [ $? -eq 0 ]; then echo "Session $SESSION already exists. Attaching." sleep 1 $tmux attach -t $SESSION exit 0; fi # create a new session, named $SESSION, and detach from it $tmux new-session -d -s $SESSION $tmux new-window -t $SESSION:0 $tmux split-window -h -t $SESSION:0 $tmux new-window -t $SESSION:1 $tmux new-window -t $SESSION:2 $tmux new-window -t $SESSION:3 $tmux split-window -h -t $SESSION:3 $tmux new-window -t $SESSION:4 $tmux select-window -t $SESSION:0 $tmux attach -t $SESSION |
Beispiel für eine ~/tmux.conf mit Mausunterstützung:
setw -g mode-mouse on set -g mouse-resize-pane on set -g mouse-select-pane on set -g mouse-select-window on set -g history-limit 1000 set -g status-interval 1 set -g status-left '#H#[default]' set -g status-right '#(cut -d ” ” -f 1-4 /proc/loadavg)#[default] #%Y-%m-%d %H:%M:%S#[default]' setw -g monitor-activity on set -g visual-activity on
Beispiele¶
Auflisten aller aktuell laufenden tmux-Sitzungen:
tmux ls
Neue tmux-Sitzung mit dem Namen "hans" starten:
tmux new -s hans
Verbinden zur bestehenden Sitzung mit dem Namen "hans":
tmux attach -t hans
Beendet tmux-Server und -Clients und zerstört alle Sitzungen:
tmux kill-server
Kurztasten¶
Das Programm kann ausschließlich über Tastenkombinationen (engl.: "shortcuts") bedient werden. Die Kommandosequenz wird standardmäßig mit Strg + B eingeleitet, und die folgende Eingabe wird als weiteres Kürzel interpretiert.
X11-Selektion¶
Im Artikel screen auf Steroiden: tmux 🇩🇪 wird eine einfache Methode beschrieben, tmux mit der X11-Selektion zusammenarbeiten zu lassen. Dazu benötigt man xclip. Die nötigen Ergänzungen der ~/tmux.conf:
# damit xclip lokal arbeiten kann set-environment -g DISPLAY :0.0 # paste-buffer in die X11 selection bind C-c run "tmux show-buffer | xclip -i -selection primary" # X11 selection in den tmux paste-buffer bind C-v run "tmux set-buffer -- \"$(xclip -o -selection primary)\"; tmux paste-buffer"
Das fügt zu den tmux-Tastaturkommandos (Prefix Strg + B ) folgende hinzu:
X11 primary selection (Shortcuts) | |
Tastaturkürzel | Bedeutung |
Strg + C | aktuellen tmux paste-Puffer in die "X11 primary selection" schreiben |
Strg + V | Inhalt der "X11 primary selection" in den tmux-paste-Puffer übernehmen |
Das funktioniert so nicht in entfernten tmux-Sitzungen (z.B. per SSH mit X11-forwarding). Dann muss die DISPLAY-Variable in den tmux-panes explizit gesetzt werden.
Links¶
Projektseite 🇬🇧 mit Beispielen und ausführlicher Dokumentation
Manpage 🇬🇧
tmux mit Byobu nutzen 🇩🇪 - Artikel Pro-Linux, 01/2015
tmux – Das Kung-Fu der Terminal-Ninjas 🇩🇪 - Artikel Pro-Linux, 06/2014 (Reprint aus freiesMagazin 🇩🇪, 05/2014)
Terminal (Abschnitt „Weitere-Terminalprogramme“) Programmübersicht