tmux 顧名思義 terminal multiplexer 是一個終端多工器,什麼時候會需要呢?
- 當你需要開啟多個終端視窗,但是又不希望底下的視窗列被擠得滿滿
- 階層的概念讓你可以將終端依照任務的需求群組起來 (Session -> Window -> Pane)
- 使用 ssh 連入主機時,可以方便 user 不需要開啟多個 ssh 連線也可以開啟多個終端視窗
以下就紀錄一下這幾天下來的一些使用心得和筆記
Installation
sudo apt-get install tmux
Hierachy
Session 可以把他想像成 task 的概念,要完成一個 task 可能會需要開啟很多的終端。例如: 開啟 vim 的終端、開啟 git 的終端、開啟 grep 的終端, 等等...。這一個個的終端在 tmux 當中就是一個一個的 Window。所以,Window 算是一個終端基本單元,而 Session 就是 Window 的容器。
tmux 的功能鍵有一個前綴,預設是 Ctrl + b,但是改成 Ctrl + a 應該會比較方便, 下面用 Prefix 表示
tmux new -s <session-name> // 創建一個 session, 然後進入該 session
tmux kill-session -t <session-name> // 刪除 session
當你建立了一個 session,你可以在任意時間離開它,然後在任意時間回到這個 session 而不遺失任何你離開前開啟的 window。
<Prefix> + d // 離開 session, d: detach
<Prefix> + s // 列出所有 session, 並可以跳轉
tmux attach -t <session-name> // 回到 session
在學會 attach/detach 以後,接著就是如何在 session 裡頭建立 Window
tmux neww -n <window-name> // 建立新 window
<Prefix> + , // 更改 window 名稱
<Prefix> + 數字鍵 // 跳轉 window
<Prefix> + x // 刪除 window
tmux.conf
以上就是一些 tmux 的簡單操作,此外 tmux 有一個 tmux.conf 可以讓使用者將 tmux.conf 客製化成更稱手的兵器。
// remap prefix to Control + a
set -g prefix C-a
unbind C-b
bind C-a send-prefix
// set window start from 1
set -g base-index 1
// scrollback buffer n lines
set -g history-limit 5000
// C-a C-a for the last active window
bind-key C-a last-window
// Highlight active window
set-window-option -g window-status-current-bg red
// Default colors
set -g status-bg black
set -g status-fg white
// Left side of status bar
set -g status-left-length 20
set -g status-left '#[fg=green][#[bg=black,fg=cyan]#S#[bg=black,fg=blue,dim]#[fg=green]]'
// <Prefix> - 水平分割視窗
bind - split-window -v
// <Prefix> - 垂直分割視窗
bind | split-window -h
Reference
-- EOF --
No comments:
Post a Comment