##Bitte hier den eigenen Benutzernamen und das geplante Fertigstellungsdatum eintragen [[Vorlage(Baustelle, 28.02.2010, uname)]] [[Vorlage(Getestet, 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]) und ermöglicht den Zugang zu einer beliebigen Anzahl von Terminals (oder Fenstern) und damit zu beliebig gestarteten Programmen. Das Programm wird wie `screen` durch ein einzelnes Terminal[2] gesteuert, man kann sich aus Sitzungen ausklinken (detach) und diese zu einem späteren Zeitpunkt wieder aufnehmen (attach). Ein Anwendungsbeispiel: Wenn man sich über [:SSH:] auf einem Server anmeldet und die Sitzung wird unterbrochen, z.B. durch abmelden, dann werden alle gestarteten Programme umgehend beendet (siehe auch [:Signale:] -SIGHUP dazu). Um dies zu verhindern startet die div. Programme auf dem Server unter `tmux`, anschließend klinkt man sich aus (detach), die Programme laufen im Hintergrund weiter. Zu einem späteren Zeitpunkt nimmt man die Sitzung wieder auf (attach) um z.B. die Ergebisse zu kontrollieren oder weitere Programme zu starten. Einige Merkmale von tmux: * Leichtgewichtig, da eine Client-Server Struktur. * Farbliche Darstellung mittels ncurses. * Horizontales/vertikales splitten des Bildschirms. * Statusleiste mit Informationen zu Sitzungen, Fenstern, Programmnamen, Hostname und Datum/Uhrzeit. * Copy&Paste zwischen den verschiedenen Anwendungen. * Verwaltung mehrere "paste buffer". * Benennen und finden von Sitzungen. * Steuern mittels Tastenkombinationen und/oder Befehlen/Aliase * Tastaturbelegung von Emacs (standard) oder Vim auswählbar. * Gut dokumentierte Befehlsschnittstelle (manpage). * Anpassbar über die '''tmux.conf''' oder zur Laufzeit. * Über Skripte steurbar. = Installation = `tmux` ist seit Karmic Kola in den Paketquellen enthalten und kann mit {{{#!vorlage Paketinstallation tmux }}} installiert[1] werden. = Bedienung = `tmux` 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 }}} aus, siehe dazu auch die [#Beispiele Beispiele]. = Kurztasten = `tmux` kann fast 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''' (previouse) 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 Fensters (0,1 ...) +++ [[Vorlage (Tasten Strg+B)]] '''w''' (window-list) Anzeige der Liste aller Fenster, mit Pfeiltasten auswählbar. +++ [[Vorlage (Tasten Strg+B)]] '''f''' `sbg` (find) Suchen nach einem definierten `sbg` (Suchstring), z.B. Fenstername, und aktivieren des Fensters. +++ <-2:rowclass="kopf"> Steuern der Fensterteile (panes). tmux kennt 5 voreingestellte Fensterlayouts (M-1 bis M-5). +++ [[Vorlage (Tasten Strg+B)]] [[Vorlage (Tasten Space)]] Umschalten zwischen den verschiedenen Fensterlayouts (M-1 bis M-5). +++ [[Vorlage (Tasten Strg+B)]] '''%''' Fenster horizontal in 2 Teile splitten. +++ [[Vorlage (Tasten Strg+B)]] '''"''' Fenster vertikal in 2 Teile splitten. +++ [[Vorlage (Tasten Strg+B)]] '''o''' (other) Wechseln zum nächsten Fensterteil (Pfeiltasten sind möglich). +++ [[Vorlage (Tasten Strg+B)]] '''q''' (quote) Einbelnden einer Nummernanzeige im Fensterteil (pane numbers). +++ [[Vorlage (Tasten Strg+B)]] '''{''' Fensterteil nach links verschieben. +++ [[Vorlage (Tasten Strg+B)]] '''}''' Fensterteil nach rechts verschieben. +++ [[Vorlage (Tasten Strg+B)]] '''!''' Herauslösen des aktven Fensterteils als eigenständiges Fenster. +++ [[Vorlage (Tasten Strg+B)]] `x` Beenden der aktuellen Fensterteils, muss mit `y` bestätigt werden. +++ <-2:rowstyle="background-color: #F9EAAF;" :> Um den Kopiermodus zwischen den Fenstern/Fensterteilen zu nutzen siehe die [:man:Manpage] und Beispiele unter den [#Links Links]. }}} = Beispiele = Starten von `tmux` in einer neuen Sitzung. {{{#!vorlage Befehl tmux }}} Attachen einer vorherigen Sitzung oder falls keine vorhanden Erstellen einer neuen Sitzung {{{#!vorlage Befehl tmux attach || tmux new }}} Starten von `tmux` und wiederaufnehmen einer laufenden Sitzung. {{{#!vorlage Befehl tmux attach }}} Starten von `tmux` mit einer Auwahlliste aller laufenden Sitzungen {{{#!vorlage Befehl tmux list-sessions }}} Starten einer `tmux`-Sitzung mit dem Namen HOST1, darin wird ein neues Fenster mit dem Namen "Prozesse" und dem Programm htop gestartet. {{{#!vorlage Befehl tmux new-session -s "HOST1" \; new -n "Prozesse" 'htop' }}} Öffen eines neuen Fensters durch [[Vorlage (Tasten Strg+B)]] '''c''' oder mit: {{{#!vorlage Befehl tmux new }}} Öffnen eines neuen Fensters und starten von `htop` ohne das Fenster zu aktivieren {{{#!vorlage Befehl tmux new -d htop }}} Öffnen des neuen Fensters '''1''' und starten des Programms `top` . {{{#!vorlage Befehl tmux send-keys -t 1 "top" C-m }}} -t ist dabei das Zielfenster (target) und '''C-m''' sendet einen Zeilenumbruch (Enter). Senden des Zeichens "q" an das Fenster 3 um das darin laufende `top` zu beenden. {{{#!vorlage Befehl tmux send-keys -t :3 q }}} == Automatischer Aufruf == Mit den folgenden Erweiterung am Ende der Datei .bashrc oder der systemweiten /etc/bash.bashrc wird automatisch zu einer tmux-Session verbunden. {{{ if [ -z $TMUX ]; then tmux attach || tmux new fi }}} = Links = * [http://tmux.sourceforge.net/ tmux]{en} bei sourceforge.net * [http://strcat.de/eigenes/tmux.html private Anweisung]{de} von Christian Schneider * [http://strcat.de/blog/archives/1541-Good-by-GNU-Screen,-welcome-tmux.html Gegenüberstellung]{de} screen/tmux von Christian Schneider * [http://linuxwiki.de/tmux linuxwiki.de]{de} Mit Beispielskipte * [http://www.openbsd.org/faq/faq7.html#tmux openbsd.org]{en} bei Openbsd * [https://wiki.archlinux.org/index.php/Tmux archlinux.org]{en} incl. einer tmux.conf * [http://www.jeffstory.org/wordpress/?p=132 jeffstory.org]{en} Einführung mit vielen Screenshots ---- # tag: Shell, Fenstermanager, Prozesse