我終於會用 tmux 啦 !

其實之前就很想學習怎麼使用了,不過一直拖著沒學
後來因為學校Server真的太常斷線了,快瘋了,做事情做到一半工作階段就要重來
所以稍微看了一下用法然後紀錄一下懶人包。

Install

如果是現成的伺服器,大部分SA都會裝啦

sudo apt-get install tmux

基本操作、概念


圖片源自於這篇文章

其實先看這個的話會霧煞煞,我們先體驗一下 tmux 有趣的功能

從正常畫面,先下指令
tmux

按下 Ctrl+B 再按 %

現在你往右創建了一個新 pane,並且跳過去了 !

然後按下 Ctrl+B 再按 "
現在你往下創建了一個新 pane,並且跳過去了 !

上面這個就是,"一個 window 下 有三個 pane"
這樣也簡單的介紹到了 window 了 !

整理一下簡單的用法

Ctrl+b之後按下的鍵 對應效果
% 水平分割
" 垂直分割
方向鍵 跳到另一個 pane
x 關閉目前的 pane

不過這樣對於 window 的介紹還不夠,我們試著建立新的 window

按下 Ctrl+B 再按 c
我們可以發現,剛剛分割的panel都不見了
而且左下角多了一些東西 !
以我的畫面來說,我多了一個 1:csh*
這就是新增一個 window !

整理一下簡單的用法

Ctrl+b之後按下的鍵 對應效果
c 創建新的 window
& 關閉目前 window
p 跳到前一個 window
n 跳到下一個 window
數字 跳到指定數字的 window
l 上一個你在的 window
  • 請注意,如果你把 window 最後一個也關掉,那這個 session 將也不復存在。
    也就是說,這個工作階段會直接消失哦~
    • 效果同 Ctrl+d

什麼是 Session 呢 ?
我的理解是 : 一個工作階段
一個人有很多的工作階段,像是他可能寫作業寫到一半,臨時想保存這個工作階段
所以他可以跳出這個 session,去創一個新的來做其他事情。

當然,我們也可以創一個新的 window 來代替
不過跳 seesion 可以讓你的工作們切割得比較開
而且後續也有一些關於 session 的操作,搭配起來可以用得更彈性。

讓我們來離開目前 Session 吧 !
按下 Ctrl+B 再按 d

OK,我們跳出了 !

我們看一下目前有什麼 session 正在運作
指令 : tmux ls

讓我們再新增一個 session
指令 : tmux
好,我們新創了一個 session 了,如果上一個 session 的名字是預設的 [0] ,那這個就會是 [1]

接下來的操作就跟之前介紹的很像,我們可以自由地在裡面做事情。
為了方便介紹,我們先退出這個 session

讓我們查看一下我們有哪些 session 正在運作吧。

我的 session 會有這麼多,是因為這些是我自己另外創的,
如果從上面操作到這邊,應該只會有 0 和 1

假設今天我想要結束第 7 號 session ,我們可以用以下指令
tmux kill-session -t 7

想要跳到指定 session (這邊假設6)
tmux attach -t 6
或是
tmux a -t 6

如果我們已經在某個 session 中了,想要直接跳過去的話 :
按下 Ctrl+b 再按 s
可以上下選擇你想要的 session

以下是一些綜合應用的其他常用操作

  • 如果我們想要創見指定名稱的 session
    tmux new -s MyHw
    就會創見一個 MyHw 的 session

  • 想要重新命名某個 session
    tmux rename -t MyHw doneHw

  • 如果我們在某 session 裡面了又想要 rename
    按下 Ctrl+b 再按 :

    • 如果你已經在想要改的session中
      rename-session doneHw
    • 如果在其他 session 想改另一個 s 的名稱
      rename-session MyHw doneHw
      rename -t MyHw doneHw
  • 我想改 window的名子
    按下 Ctrl+b 再按 , 然後直接輸入新的名字
    或是 Ctrl+b 再按 :rename-window <newName>

下面是一些酷炫的操作 ...

已下操作都是進入 tmux 後

Ctrl+b 再按 % 然後 Ctrl+b 再按 t
在有時間的這個pane按enter時間就會消失了
所以這時記得按 ^b 然後 方向鍵 跳回工作 pane

Ctrl+b 再按 c
將pane形成一個圈圈,輪流轉到你目前的pane

Ctrl+b 再按 q
顯示當前window裡的 pane 編號

Ctrl+b 再按 z
留下當前操作的 pane,其他pane都暫時先縮小

.tmux.conf

1
set -g status-right "MeteorV's tmux %H:%M:%S %d-%b-%y"

Refresh 一下設定
tmux refresh-client -S

刪掉所有工作階段,完全重設
tmux kill-server

Ref :

http://www.dayid.org/comp/tm.html
https://blog.longwin.com.tw/2011/04/tmux-learn-screen-config-2011/
https://gist.github.com/spicycode/1229612
https://ithelp.ithome.com.tw/articles/10129761