Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
tmux
Search
Jason Lotito
July 30, 2015
Programming
52
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
99
How We Killed Our Process, Technology Stack, and Assumptions — and Survived
jasonlotito
0
63
Twitter Bootstrap, or why being a PHP Developer is a bad idea.
jasonlotito
2
580
require.js
jasonlotito
3
100
Command Line PHP Basics
jasonlotito
1
69
tmux
jasonlotito
0
150
Other Decks in Programming
See All in Programming
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
430
Workers Cache を知る
syumai
0
320
SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 / OSC2026Hiroshima
tsutsui
0
160
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
220
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
270
Intent as Code
shoppingjaws
6
1.1k
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
3.1k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
570
AWSに止められる覚悟してますか?
morizo_1984
2
490
Verilogで学ぶCPU自作入門.pdf
uyuki234
7
3.9k
wkhtmltopdfの次どうするか問題2026
willnet
2
1.8k
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
610
How to train your dragon (web standard)
notwaldorf
97
6.8k
The untapped power of vector embeddings
frankvandijk
2
1.9k
The SEO Collaboration Effect
kristinabergwall1
1
580
BBQ
matthewcrist
89
10k
How STYLIGHT went responsive
nonsquared
100
6.3k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Mind Mapping
helmedeiros
1
390
Code Reviewing Like a Champion
maltzj
528
40k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
510
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Six Lessons from altMBA
skipperchong
29
4.5k
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