前言
最近剛好再弄一些集成式環境設定
從大一開始, 一直以來都覺得自己 tmux 用法總是有些雜亂和不夠完整
很久沒寫文章了, 乾脆把 tmux 抓出來複習一下順便做個紀錄吧!
什麼是 tmux ?
通常你會點進來, 大概都是對 tmux 略知一二了..XD
tmux — Terminal Multiplexer
說來也很簡單, 跟字面上的意思相符
一個實用的工具方便你對 terminal 進行視窗的分割、切換等相關多工
上的操作
Outline
- Install
- Basic Usage
- user prefix - .tmux.conf setting
Install
這應該不用多談了吧, 看你的作業系統、環境、套件管理程式決定安裝方法
apt-get install tmux
pkg install tmux
Basic Usage
Create tmux session
直接在 console 輸入 tmux
就可以囉, 這時候 tmux 就會創立一個 tmux session, 通常為 session 0
然後在裏面你就可以進行各式各樣 tmux 實用的功能了
Session 是甚麼呢? 我們後面在 Multiple Session Control 時會再提
Prefix key
tmux 在進行相關操作時, 是透過鍵盤配合指令完成的
而其中你要進行有關 tmux 的相關操作時, 必須先下一個 prefix 鍵
這樣才會讓 tmux 知道, 你要針對 tmux 做操作了
預設的 prefix 鍵是 ctrl+b
, 如果覺得 ctrl+b
的位置太遠
你也可以透過後面我會提的 .tmux.conf
去設定自己習慣的 prefix key
常常有人將 prefix 設成
ctrl+a
simple command
tmux 可以透過方便簡單的 command 來讓你維持多個工作視窗或切割等功能
像是, 切割出如下圖般3個分割視窗, 方便你一邊進行 Programing, 一邊進行觀察執行狀況
那接下來我們就直接列出基本簡單常用的功能按鍵鈕來學習吧!
Ctrl+b 後按下的鍵 | English Meaning | 功能和效果 |
---|---|---|
c | create | 新建分頁 |
x | close(? | 關閉目前分頁 |
w | choose | 交互模式選擇分頁 |
n | next | 跳到下一個分頁 |
p | previous | 跳回前一個分頁 |
<number> | 調到指定編號數字的分頁 | |
, | aliase(? | 設定分頁別名 |
d | detached | (純)離開該 tmux session 回到原始 shell |
: | command | tmux command 模式, 使用後可以透過指令進行相關 tmux 操作 |
特別提一下
:
, 使用後就有點像是 tmux <command>, 可以直接在 tmux 裡面下後面 <command> 的部分
Multiple Session Control
前面有提到 tmux 可以建立多個分頁 ( windows ), 並也簡單的教學了如何使用指令切換視窗
但當今天你可能需要並非再同一台 Server 上, 抑或是整個工作環境、階段的切換
那這時候建立多個 session, 切割出工作環境就可以幫上忙了
例如: Session 0 用來作為研發, Session 1 用來作為測試, Session 2 作為正式上線環境
每個 Session 都連到自己所屬的 Server 並創建分頁來進行多工操作
以下就列出如何操作並切換各個 Session~
Command | 功能和效果 | 備註 |
---|---|---|
tmux ls | 顯示目前已經建立的 Session | |
tmux attach -t |
進入某個已經建立的 Session | 1. attach 可以簡寫成 att a 都可 2. 想直接進入之前最後的 Session |
tmux new -s |
創建自訂義名稱的 session | |
tmux rename -t |
重命名 | |
ctrl+b + s |
交互模式選擇 session |
tmux.conf
好啦, 到這裡你已經學會基本上 23 成 tmux 的功夫了, 也別小看這 23 成, 用的順手其實也勘用了(汗
那接下來要教甚麼呢, 算是一些比較額外的, 方便你去自訂義你的 tmux, 像是:
- 設個順手的按鍵
- 調整 tmux 視窗一些 information 外觀位置
- 顯示更多你想要的資訊
- 更多更懶人的快捷方法...
要達成這些, 你就可以透過撰寫你自己專屬的 tmux 設定檔, 來達成
Getting Start
要設定自己定義的 tmux 設定檔, 可以透過撰寫 ~/.tmux.conf
, 自己家目錄底下的 .tmux.conf
達成
這邊就列出幾個我覺得比較實用的功能, 實際上還能達成更多自定義的調教, 可能就要各為自己去體會和嘗試了XD
# 修改 prefix Ctrl+B 為 Ctrl+A
unbind C-b
set -g prefix ^A
bind b send-prefix
# 透過 bind 和 unbind, 你就可以設定符合自己習慣的按鍵, 而不是照著 tmux 原本的方式喔~ 例如..
bind v split-window -h
bind s split-window -v
# 設定 tmux 相關 information bar..
set -g status-left "..."
set -g status-right "..."
更多的也可以參考我目前在 github 上的 dotfile tmux repo
雖然目前我也還沒寫很多就是了XD, 有機會在修修改改~
那大概這樣XD