Top Banner
tmux Real Ultimate Terminal Power Everything is Awesome Edition tmux.sf.net Go ahead and install it and follow along! For Windows users: tmux can be installed under cygwin
59
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: tmux

tmuxReal Ultimate Terminal Power

Everything is Awesome Edition

tmux.sf.net

Go ahead and install it and follow along!For Windows users: tmux can be installed under cygwin

Page 2: tmux

quick demo

Page 3: tmux

Jason LotitoSenior Architect @ MeetMe.com

@[email protected]

Slides available at joind.in/13251

Page 4: tmux

$ tmux

Page 5: tmux

$ tmux new -s confoo

Page 6: tmux

prefix = CTRL + bThis is the default prefix

It’s run before every command

prefix dThis means type ‘CTRL + b’ and then type ‘d’.

Page 7: tmux

prefix dDetaches from the current tmux session

In other words, it exits tmux

Page 8: tmux

$ tmux lsSee sessions running

Page 9: tmux

$ tmux attachreattaches to the last tmux session

you were attached to

Page 10: tmux

$ tmux attach -t confooreattaches to session named confoo

Page 11: tmux

prefix ccreate a new window (or tab)

Page 12: tmux

prefix ,Name the window

Page 13: tmux

prefix &Close window, with prompt

Page 14: tmux

demo 1

Page 15: tmux

set renumber-windowsAutomatically renumber windows on closing

Will get to commands later

Page 16: tmux

prefix #‘prefix 1’ takes you to window/tab #1

Page 17: tmux

prefix wprovides a list of windows available

‘j’ and ‘k’ to scroll the selections

Page 18: tmux

prefix %That’s not 5, but ‘%’, which means

prefix SHIFT+5

This splits the pane in half

Page 19: tmux

prefix xkills the active pane

In the lower portion of tmux, you’ll see it ask you:kill pane 2? (y/n)

type ‘y’

Page 20: tmux

prefix “split horizontally

Page 21: tmux

prefix oswitch between panes

Page 22: tmux

prefix SPACEchange layout of panes

Page 23: tmux

demo 2

Page 24: tmux

Try scrolling in a panehaha

Page 25: tmux

