Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
tmux
Search
Jason Lotito
July 30, 2015
Programming
50
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
tmux
Jason Lotito
July 30, 2015
More Decks by Jason Lotito
See All by Jason Lotito
Getting Things Done from Someone with OCD & ADHD
jasonlotito
0
98
How We Killed Our Process, Technology Stack, and Assumptions — and Survived
jasonlotito
0
60
Twitter Bootstrap, or why being a PHP Developer is a bad idea.
jasonlotito
2
570
require.js
jasonlotito
3
100
Command Line PHP Basics
jasonlotito
1
66
tmux
jasonlotito
0
150
Other Decks in Programming
See All in Programming
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
280
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
130
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
480
Oxlintはいいぞ(続)
yug1224
1
420
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
110
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.8k
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
540
今さら聞けない .NET CLI
htkym
0
210
ソフトウェアラスタライザ
fadis
1
620
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
270
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
120
初めての模倣学習とVLA
natsutan
0
220
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
Producing Creativity
orderedlist
PRO
348
40k
Designing for Timeless Needs
cassininazir
1
450
A Modern Web Designer's Workflow
chriscoyier
698
190k
Product Roadmaps are Hard
iamctodd
55
12k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
Accessibility Awareness
sabderemane
1
180
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
620
Unsuck your backbone
ammeep
672
58k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Transcript
tmux Real Ultimate Terminal Power tmux.sf.net Go ahead and install
it and follow along! For Windows users: tmux can be installed under cygwin
quick demo
Jason Lotito Senior Architect @ MeetMe.com @jasonlotito
[email protected]
Slides available
at joind.in/13251
$ tmux
$ tmux new -s test
prefix = CTRL + b This is the default prefix
It’s run before every command prefix d This means type ‘CTRL + b’ and then type ‘d’.
prefix d Detaches from the current tmux session In other
words, it exits tmux
$ tmux ls See sessions running
$ tmux attach reattaches to the last tmux session you
were attached to
$ tmux attach -t test reattaches to session named confoo
prefix c create a new window (or tab)
prefix , Name the window
prefix & Close window, with prompt
demo 1
set renumber-windows Automatically renumber windows on closing Will get to
commands later
prefix # ‘prefix 1’ takes you to window/tab #1
prefix w provides 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 “ split horizontally
prefix x kills the active pane In the lower portion
of tmux, you’ll see it ask you: kill pane 2? (y/n) type ‘y’
prefix o switch between panes
prefix SPACE change layout of panes
demo 2
Try scrolling in a pane haha
prefix [ CTRL u: scroll up CTRL d: scroll down
j: up a line d: down a line q: quit mode
prefix ? Help, with also reflects your config
prefix z zoom in on a pane cheap 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 Config set -g
prefix C-a unbind C-b # C-a x2 to send C-a to bash bind C-a send-prefix
prefix = CTRL + a Remap CAPS LOCK to CTRL.
Make it responsive # Changing the default delay set -sg
escape-time 0
Easy config changes # Easy config changes bind r source-file
~/.tmux.conf \; display "Reloaded!"
Easy Pane Spitting # Splitting Panes bind \ split-window -h
bind - split-window -v
Easy Pane Movement # Movement keys, vim style bind h
select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R
move one pane left prefix h
Pane Resizing # Pane resizing, vim style bind H resize-pane
-L 5 bind J resize-pane -D 5 bind K resize-pane -U 5 bind L resize-pane -R 5
Let’s make resizing easier by repeating # Pane resizing, vim
style bind -r H resize-pane -L 5 bind -r J resize-pane -D 5 bind -r K resize-pane -U 5 bind -r L resize-pane -R 5
resize prefix L -r Means you can hit it repeatedly
without the prefix
Start at 1 # Windows and panes index renumbering set
-g base-index 1 setw -g pane-base-index 1
Basic UI # Colors set -g status-fg white set -g
status-bg black
Window movement # Window Movement bind -r C-h select-window -t
:- bind -r C-l select-window -t :+
or... prefix w
or... prefix # #: 0-9
My Config https://gist.github.com/11405471.git Or, if you download these slides…
# Mac Terminal Support set -g default-terminal "xterm-256color" # Prefix
set -g prefix C-a unbind C-b # Start number at 1 set -g base-index 1 setw -g pane-base-index 1 # Faster command sequences by removing escape time set -s escape-time 0 # Rebind set -g prefix C-a bind C-a send-prefix unbind C-b # Move around panes bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R # Splitting Panes bind \ split-window -h bind - split-window -v bind -r C-h select-window -t :- bind -r C-l select-window -t :+ # Allow us to resize panes bind -r H resize-pane -L 5 bind -r J resize-pane -D 5 bind -r K resize-pane -U 5 bind -r L resize-pane -R 5
teamocil a tmux “addon”
teamocil 0.4.5 1.0 was a rewrite, removing features I loved
tmuxinator also exists
$ gem install teamocil -v 0.4.5 The 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 notes http://www.mechanicalkeys.com/files/os/notes/tm.html
None
Thanks! Slides at the same URL