{{tag>cheatsheet tmux}}
====== tmux ======
{{ :pages:cheatsheets:tmux-logo-medium.png?nolink |tmux logo}}
===== Quellen =====
* https://wiki.ubuntuusers.de/tmux/
* http://www.pro-linux.de/artikel/2/1691/tmux-das-kung-fu-der-terminal-ninjas.html
* https://www.hamvocke.com/blog/a-guide-to-customizing-your-tmux-conf/
* https://www.runrails.com/tmux/scrolling-in-tmux/
* https://www.seanh.cc/2020/12/27/copy-and-paste-in-tmux/
* https://github.com/tmux-plugins/tpm
* https://github.com/tmux-plugins/tmux-yank
* https://www.golinuxcloud.com/tmux-commands/
===== Links =====
* [[https://github.com/tmux/tmux/wiki| tmux Wiki]]
* [[https://github.com/tmux/tmux/| tmux Github Repository]]
* [[https://man.openbsd.org/tmux| tmux man page]]
* [[https://superuser.com/questions/209437/how-do-i-scroll-in-tmux | How do i scroll in tmux]] - hint CTRL+b - [
===== Beschreibung =====
//tmux// ist ein sog. terminal multiplexer, vergleichbar mit [[https://www.gnu.org/software/screen/|GNU Screen]], nur komfortabler zu bedienen und um einiges umfangreicher. //tmux// dient dazu, dass man mehrere Shell-Sessions innerhalb eines einzigen Terminals öffnen kann. Es ermöglicht außerdem, dass gestartete Programme auch nach dem Ausloggen weiter laufen und man sich beim nächsten Einloggen wieder mit der Session verbinden kann, in der die Programme laufen.
===== Bedienung =====
//tmux// wird fast ausschließlich per Tastenkombinationen gesteuert. Um in den Kommandomodus zu wechseln drückt man CTRL+b und anschließend dann eine weitere Taste, die ein Kommando ausführt. Wenn z. B. eine weitere Shell gestartet werden soll, erreicht man das mit CTRL+b - c. Zwischen den beiden Shells kann dann mit CTRL+b - l (für last) oder n (für next) wechseln.
^ Auf der Shell ||
^ Shell Kommando ^ Aktion ^
| tmux | Startet den //tmux// server und erzeugt eine neue //tmux// Session im client. |
| tmux attach | verbindet zu einer bestehenden //tmux// Session |
| ||
^ Sessionverwaltung ||
^ tmux Kommando ^ Aktion ^
| :new | erzeugt eine neue //tmux// Session |
^ Taste ^ Aktion ^
| s (switch) | Anzeige und Wechsel zwischen bestehenden //tmux// Sessions |
| $ | aktuelle //tmux// Session umbenennen |
| d (detach) | Trennt von der aktuellen //tmux// Session und verschiebt diese in den Hintergrund |
| ||
^ Fensterverwaltung (Tabs) ||
^ tmux Kommando ^ Aktion ^
| :rename-window | Benennt das aktuelle Fenster um. Man muss sich dazu im umzubenennenden Fenster befinden. |
| :kill-window -t | Schließt das Fenster mit der angegebenen Nummer. |
^ Taste ^ Aktion ^
| c (create) | Erzeugen eines neuen Fensters (Shell) |
| w | Liste der Fenster anzeigen, Fenster wechseln |
| n (next) | Wechsel zum nächsten Fenster |
| p (previous) | Wechsel zum vorherigen Fenster (z.B. von 3 nach 2) |
| l (last) | Wechseln zum letzten aktiven Fenster (ist durch - markiert) |
| , | Umbenennen des aktuellen Fensters |
| 1 | 1, 2, 3 etc. Wechsel zur Fenster-Nr. |
| & | Beendet das aktuelle Fenster. Muss mit y bestätigt werden. |
| ||
^ Panelverwaltung (Teilen von Fenstern) ||
^ Taste ^ Aktion ^
| " | Aktuelle Fensterscheibe (Panel) horizontal teilen (erzeugt ein weiteres Panel) |
| % | Aktuelle Fensterscheibe (Panel) vertikal teilen (erzeugt ein weiteres Panel) |
| ⇦,⇨, ⇩, ⇧ | Die aktive Fensterscheibe (Panel) wechseln |
| ! | Die aktuelle Fensterscheibe (Panel) aus dem Fenster lösen und ein neues Fenster mit dieser Fensterscheibe erstellen |
| SPACE | Wechsel zwischen verschiedenen Aufteilungen der Fensterscheibe (Panels) |
| ||
^ Maus ||
^ tmux Kommando ^ Aktion ^
| :set -g mouse on | Aktiviert die Maus. |
^ key / command ^ Aktion ^
| {{:tools:graphics:mc22x25-l.png?nolink|left mouse button pressed}} + ⇧ | Für den Kopiermodus mit der Maus (mouse-mode), wenn auch mouse-select-pane und/oder mouse-select-window verwendet werden |
| ||
^ Weitere Kommandos ||
^ key / command ^ Aktion ^
| ? | Anzeige aller aktiven Tastaturkürzel (keybindings) |
| [ | Scroll-Modus aktivieren, in dem Pfeiltasten zum Scrollen benutzt werden können. Der Scroll-Modus kann mit q beendet werden. |
===== Installation und tmux.conf =====
This config file is 99% the work of my (soon) former colleague S. Wurm.
apt install tmux tmux-plugin-manager
vim ~/.tmux.conf
# reload config file (change file location to your the tmux.conf you want to use)
bind r source-file ~/.tmux.conf
set -g assume-paste-time 1
set -g base-index 0
#set -g bell-on-alert off
set -g default-command ""
set -g default-shell "/bin/bash"
set -g default-terminal "screen-256color"
set -g destroy-unattached off
set -g detach-on-destroy on
set -g display-panes-active-colour red
set -g display-panes-colour blue
set -g display-panes-time 1000
set -g display-time 750
set -g history-limit 2000
set -g key-table "root"
set -g lock-after-time 0
set -g lock-command "lock -np"
set -g message-command-style fg=yellow,bg=black
set -g message-style fg=black,bg=yellow
set -g mode-keys vi
set -g mouse off
set -g prefix C-b
set -g prefix2 None
set -g renumber-windows off
set -g repeat-time 500
#set -g set-remain-on-exit off
set -g set-titles on
set -g set-titles-string "#S:#I:#W - "#T" #{session_alerts}"
# Status Style (default)
#set -g status on
#set -g status-interval 15
#set -g status-justify left
#set -g status-keys vi
#set -g status-left "[#S] "
#set -g status-left-length 20
#set -g status-left-style default
#set -g status-position bottom
#set -g status-right " "#{=21:pane_title}" %H:%M %d-%b-%y"
#set -g status-right-length 40
#set -g status-right-style default
#set -g status-style fg=black,bg=green
# Status Style (wurmobil)
set -g pane-active-border-style fg=green,bg=black
set -g pane-border-style fg=white,bg=black
set -g message-style fg=black,bg=green
set -g window-status-style bg=black
set -g window-status-current-style fg=green
set -g window-status-activity-style fg=yellow
set -g status-justify left
set -g status-style bg=black,fg=white
set -g status-left '#[fg=yellow]#S #[fg=green]][#[default] '
set -g status-left-length 40
# this one draws the window title in the status bar, but eats up a lot of space
set -g status-right ' #[fg=green]][ #[fg=blue]%Y-%m-%d #[fg=white]%H:%M#[default]'
set -g update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY"
# don't rename windows automatically
#set-option -g allow-rename off
# Activity Monitor
set -g monitor-activity on
set -g activity-action none
set -g visual-activity off
set -g visual-bell off
set -g visual-silence off
set -g word-separators " -_@"
set -g bell-action none
# Tmux Plugin Manager configuration
# List of plugins
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect'
# Other examples:
# set -g @plugin 'github_username/plugin_name'
# set -g @plugin 'git@github.com/user/plugin'
# set -g @plugin 'git@bitbucket.com/user/plugin'
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
run '~/.tmux/plugins/tpm/tpm'
source /usr/share/tmux/powerline.conf
Um Plugins zu installieren/deinstallieren:
/usr/share/tmux-plugin-manager/bin/install_plugins
/usr/share/tmux-plugin-manager/bin/clean_plugins