Login
Newsletter
Werbung

Do, 12. Juni 2014, 15:00

tmux – Das Kung-Fu der Terminal-Ninjas

Von wogri

Ein gesplittetes Fenster mit Live-Logansicht im unteren Teil und Shell auf dem Mailserver im oberen Teil

Wolfgang Hennerbichler

Ein gesplittetes Fenster mit Live-Logansicht im unteren Teil und Shell auf dem Mailserver im oberen Teil

Window Management

Ein neues Window wird mit »Strg + B« und »C« (create) erstellt. tmux wechselt sofort in das neue Window; das Window, in dem man sich gerade befunden hat, läuft im Hintergrund weiter. Um zwischen den Windows zu wechseln, gibt es in tmux mehrere Möglichkeiten, u.a.:

  • »Strg + B« und »L« – wechsle zum vorherigen (last) Window.
  • »Strg + B« und »1« ... »9« – wechsle zum Window 1, 2, 3, ... 9.
  • »Strg + B« und »W« – zeige eine Übersicht aller Windows.

In der Übersicht kann man sich dann mit den Cursor-Tasten (oder durch Druck auf Zahlen bzw. bei mehr als zehn Windows mit Buchstaben) das gewünschte Window aussuchen.

Möchte man ein Window schließen, so kann man dies tun, indem man einfach die Shell verlässt: exit, logout, »Strg« + »D« usw.

Man kann die einzelnen Windows auch benennen; das hilft enorm bei der Übersicht (»Strg« + »B« und »W«). Man benennt ein existierendes Window, indem man zuerst »Strg« + »B« drückt. Mit dem Befehl :rename-window MEINFENSTERNAME bekommt das Window einen neuen Namen. Das ist sinnvoll, wenn man viele SSH-Sitzungen zu verschiedenen Geräten aufgebaut hat.

Panes

Ein »Pane« ist ein Teil eines Windows, da man Windows ohne Weiteres splitten kann. Das ist in vielerlei Hinsicht hilfreich, z.B. zum Split zwischen der Root-Shell eines Servers und Live-Logfile-Ansicht oder auch zum Programmieren und Kompilieren/Ausführen. Dabei kann das Log-Pane kleiner sein als das eigentliche Shell-Fenster.

Ein Pane, die das aktuelle Window horizontal unterteilt, erstellt man mit »Strg« + »B« und danach »Shift + 2« (also »"« = doppeltes Hochkomma). Bei heutigen Bildschirmformaten mag das vertikale Pane sinnvoller erscheinen, was man mit »Strg + B« und »Shift + 5« (also »%«) erreicht. Man wechselt zwischen Panes, indem man »Strg + B« und die adäquate Cursortaste drückt.

Weitere Funktionen

Eine weitere Funktion von tmux ist das automatische Senden von Tastaturbefehlen an das aktuelle Terminalfenster. Dabei kann unter anderem eine mit mehreren Benutzern geteilte Shell-Umgebung an die aktuellen Bedürfnisse angepasst werden.

Ebenfalls oft genutzt ist es, die beliebtesten vim-Konfigurationseinstellungen in das aktuelle vim-Fenster zu kopieren. Um so eine Funktion zu realisieren, sollte man erstens das ganze via Konfigurationsdatei (~/.tmux.conf) einstellen und zweitens die Tastenbelegung des Keystrokes vorher tmux-intern entfernen (dies nennt man »unbinding«). In der Konfigurationsdatei sieht das dann z.B. so aus:

unbind .
bind . send-keys ':syntax on^M:autocmd BufReadPost *^M:set background=light^M:nnoremap <C-t> hxpl^M:set tabstop=2^M:set shiftwidth=2^M:set smartindent^M:set encoding=utf8^M:set fileencoding=utf8^M:set number^M'
unbind ,
bind , send-keys 'MYPROMPT=">"; PS1="\[\033[0;32;1m\]\t\[\033[0m\] \u@\h:\w$MYPROMPT " ; if [ $(whoami) = "root" ]; then MYPROMPT="#"; PS1="\[\033[0;32;1m\]\t\[\033[0m\] \h:\w$MYPROMPT " ; fi; PROMPT_COMMAND="echo -ne \"\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/      ~}\007\""; alias ls="ls --color -a -h"; alias ll="ls --color -a -h -l"; alias grep="grep --color"; . /etc/bash_completion; eval        $(dircolors) ; set show-all-if-ambiguous on; export HISTCONTROL=ignoredups; export LANG=en_US.UTF-8; export LOCKPRG=/bin/true; set -o  vi;^M'
unbind /
bind / send-keys '^M~.'

Mit dem Shortcut »Strg + B« und ».« werden die notwendigsten vim-Umgebungswerte gesetzt. »Strg + B« und »,« passt die Bash so an, dass man seine gewohnte Umgebung findet, und »Strg + B« und »Shift + 7« (also »/«) sendet den Befehl an tmux, eine (eventuell hängen gebliebene) SSH-Session hart zu terminieren.

Letzteres Beispiel ist deswegen sinnvoll, weil man tmux meist ja selbst via SSH geöffnet hat und somit der Shortcut für das Terminieren von SSH (»~.«) die Sitzung zum tmux-Server beenden würde.

Sessions

Sessions sind die Gruppen der Windows und Panes. Man kann Sessions verwenden, um beispielsweise die Terminal-Sitzungen zu seinen Kunden unterschiedlich einzufärben und die Anzahl der Windows übersichtlich zu halten. Wie man Sessions erstellt, steht im nächsten Abschnitt »Konfigurationsdatei«.

Der Wechsel zwischen Sessions gestaltet sich sehr einfach mit dem Befehl »Strg + B« und »S«. Das liefert eine Übersicht über die aktuell laufenden Sessions und man kann mit den Cursor-Tasten zwischen den Sessions wechseln.

Kommentare (Insgesamt: 14 || Alle anzeigen )
Ninja (Marcus Moeller, Mi, 18. Juni 2014)
Tastenkombi beim Paste-Beispiel unvollständig (Marc-nichteingeloggt, Mo, 16. Juni 2014)
Re: sleep 5h && shutdown -h now (hjb, Sa, 14. Juni 2014)
sleep 5h && shutdown -h now (Berniyh, Sa, 14. Juni 2014)
tssh (nean, Sa, 14. Juni 2014)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung