ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

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:

Wiki/Icons/terminal.png tmux 🇬🇧 ist ein Terminal-Multiplexer für die Kommandozeile, vergleichbar mit screen oder Terminator. tmux ermöglicht es, innerhalb eines Terminals[2] 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:

Installation

tmux ist in den Paketquellen enthalten und kann mit

  • tmux (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install tmux 

Oder mit apturl installieren, Link: apt://tmux

installiert[1] werden.

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:

setw -g mode-mouse on
set-option -g set-clipboard 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 Sessions:

    tmux kill-server 

Kurztasten

Das Programm kann ausschließlich über Kurztasten (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 Shortcuts (keybindings).
D (detach) Ausklinken/aushängen 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.
" Aktuelles Pane horizontal teilen (erzeugt weiteres Pane)
% Aktuelles Pane vertikal teilen (erzeugt weiteres Pane)
W Liste der Fenster anzeigen. Fenster wechseln.
/ Ins vorherige/nächste Pane wechseln
         Wechsel zwischen verschiedenen Aufteilungen der Panes
! Das aktuelle Pane aus dem Fenster lösen und ein neues Fenster mit diesem Pane erstellen.

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, das über

  • xclip (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install xclip 

Oder mit apturl installieren, Link: apt://xclip

installiert[1] werden kann.

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 den aktuellen tmux paste-buffer in die X11 primary selection schreiben.
Strg + V den Inhalt der X11 primary selection in den tmux paste-buffer übernehmen.

Das funktioniert so nicht in entfernten tmux-Sitzungen (e.g. per ssh mit X11-Forwarding). Dann muss die DISPLAY-Variable in den tmux-panes explizit gesetzt werden.

Diese Revision wurde am 30. April 2013 12:43 von frustschieber erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell, Terminal, Server, Fernwartung