prefix [CTRL u: scroll up

CTRL d: scroll down

j: up a lined: down a lineq: quit mode

Page 26: tmux

prefix ?Help, with also reflects your config

Page 27: tmux

prefix zzoom in on a panecheap copy/paste

Page 28: tmux

prefix :Open up the tmux command prompt

Autocomplete enabled

Page 29: tmux

prefix :set synchronize-panes

set sy<TAB>Toggles synchronization on and off

Page 30: tmux

demo 3

Page 31: tmux

Configuration$ touch ~/.tmux.conf

Page 32: tmux

CTRL + B is awkward# Prefix Configset -g prefix C-aunbind C-b

# C-a x2 to send C-a to bashbind C-a send-prefix

Page 33: tmux

prefix = CTRL + aRemap CAPS LOCK to CTRL.

Page 34: tmux

Make it responsive# Changing the default delayset -sg escape-time 1

Page 35: tmux

Easy config changes# Easy config changesbind r source-file ~/.tmux.conf \; display "Reloaded!"

Page 36: tmux

Easy Pane Spitting# Splitting Panesbind \ split-window -hbind - split-window -v

Page 37: tmux

Easy Pane Movement# Movement keys, vim stylebind h select-pane -Lbind j select-pane -Dbind k select-pane -Ubind l select-pane -R

Page 38: tmux

move one pane leftprefix h

Page 39: tmux

Pane Resizing# Pane resizing, vim stylebind H resize-pane -L 5bind J resize-pane -D 5bind K resize-pane -U 5bind L resize-pane -R 5

Page 40: tmux

Let’s make resizing easier by repeating

# Pane resizing, vim stylebind -r H resize-pane -L 5bind -r J resize-pane -D 5bind -r K resize-pane -U 5bind -r L resize-pane -R 5

Page 41: tmux

resizeprefix L

-r Means you can hit it repeatedly without the prefix

Page 42: tmux

Start at 1# Windows and panes index renumberingset -g base-index 1setw -g pane-base-index 1

Page 43: tmux

Basic UI# Colorsset -g status-fg whiteset -g status-bg black

Page 44: tmux

Window movement# Window Movementbind -r C-h select-window -t :-bind -r C-l select-window -t :+

Page 45: tmux

or...prefix w

Page 46: tmux

or...prefix ##: 0-9

Page 47: tmux

My Confighttps://gist.github.com/11405471.git

Or, if you download these slides…

Page 48: tmux

# Mac Terminal Supportset -g default-terminal "xterm-256color"

# Prefixset -g prefix C-aunbind C-b

# Start number at 1set -g base-index 1setw -g pane-base-index 1

# Faster command sequences by removing escape timeset -s escape-time 0

# Rebindset -g prefix C-abind C-a send-prefixunbind C-b

# Move around panesbind h select-pane -Lbind j select-pane -Dbind k select-pane -Ubind l select-pane -R

# Splitting Panesbind \ split-window -hbind - split-window -v

bind -r C-h select-window -t :-bind -r C-l select-window -t :+

# Allow us to resize panesbind -r H resize-pane -L 5bind -r J resize-pane -D 5bind -r K resize-pane -U 5bind -r L resize-pane -R 5

Page 49: tmux

teamocila tmux “addon”

Page 50: tmux

teamocil 0.4.51.0 was a rewrite, removing features I loved

tmuxinator also exists

Page 51: tmux

$ gem install teamocil -v 0.4.5The version I recommend

Page 52: tmux

$ teamocil -e <name>edit the config

Page 53: tmux

1 session: 2 name: "confoo" 3 clear: true 4 windows: 5 - name: "confoo" 6 layout: even-horizontal 7 options: 8 synchronize-panes: true 9 panes: 10 - cmd: "" 11 - cmd: "top" 12 - name: "redis" 13 panes: 14 - cmd: "redis-server"

Page 54: tmux

let’s see it

Page 55: tmux

Another sample file

Page 56: tmux

0 session: 1 name: "consumers" 2 clear: true 3 windows: 4 - name: "consumers" 5 options: 6 synchronize-panes: true 7 layout: tiled 8 panes: 9 - cmd: “ssh consumer1 -t 'sudo su - jenkins'" 10 - cmd: "ssh consumer2 -t 'sudo su - jenkins'" 11 - cmd: "ssh consumer3 -t 'sudo su - jenkins'" 12 - cmd: "ssh consumer4 -t 'sudo su - jenkins'" 13 - cmd: "ssh consumer5 -t 'sudo su - jenkins'" 14 - cmd: "ssh consumer6 -t 'sudo su - jenkins'" 15 - cmd: "ssh consumer7 -t 'sudo su - jenkins'" 16 - cmd: "ssh consumer8 -t 'sudo su - jenkins'" 17 - cmd: "ssh consumer9 -t 'sudo su - jenkins'" 18 - cmd: "ssh consumer10 -t 'sudo su - jenkins'" 19 - cmd: "ssh consumer11 -t 'sudo su - jenkins'" 20 - cmd: "ssh consumer12 -t 'sudo su - jenkins'" 21 - cmd: "ssh consumer13 -t 'sudo su - jenkins'" 22 - cmd: "ssh consumer14 -t 'sudo su - jenkins'" 23 - cmd: "ssh consumer15 -t 'sudo su - jenkins'" 24 - cmd: "ssh consumer16 -t 'sudo su - jenkins'"

Page 57: tmux

tmux & screen noteshttp://www.mechanicalkeys.com/files/os/notes/tm.html

Page 58: tmux
Page 59: tmux

Thanks!

Please review at joind.in/13251

Slides at the same URL