Ubuntu 14.04 Trusty Tahr
Ubuntu 12.04 Precise Pangolin
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
tmux ist in den offiziellen Paketquellen enthalten und kann über das folgende Paket installiert werden [1]:
tmux (universe)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install tmux
sudo aptitude install tmux
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
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
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.
Einige ausgewählte Tastaturkürzel (Shortcuts) | |
Tastaturkürzel | Bedeutung |
? | Anzeige aller aktiven Tastaturkürzel (keybindings) |
D | (detach) Trennen der akt. Sitzung (Client) und in den Hintergrund verschieben |
S | (switch) Wechseln zwischen verschiedenen Sitzungen (Client) |
C | (create) Erzeugen eines neuen Fensters (Shell) |
& | Beenden der aktuellen Fensters, muss mit y bestätigt werden |
, | Umbenennen des aktuellen Fenstertitels |
L | (last) Wechseln zum letzten aktiven Fenster (ist durch - markiert) |
P | (previous) Wechsel zum vorherigen Fenster (z.B. von 3 nach 2) |
N | (next) Wechsel zum nächsten Fenster |
1 etc. | Wechsel zur Fenster-Nr. |
" | Aktuelle Fensterscheibe (pane) horizontal teilen (erzeugt weitere Fensterscheiben) |
% | Aktuelle Fensterscheibe (pane) vertikal teilen (erzeugt weitere Fensterscheiben) |
W | Liste der Fenster anzeigen, Fenster wechseln |
& | Aktuelles Fenster schließen |
Die aktive Fensterscheibe (pane) wechseln | |
Wechsel zwischen verschiedenen Aufteilungen der Fensterscheibe (pane) | |
! | Die aktuelle Fensterscheibe (pane) aus dem Fenster lösen und ein neues Fenster mit dieser Fensterscheibe erstellen |
[ | Scroll-Modus aktivieren, in dem Pfeiltasten zum Scrollen benutzt werden können |
+ ⇧ | Für den Kopiermodus mit der Maus (mouse-mode ), wenn auch mouse-select-pane und/oder mouse-select-window verwendet werden |
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.
Projektseite mit Beispielen und ausführlicher Dokumentation
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 Programmübersicht
Diese Revision wurde am 8. Februar 2017 22:44 von aasche erstellt.