SlideShare a Scribd company logo
1 of 67
Download to read offline
TMUX Rocks!	

( Terminal MUltipleXer )
Kent Chen
Kent Chen (chenkaie)	

chenkaie@gmail.com	

http://chenkaie.blogspot.com	

@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: https://www.google.com/trends/explore?q=gnu 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: http://jon.endpoint.com/utosc-2012/screen-vs-tmux-faceoff.html
100 windows in 	

tmux	

5 MB resident
Ref: http://jon.endpoint.com/utosc-2012/screen-vs-tmux-faceoff.html
!

罪宗二
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: http://superuser.com/questions/69816/how-to-keepwindows-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
Screenshot

Session

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

Pane

Window 2

Pane

Pane

…

Window N

Pane
$ tmux choose-session
Client

Session 2

Session 1
Window 1

Window 1

Pane

Pane

Window 2

Pane

Pane

Session 3

…

Window N

Window 1

Pane

Pane
client / server model

Ref: http://bit.ly/tmux-explained
還有什麼

特異功能
Any tricks  tips?
!

第靈招
Tip  Trick 0
No transfer effort from Screen 	

無痛轉換 i.e.

靈的轉移

(驚)

Soul Transfer by:
$ alias screen=tmux

My modification:

Ref: http://sourceforge.net/p/tmux/tmux-code/ci/master/tree/examples/screen-keys.conf
!

第一招
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: http://bit.ly/tmux-explained
!

第五招
Tip  Trick 5
Search in windows
$ tmux find-window	

C-b f
!

第六招
Tip  Trick 6
Powerline support
https://github.com/erikw/tmux-powerline
•

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: https://gist.github.com/lance/7486428
!

第九招
Tip  Trick 9
handy tmux_backup.sh
Snapshot :

Ref: http://sourceforge.net/p/tmux/tmux-code/ci/master/tree/examples/tmux_backup.sh
!

第十招
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 screen.You 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 ~/.tmux.conf:	

!

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

Ref: tmux FAQ http://tmux.svn.sourceforge.net/viewvc/tmux/trunk/FAQ
!

第十二招
Tip  Trick 12
Lightening fast key binding “-n”
#  Add  in  .tmux.conf  

!
#  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  .tmux.conf  

!
#  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	

https://wiki.archlinux.org/index.php/Tmux	

Screen vs. tmux Faceoff	

http://jon.endpoint.com/utosc-2012/screen-vs-tmux-faceoff.html	

Fixing Vim's Background Color Erase for 256-color tmux	

http://sunaku.github.io/vim-256color-bce.html	

How to Copy and Paste with tmux on Mac OS X	

http://robots.thoughtbot.com/how-to-copy-and-paste-withtmux-on-mac-os-x
Reference cont.
wemux: Multi-User Tmux Made Easy	

https://github.com/zolrath/wemux	

tmux-powerline	

https://github.com/erikw/tmux-powerline	

tmux FAQ	

http://sourceforge.net/p/tmux/tmux-code/ci/master/tree/FAQ	

My .tmux.conf	

https://github.com/chenkaie/DotFiles/blob/master/.tmux.conf

More Related Content

What's hot

버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
민태 김
 

What's hot (20)

GDB Rocks!
GDB Rocks!GDB Rocks!
GDB Rocks!
 
Introduction to gdb
Introduction to gdbIntroduction to gdb
Introduction to gdb
 
Launch the First Process in Linux System
Launch the First Process in Linux SystemLaunch the First Process in Linux System
Launch the First Process in Linux System
 
The Internals of "Hello World" Program
The Internals of "Hello World" ProgramThe Internals of "Hello World" Program
The Internals of "Hello World" Program
 
LLVM introduction
LLVM introductionLLVM introduction
LLVM introduction
 
Learn C Programming Language by Using GDB
Learn C Programming Language by Using GDBLearn C Programming Language by Using GDB
Learn C Programming Language by Using GDB
 
Capturing NIC and Kernel TX and RX Timestamps for Packets in Go
Capturing NIC and Kernel TX and RX Timestamps for Packets in GoCapturing NIC and Kernel TX and RX Timestamps for Packets in Go
Capturing NIC and Kernel TX and RX Timestamps for Packets in Go
 
