Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Tmux ====== **General Information** Tmux is a terminal multiplexer. It is basically screen with more advanced features. **Checklist** * Distro(s): Any * Package: tmux ---- ====== Install ====== Install tmux: <code bash> yum install tmux or apt-get install tmux </code> ---- ====== Tmux Operation ====== 1) Open a terminal 2) Start a tmux session (default name) <code bash> tmux </code> ---- ===== Session Control ===== Start a named tmux session <code bash> tmux new -s MySession </code> Detach from open session <code bash> Ctrl+b d </code> List tmux sessions <code bash> tmux list-sessions </code> Attach to session <code bash> tmux attach -t MySession </code> Rename existing session <code bash> Ctrl+b :rename-session MyAwesomeName </code> ---- ===== Windows ===== Like screen, tmux has windows. Create a new window <code bash> Ctrl+b c </code> Next Window <code bash> Ctrl+b n </code> Previous Window <code bash> Ctrl+b p </code> Rename Window <code bash> Ctrl+b , MyWindow </code> ---- ===== Panes ===== An advantage that tmux has over screen, is the ability to create panes. Split window horizontally <code bash> Ctrl+b " </code> Split window vertically <code bash> Ctrl+b % </code> Kill current pane <code bash> Ctrl+b x OR exit </code> Navigate between panes <code bash> Ctrl+b up/down/left/right (arrow keys) </code> Maximize current pane (other pane moves to its own window) <code bash> Ctrl+b ! </code> Auto-resize panes to equal space horizontally <code bash> Ctrl+b ESC+2 </code> Auto-resize panes to equal space vertically <code bash> Ctrl+b ESC+1 </code> ---- ===== Copy/Paste with Keyboard ===== Enter copy mode <code bash> Ctrl+b [ </code> **While in copy mode** * Move around: arrow keys * Start selection: space * Copy selection: enter Paste selection <code bash> Ctrl+b ] </code> ===== Other Commands ===== Help <code bash> Ctrl+b ? </code> List Commands <code bash> Ctrl+b :list-commands </code> ---- ====== Tmux Config File ====== You can customize tmux with a config file in your home directory. The following is a running list of customizations I find useful. ~/.tmux.conf <code bash> # use the vim motion keys to move between panes bind-key h select-pane -L bind-key j select-pane -D bind-key k select-pane -U bind-key l select-pane -R # set history scroll back size (default is 2000, also set terminal scroll back to be >= ) set-option -g history-limit 5000 # start window index at 1 instead of 0 set -g base-index 1 # Allow xterm titles in terminal window, terminal scrolling with scrollbar, and setting overrides of C-Up, C-Down, C-Left, C-Right set -g terminal-overrides "xterm*:XT:smcup@:rmcup@:kUP5=\eOA:kDN5=\eOB:kLFT5=\eOD:kRIT5=\eOC" # Set default shell set-option -g default-shell /bin/zsh # Allow mouse click to select a pane to be active set -g mouse-select-pane on # Mouse wheel scrolling for individual panes (newer versions of tmux; ie Fedora 27) set -g mouse on bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e; send-keys -M'" # Mouse wheel scrolling for individual panes (older versions of tmux; ie CentOS 7) set -g mode-mouse on </code> * **Notes:** * When enabling mouse options in tmux, the ability to highlight text as normal for a copy/paste operation goes away. Using shift temporarily over rides tmux capture of the mouse. * To copy/paste (if using mouse options) * **hold shift**, select text, copy * **hold shift**, right click, paste (or middle click) ---- ====== Tmux Aliases ====== Some useful tmux aliases from ~/.bashrc <code bash> # Tmux Aliases alias tls='tmux list-sessions' alias tat='tmux attach -t' alias tns='tmux new -s' </code> ---- linux_wiki/tmux.txt Last modified: 2019/05/25 23:50(external edit)