##[[Vorlage(Verlassen)]] ##Bitte hier den eigenen Benutzernamen und das geplante Fertigstellungsdatum eintragen [[Vorlage(Baustelle, 31.12.2011, cyrano)]] [[Vorlage(Getestet, oneiric, natty, maverick, Lucid)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis(2)]] [http://tmux.sourceforge.net/ tmux] {en} ist ein sog. Terminal-Multiplexer (vergleichbar mit [:Screen: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: * Client-Server Struktur. * Farbliche Darstellung mittels ncurses. * Horizontales/vertikales Splitten 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/oder Befehlen/Aliase * Tastaturbelegung frei wählbar. * Gut dokumentierte Befehlsschnittstelle (manpage). * Anpassbar über die '''tmux.conf''' oder zur Laufzeit. * Über Skripte steuerbar. = Installation = tmux ist in den Paketquellen enthalten und kann mit {{{#!vorlage Paketinstallation tmux, universe }}} installiert[1] werden. = Bedienung = Das Programm wird über ein normales Terminal[2] gestartet: {{{#!vorlage Befehl 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 [:man:Manpage] sehr gut beschrieben sind. Für den normalen Start einer neuen tmux-Sitzung reicht der Aufruf {{{#!vorlage Befehl tmux }}} Alternativ kann tmux mit einem Bash-Script (z.B. '''tmux.sh''') gestartet werden, in der die jeweilige '''tmux.conf''' eingebunden wird: {{{#!code bash #!/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''': {{{#!code bash 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 {{{#!vorlage Befehl tmux ls }}} Neue tmux-Sitzung mit dem Namen "hans" starten. {{{#!vorlage Befehl tmux new -s hans }}} Verbinden zur bestehenden Sitzung mit dem Namen "hans" {{{#!vorlage Befehl tmux attach -t hans }}} = Kurztasten = Das Programm kann ausschließlich über Kurztasten (Shortcuts) bedient werden. Die Kommandosequenz wird standardmäßig mit [[Vorlage (Tasten Strg+B)]] eingeleitet und die folgende Eingabe wird als weiteres Kürzel interpretiert. {{{#!vorlage Tabelle <-2 tablestyle="width: 90%;" rowclass="titel"> Einige ausgewählte Tastaturkürzel (Shortcuts) +++ Tastaturkürzel Bedeutung +++ [[Vorlage (Tasten Strg+B)]] Senden des Kurztasten-prefix +++ [[Vorlage (Tasten Strg+B)]] '''?''' Anzeige aller aktiven Shortcuts (keybindings). +++ [[Vorlage (Tasten Strg+B)]] '''d''' (detach) Ausklinken/aushängen der akt. Sitzung (Client) und in den Hintergund verschieben, +++ [[Vorlage (Tasten Strg+B)]] '''s''' (switch) Wechseln zwischen verschiedenen Sitzungen (Client). +++ [[Vorlage (Tasten Strg+B)]] '''c''' (create) Erzeugen eines neuen Fensters (Shell), +++ [[Vorlage (Tasten Strg+B)]] '''&''' Beenden der aktuellen Fensters, muss mit `y` bestätigt werden. +++ [[Vorlage (Tasten Strg+B)]] ''',''' Umbenennen des aktuellen Fenstertitels +++ [[Vorlage (Tasten Strg+B)]] '''l''' (last) Wechseln zum letzten aktiven Fenster (ist durch - markiert) +++ [[Vorlage (Tasten Strg+B)]] '''p''' (previous) Wechsel zum vorherigen Fenster (z.B. von 3 nach 2). +++ [[Vorlage (Tasten Strg+B)]] '''n''' (next) Wechsel zum nächsten Fenster. +++ [[Vorlage (Tasten Strg+B)]] `nr.` Wechsel zur Fenster-Nr., nr.=der numerische Bezeichner des Fen +++ [[Vorlage (Tasten Strg+B)]] '''"''' Aktuelles Pane horizontal teilen (erzeugt weiteres Pane) +++ [[Vorlage (Tasten Strg+B)]] '''%''' Aktuelles Pane vertikal teilen (erzeugt weiteres Pane) +++ [[Vorlage (Tasten Strg+B)]] '''w''' Liste der Fenster anzeigen. Fenster wechseln. +++ [[Vorlage (Tasten Strg+B)]] [[Vorlage (Tasten runter)]]/[[Vorlage (Tasten hoch)]] Ins vorherige/nächste Pane wechseln +++ [[Vorlage (Tasten Strg+B)]] [[Vorlage (Tasten Leertaste)]] Wechsel zwischen verschiedenen Aufteilungen der Panes +++ [[Vorlage (Tasten Strg+B)]] [[Vorlage (Tasten !)]] Das aktuelle Pane aus dem Fenster lösen und ein neues Fenster mit diesem Pane erstellen. }}} = Links = {en} [http://tmux.sourceforge.net/ Projektseite von tmux] #tag: shell,fenstermanager