tmux
-
Upload
jason-lotito -
Category
Software
-
view
280 -
download
1
Transcript of 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
quick demo
Jason LotitoSenior Architect @ MeetMe.com
Slides available at joind.in/13251
$ tmux
$ tmux new -s confoo
prefix = CTRL + bThis is the default prefix
It’s run before every command
prefix dThis means type ‘CTRL + b’ and then type ‘d’.
prefix dDetaches from the current tmux session
In other words, it exits tmux
$ tmux lsSee sessions running
$ tmux attachreattaches to the last tmux session
you were attached to
$ tmux attach -t confooreattaches to session named confoo
prefix ccreate a new window (or tab)
prefix ,Name the window
prefix &Close window, with prompt
demo 1
set renumber-windowsAutomatically renumber windows on closing
Will get to commands later
prefix #‘prefix 1’ takes you to window/tab #1
prefix wprovides a list of windows available
‘j’ and ‘k’ to scroll the selections
prefix %That’s not 5, but ‘%’, which means
prefix SHIFT+5
This splits the pane in half
prefix xkills the active pane
In the lower portion of tmux, you’ll see it ask you:kill pane 2? (y/n)
type ‘y’
prefix “split horizontally
prefix oswitch between panes
prefix SPACEchange layout of panes
demo 2
Try scrolling in a panehaha
prefix [CTRL u: scroll up
CTRL d: scroll down
j: up a lined: down a lineq: quit mode
prefix ?Help, with also reflects your config
prefix zzoom in on a panecheap copy/paste
prefix :Open up the tmux command prompt
Autocomplete enabled
prefix :set synchronize-panes
set sy<TAB>Toggles synchronization on and off
demo 3
Configuration$ touch ~/.tmux.conf
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
prefix = CTRL + aRemap CAPS LOCK to CTRL.
Make it responsive# Changing the default delayset -sg escape-time 1
Easy config changes# Easy config changesbind r source-file ~/.tmux.conf \; display "Reloaded!"
Easy Pane Spitting# Splitting Panesbind \ split-window -hbind - split-window -v
Easy Pane Movement# Movement keys, vim stylebind h select-pane -Lbind j select-pane -Dbind k select-pane -Ubind l select-pane -R
move one pane leftprefix h
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
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
resizeprefix L
-r Means you can hit it repeatedly without the prefix
Start at 1# Windows and panes index renumberingset -g base-index 1setw -g pane-base-index 1
Basic UI# Colorsset -g status-fg whiteset -g status-bg black
Window movement# Window Movementbind -r C-h select-window -t :-bind -r C-l select-window -t :+
or...prefix w
or...prefix ##: 0-9
My Confighttps://gist.github.com/11405471.git
Or, if you download these slides…
# 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
teamocila tmux “addon”
teamocil 0.4.51.0 was a rewrite, removing features I loved
tmuxinator also exists
$ gem install teamocil -v 0.4.5The version I recommend
$ teamocil -e <name>edit the config
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"
let’s see it
Another sample file
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'"
tmux & screen noteshttp://www.mechanicalkeys.com/files/os/notes/tm.html
Thanks!
Please review at joind.in/13251
Slides at the same URL