Embedded Virtualization applied in Mobile Devices
Embedded Virtualization applied in Mobile DevicesEmbedded Virtualization applied in Mobile Devices
Embedded Virtualization applied in Mobile Devices
 
BPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLabBPF / XDP 8월 세미나 KossLab
BPF / XDP 8월 세미나 KossLab
 
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例
LLVM 總是打開你的心:從電玩模擬器看編譯器應用實例
 
Linux Kernel - Virtual File System
Linux Kernel - Virtual File SystemLinux Kernel - Virtual File System
Linux Kernel - Virtual File System
 
Linux KVM のコードを追いかけてみよう
Linux KVM のコードを追いかけてみようLinux KVM のコードを追いかけてみよう
Linux KVM のコードを追いかけてみよう
 
How Linux Processes Your Network Packet - Elazar Leibovich
How Linux Processes Your Network Packet - Elazar LeibovichHow Linux Processes Your Network Packet - Elazar Leibovich
How Linux Processes Your Network Packet - Elazar Leibovich
 
DMA Survival Guide
DMA Survival GuideDMA Survival Guide
DMA Survival Guide
 
VerilatorとSystemC
VerilatorとSystemCVerilatorとSystemC
VerilatorとSystemC
 
Qemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System EmulationQemu JIT Code Generator and System Emulation
Qemu JIT Code Generator and System Emulation
 
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
 
What Can Compilers Do for Us?
What Can Compilers Do for Us?What Can Compilers Do for Us?
What Can Compilers Do for Us?
 
initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
Linux kernel debugging
Linux kernel debuggingLinux kernel debugging
Linux kernel debugging
 

Viewers also liked

数式を使わないJubatus入門 分散処理編
数式を使わないJubatus入門 分散処理編数式を使わないJubatus入門 分散処理編
数式を使わないJubatus入門 分散処理編
Kenji Aiko
 

Viewers also liked (12)

Tmux tips and_tricks
Tmux tips and_tricksTmux tips and_tricks
Tmux tips and_tricks
 
tmux
tmuxtmux
tmux
 
Introduction to Tmux - Codementor Tmux Office Hours Part 1
Introduction to Tmux - Codementor Tmux Office Hours Part 1Introduction to Tmux - Codementor Tmux Office Hours Part 1
Introduction to Tmux - Codementor Tmux Office Hours Part 1
 
How To Access Code In Large w/ Vim
How To Access Code In Large w/ VimHow To Access Code In Large w/ Vim
How To Access Code In Large w/ Vim
 
Dettol Dish Washer
Dettol Dish WasherDettol Dish Washer
Dettol Dish Washer
 
Vim survival guide
Vim survival guideVim survival guide
Vim survival guide
 
Introduction to Vim
Introduction to VimIntroduction to Vim
Introduction to Vim
 
Real programmers use programming languages (Not shell scripts)
Real programmers use programming languages (Not shell scripts)Real programmers use programming languages (Not shell scripts)
Real programmers use programming languages (Not shell scripts)
 
Vim Hacks
Vim HacksVim Hacks
Vim Hacks
 
Vimbar
VimbarVimbar
Vimbar
 
数式を使わないJubatus入門 分散処理編
数式を使わないJubatus入門 分散処理編数式を使わないJubatus入門 分散処理編
数式を使わないJubatus入門 分散処理編
 
Introduction to Vim 8.0
Introduction to Vim 8.0Introduction to Vim 8.0
Introduction to Vim 8.0
 

Similar to TMUX Rocks!

Chroma key-in-windows-movie-maker
Chroma key-in-windows-movie-makerChroma key-in-windows-movie-maker
Chroma key-in-windows-movie-maker
Daniel Downs
 
44CON 2014 - Switches Get Stitches, Eireann Leverett & Matt Erasmus
44CON 2014 - Switches Get Stitches,  Eireann Leverett & Matt Erasmus44CON 2014 - Switches Get Stitches,  Eireann Leverett & Matt Erasmus
44CON 2014 - Switches Get Stitches, Eireann Leverett & Matt Erasmus
44CON
 
