轉自 https://larrylu.blog/tmux-33a24e595fbc
--
身為一名開發者對終端機應該不陌生,不管是要用 vim 修改文件內容、執行腳本、ssh 到遠端伺服器都會用到終端機。
這邊要介紹給大家一個工具 tmux,tmux 是個 terminal multiplexer,他除了可以保存 session 外,還有視窗分割、視窗切換、多人共享畫面等等功能,廢話不多說,直接進入正題。
安裝
Mac OS
首先要先安裝 Homebrew,沒有裝過的話先跑以下指令安裝
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
再用 Homebrew 安裝 tmux
brew update
brew install tmux
Debian / Ubuntu
sudo apt-get install tmux
RedHat / CentOS
yum install tmux
安裝完跑跑看tmux
,最下面有出現一條綠色的狀態列就是安裝成功了

基本概念

server
第一次跑 tmux 時會自動開啟一個 tmux server,server 會負責管理所有的session
session
一個終端機裡面可以有多個 session,每次下 tmux
下面跑出狀態列都是開一個新的 session,每個 session 之間彼此獨立,通常是一個專案會開一個 session,如果要切換到其他專案就切換 session 就好了
window
window 就是上面看到的整個終端機的畫面,一個 session 裡面可以有多個 window,通常開發專案時可能會需要跑一些東西,就可以把幾個 window 開在背景跑
pane
可以把一個 window 切成好幾個小區塊,每個區塊就是一個 pane,通常會用來觀察互動:譬如說有兩個 pane 分別跑 server 跟 client,client 一發出訊息 server 就要收到並且 log 出來,用多個 pane 的話就可以清楚看到他們的互動
有了基本概念之後就來實際操作看看吧~
常用操作
記得要先啟動 tmux,而且在按任何快捷鍵之前一定要先按 Ctrl + b
,譬如說要水平分割出一個 pane,就要先按 Ctrl + b
再按 %
pane

window

session
下面表格 $ 開頭的是指令不是快捷鍵

常見的使用場景
scenario 1:一邊跑程式,一邊監控 CPU 使用率
很簡單,開兩個 pane,一個跑程式一個跑 top
就可以了

scenario 2:一邊寫程式一邊看結果
跟上面一樣,另外開一個小小的 pane 跑程式就可以了

scenario 3:ssh 到遠端伺服器跑程式
平常 ssh 到遠端機器上跑程式,只要 ssh 斷了程式就會被關閉,解決方法是用 tmux 開一個 session 讓他跑在背景,即便 ssh 登出了,tmux server 還是
會幫你留住那個 session,所以程式還是會一直跑在背景,可以用來在遠端機器上跑 api server

總結
以上是 tmux 的一些簡單介紹,作者我自從用了他之後就對他愛不釋手~所以寫了這篇文章帶大家認識這個工具。
如果想要看比較詳細的教學可以看看 Tutorial — tmux Basics ,想看快捷鍵大全的話我很推薦這一份 cheatsheet,希望大家用了 tmux 之後都能讓開發更有效率。
--