TMUX Rocks!
( Terminal MUltipleXer )
Kent Chen
Kent Chen (chenkaie)
chenkaie@[Link]
[Link]
@chenkaie on GitHub
@chenkaie on SlideShare
@chenkaie on LinkedIn
@chenkaie on Twitter
@+KentChenAtGoogle on Google+
終端复用器
基本功
不談
Not a basic intro course of
terminal multiplexer
GNU Screen vs. tmux
Ref: [Link] screen, tmux
分享小弟
「跳槽」經驗 (驚)
An experience sharing after “Jump ship”
Screen
用得好好的?
GNU Screen works god damn well?
為什麼要換
tmux
Why switch to tmux?
請各位客倌
聽我娓娓道來
Now listen carefully
GNU screen
七宗罪
The SE7EN deadly sins
!
罪宗一
The 1st deadly sin
Memory eating MONSTER
Sort by MEM%
100 windows in
Screen
370 MB resident
Ref: [Link]
100 windows in
tmux
5 MB resident
Ref: [Link]
!
罪宗二
The 2nd deadly sin
Split with 3 window happily
來去猩巴克
當個
假文青真碼農
Think about coding at Starbucks
體驗文青生活
妹也走光
寫扣吧
$ screen -x
Reattach to previous session
WTF…
?
Restore a session with splitted screen
Ref: [Link]
windows-split-after-detaching-reattaching-gnu-screen
!
罪宗三
The 3rd deadly sin
Not under active development
A dead project…
since 2008
!
罪宗四
The 4th deadly sin
.
..
...
掰不下去了
Cannot think of more deadly sin
其實還不錯
請繼續支持
自由軟體
Screen is still pretty excellent
Donate Free Software, thanks!
究竟
tmux
有何過人之處
Why tmux rocks?
極具彈性的
Session > Window > Pane
視窗管理
Flexible Session / Window / Pane
window management
Session
Screenshot
Pane 1 Pane 2
Pane 3
Session Name
Window
Left status bar Right status bar
$ tmux info
Client 1 Client 2 Client N
……
Session
Window 1 Window 2 … Window N
Pane Pane Pane Pane
$ tmux choose-session
Client
Session 1 Session 2 Session 3
Window 1 Window 1 Window 2 … Window N Window 1
Pane Pane Pane Pane Pane Pane
client / server model
Ref: [Link]
還有什麼
特異功能
Any tricks & tips?
!
第靈招
Tip & Trick 0
No transfer effort from Screen
無痛轉換 i.e. 靈的轉移 (驚)
Soul Transfer by:
$ alias screen=tmux
My modification:
Ref: [Link]
!
第一招
Tip & Trick 1
Multiple paste buffers
$ tmux list-buffers
<C-b> #
!
$ tmux paste-buffer
<C-b> ]
!
第二招
Tip & Trick 2
Powerful mouse mode support
Resize Pane
Select Pane[1]
Select Window
1. screen can do “select pane” only
!
第三招
Tip & Trick 3
Vertical splitting w/o patching
You can patch GNU
Screen to do it
It’s pretty useful under
16:9 widescreen
!
第四招
Tip & Trick 4
Shared Sessions
Multiple root-privileged system administrators
can share the same session to manage the
server.
remote SSH w/o leaking your “password”
Remote debugging
Pair Programming
Pair Programming
wemux: Multi-User Tmux Made Easy
Mode: mirror / pair / rogue
No Magic
Ref: [Link]
!
第五招
Tip & Trick 5
Search in windows
$ tmux find-window
<C-b> f
!
第六招
Tip & Trick 6
Powerline support
[Link]
• Personal bias … XD
• UTF-8 status line support
!
第七招
Tip & Trick 7
Synchronize panes
<C-b> :
:set synchronize-panes on
!
第八招
Tip & Trick 8
Highly Scriptable
$ tmux list-commands
$ tmux list-keys
Ref: [Link]
!
第九招
Tip & Trick 9
handy tmux_backup.sh
Snapshot :
Ref: [Link]
!
第十招
Tip & Trick 10
PuTTy Fn key issue
Terminal > Keyboard > Function Keys and Keypad: “Xterm R6”
!
第十一招
Tip & Trick 11
Scrollback issue
* How can I make tmux use my terminal's scrollback buffer?
!
Normally, tmux enables the terminal's "alternate screen". Most terminals (such
as xterm) do not save scrollback for the alternate [Link] might prefer
tmux to use the normal screen, so it uses your terminal's scrollback
buffer. This way, you can access the scrollback buffer as usual, for example
using the mouse wheel - although there is no guarantee output inside tmux will
always (or ever) be added to the scrollback.
!
You can make tmux use the normal screen by telling it that your terminal does
not have an alternate screen. Put the following in ~/.[Link]:
!
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
Ref: tmux FAQ [Link]
!
第十二招
Tip & Trick 12
Lightening fast key binding “-n”
# Add in .[Link]
!
# Lightning fast pane movement w/o prefix key by <Alt-‐`>
bind -‐n M-‐` select-‐pane -‐t:.+
!
# Lightning fast pane resize w/o mouse mode by <Alt-‐ArrowKey>
bind -‐n M-‐up resize-‐pane -‐U 1
bind -‐n M-‐down resize-‐pane -‐D 1
bind -‐n M-‐left resize-‐pane -‐L 1
bind -‐n M-‐right resize-‐pane -‐R 1
!
第十三招
Tip & Trick 13
Lightening fast key binding (cont.)
# Add in .[Link]
!
# Lightning fast entering copy-‐mode by <Alt-‐c>
# Extremely useful when split-‐pane are heavily used.
bind -‐n M-‐c copy-‐mode
bind -‐n M-‐PPage copy-‐mode -‐u
bind -‐n S-‐PPage copy-‐mode -‐u
!
# Lightning fast window select by <Alt-‐H> / <Alt-‐L>
bind -‐n M-‐H prev
bind -‐n M-‐L next
Entering copy-mode
Search keyword in scrollback buffer
Reference
Tmux @ Arch Linux wiki
[Link]
Screen vs. tmux Faceoff
[Link]
Fixing Vim's Background Color Erase for 256-color tmux
[Link]
How to Copy and Paste with tmux on Mac OS X
[Link]
tmux-on-mac-os-x
Reference cont.
wemux: Multi-User Tmux Made Easy
[Link]
tmux-powerline
[Link]
tmux FAQ
[Link]
My .[Link]
[Link]