tmux github

前言

因為系上開給程式設計一的 VM 需要設定 cloudflare tunnel 才能連線
( 有興趣可以看我的 cloudflare-tunnel 設定過程 )

所以想用 tmux 來讓 tunnel 一直在背景執行
也可以隨時查看 tunnel 的狀態

tmux 概念

tmux 可以分成三個層級

  1. Session
  2. Window
  3. Pane

Session

Session 是 tmux 的最高層級
可以想像成一個 tmux 的工作區
一個 Session 可以有多個 Window

tmux ls : list session ( 列出所有可用的 session )

Window

Window 是 tmux 的第二層
可以想像成一個 Session 中的不同視窗
一個 Window 可以有多個 Pane

Pane

Pane 是 tmux 的第三層
可以想像成一個 Window 中的不同分割畫面
一個 Pane 只能有一個 Shell
同一個 Window 中的 Pane 可以被水平或垂直分割
tmux +s

( 所以可以被切成這樣 )

tmux 常用指令

如果是在 tmux 中,可以直接按 Ctrl + b 來進入 tmux 的指令模式
( 像是在 vim 中按 : 一樣 )

Session

從 command line :

  • tmux new -s <session-name> : 新增一個名為 <session-name> 的 session
  • tmux ls : 列出所有可用的 session
  • tmux attach -t <session-name> : 連接到名為 <session-name> 的 session

在 tmux 中 :

  • Ctrl + b + d : 離開 tmux session
    並不會把 session 關掉,只是離開而已
    所以在 session 中的程式還是會繼續執行 !!!
  • Ctrl + b + s : 列出所有可用的 session tmux +s

Window

  • Ctrl + b + c : 新增一個 window
  • Ctrl + b + n : 切換到下一個 window
  • Ctrl + b + p : 切換到上一個 window
  • Ctrl + b + w : 列出所有可用的 window

Pane

pane 分割:

  • Ctrl + b + % : 垂直分割畫面 ( 左右分割 )
  • Ctrl + b + " : 水平分割畫面 ( 上下分割 )
  • Ctrl + b + x : 關閉目前的 pane

調整 pane 的大小: 可以先按 Ctrl + b 再按 : 進入 tmux 的指令模式
然後輸入 resize-pane ( 可以按 Tab 來自動補全 )
再加上 -U ( 上 ) -D ( 下 ) -L ( 左 ) -R ( 右 )
再加上數字來調整 pane 的大小
resize-pane

在 pane 之間切換:

  • Ctrl + b + <arrow-key> : 切換到指定的 pane
  • Ctrl + b + q : 會在 pane 上顯示一個數字
    • Ctrl + b + q + <number> : 切換到指定的 pane

pane ls