ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

tmux

Artikel in Arbeit

Dieser Artikel wird momentan von cyrano erstellt. Als Fertigstellungsdatum wurde der 31.12.2011 angegeben.


Achtung: Insbesondere heißt das, dass dieser Artikel noch nicht fertig ist und dass wichtige Teile fehlen, oder sogar falsch sein können. Bitte diesen Artikel nicht als Anleitung für Problemlösungen benutzen!

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 sog. Terminal-Multiplexer (vergleichbar mit screen) für die Konsole. 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, so dass man die jeweils gewünschte Umgebung zur Verfügung hat.

Ein Anwendungsbeispiel:

Wenn man sich über SSH auf einem Server anmeldet und die Sitzung unterbrochen wird, werden alle gestarteten Programme umgehend beendet (siehe auch Signale -SIGHUP dazu). Um das Beenden der Programme zu verhindern, startet man Programme auf dem Server unter tmux. Anschließend logt man sich aus ("detach"), die Programme laufen im Hintergrund weiter. Zu einem späteren Zeitpunkt nimmt man die Sitzung wieder auf ("attach") und kann mit dem Programm weiterarbeiten.

Einige Merkmale von tmux:

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

Das Programm wird über ein normales Terminal[2] gestartet:

tmux -words [-28lquv ] [-c -file ... -shell-command ] [-f -file ... -file ] [-L -file ... -socket-name ] 
     [-S -file ... -socket-path ] [command [flags ] ] 

Sollte kein Server gestartet sein, so wird dieser automatisch mitgestartet. tmux kennt eine Reihe von Aufrufoptionen die in der Manpage sehr gut beschrieben sind. Für den normalen Start einer neuen tmux-Sitzung reicht der Aufruf

tmux  

aus, siehe dazu auch die Beispiele.

Alternativ kann tmux mit einem Bash-Script (z.B. tmux.sh) gestartet werden, in der die jeweilige tmux.conf eingebunden wird:

 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:

1
2
3
4
5
6
7
8
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 

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
Strg + B Senden des Kurztasten-prefix
Strg + B ? Anzeige aller aktiven Shortcuts (keybindings).
Strg + B d (detach) Ausklinken/aushängen der akt. Sitzung (Client) und in den Hintergund verschieben,
Strg + B s (switch) Wechseln zwischen verschiedenen Sitzungen (Client).
Strg + B c (create) Erzeugen eines neuen Fensters (Shell),
Strg + B & Beenden der aktuellen Fensters, muss mit y bestätigt werden.
Strg + B , Umbenennen des aktuellen Fenstertitels
Strg + B l (last) Wechseln zum letzten aktiven Fenster (ist durch - markiert)
Strg + B p (previous) Wechsel zum vorherigen Fenster (z.B. von 3 nach 2).
Strg + B n (next) Wechsel zum nächsten Fenster.
Strg + B nr. Wechsel zur Fenster-Nr., nr.=der numerische Bezeichner des Fen
Strg + B " Aktuelles Pane horizontal teilen (erzeugt weiteres Pane)
Strg + B % Aktuelles Pane vertikal teilen (erzeugt weiteres Pane)
Strg + B w Liste der Fenster anzeigen. Fenster wechseln.
Strg + B / Ins vorherige/nächste Pane wechseln
Strg + B          Wechsel zwischen verschiedenen Aufteilungen der Panes
Strg + B ! Das aktuelle Pane aus dem Fenster lösen und ein neues Fenster mit diesem Pane erstellen. #tag: shell,fenstermanager

Diese Revision wurde am 5. Januar 2012 00:40 von cyrano erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell, Terminal, Server, Fernwartung