Uses of tmux explained
Uses of tmux explainedUses of tmux explained
Uses of tmux explained
Stanislas Polu
 

Similar to TMUX Rocks! (20)

tmux - An overview of the features of this powerful terminal multiplexer.
tmux - An overview of the features of this powerful terminal multiplexer.tmux - An overview of the features of this powerful terminal multiplexer.
tmux - An overview of the features of this powerful terminal multiplexer.
 
screen and tmux
screen and tmuxscreen and tmux
screen and tmux
 
Improving your shell usage - 2009
Improving your shell usage - 2009Improving your shell usage - 2009
Improving your shell usage - 2009
 
Tmux and Tmuxinator ~ Rise of the Machines
Tmux and Tmuxinator  ~ Rise of the MachinesTmux and Tmuxinator  ~ Rise of the Machines
Tmux and Tmuxinator ~ Rise of the Machines
 
Tmux quick intro
Tmux quick introTmux quick intro
Tmux quick intro
 
Small Screen Development
Small Screen DevelopmentSmall Screen Development
Small Screen Development
 
Pairing with tmux and vim for DevOps Days Austin 2015
Pairing with tmux and vim for DevOps Days Austin 2015Pairing with tmux and vim for DevOps Days Austin 2015
Pairing with tmux and vim for DevOps Days Austin 2015
 
Linux Command Line Multitasking
Linux Command Line MultitaskingLinux Command Line Multitasking
Linux Command Line Multitasking
 
Chroma key-in-windows-movie-maker
Chroma key-in-windows-movie-makerChroma key-in-windows-movie-maker
Chroma key-in-windows-movie-maker
 
44CON 2014 - Switches Get Stitches, Eireann Leverett & Matt Erasmus
44CON 2014 - Switches Get Stitches,  Eireann Leverett & Matt Erasmus44CON 2014 - Switches Get Stitches,  Eireann Leverett & Matt Erasmus
44CON 2014 - Switches Get Stitches, Eireann Leverett & Matt Erasmus
 
Machinima --How To in Second Life
Machinima --How To in Second LifeMachinima --How To in Second Life
Machinima --How To in Second Life
 
Tmux Development Workflow
Tmux Development WorkflowTmux Development Workflow
Tmux Development Workflow
 
2016 nov-16 grenoble-floss_tmux
2016 nov-16 grenoble-floss_tmux2016 nov-16 grenoble-floss_tmux
2016 nov-16 grenoble-floss_tmux
 
Kodar-lan - Text and editors Vi/Vim
Kodar-lan - Text and editors Vi/VimKodar-lan - Text and editors Vi/Vim
Kodar-lan - Text and editors Vi/Vim
 
Using the cisco console in linux
Using the cisco console in linux Using the cisco console in linux
Using the cisco console in linux
 
tmux عدنان الشعلة شرح برنامج
tmux عدنان الشعلة شرح برنامج tmux عدنان الشعلة شرح برنامج
tmux عدنان الشعلة شرح برنامج
 
Ultimate Unix Meetup Presentation
Ultimate Unix Meetup PresentationUltimate Unix Meetup Presentation
Ultimate Unix Meetup Presentation
 
Ci For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or GalCi For The Web 2.0 Guy Or Gal
Ci For The Web 2.0 Guy Or Gal
 
21 command prompt tricks and hacks
21 command prompt tricks and hacks21 command prompt tricks and hacks
21 command prompt tricks and hacks
 
Uses of tmux explained
Uses of tmux explainedUses of tmux explained
Uses of tmux explained
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Choreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software EngineeringChoreo: Empowering the Future of Enterprise Software Engineering
Choreo: Empowering the Future of Enterprise Software Engineering
 
Quantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation ComputingQuantum Leap in Next-Generation Computing
Quantum Leap in Next-Generation Computing
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Decarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational PerformanceDecarbonising Commercial Real Estate: The Role of Operational Performance
Decarbonising Commercial Real Estate: The Role of Operational Performance
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
 
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
TEST BANK For Principles of Anatomy and Physiology, 16th Edition by Gerard J....
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 

TMUX Rocks!