tmux安裝使用教程
下載安裝
1. tar xvf tmux-2.6.tar.gz
2. ./configure && make && sudo make install
錯誤信息: error: libevent not found
-
sudo apt-get install libevent-dev
錯誤信息: configure: error: “curses not found”
-
sudo apt-get install ncurses-dev
源碼安裝 (推薦使用)
git clone https://github.com/tmux/tmux.git
cd tmux
sh autogen.sh
./configure && make
sudo make install
配置
-
vim ~/.tmux.conf
基本操作信息查詢
- tmux list-keys 列出所有可以的快捷鍵和其運行的 tmux 命令
- tmux list-commands 列出所有的 tmux 命令及其參數
- tmux info 流出所有的 session, window, pane, 運行的進程號等。
窗口控制
先來看看在 tmux 之外如何進行控制session 會話:
-
session是一個特定的終端組合。輸入tmux就可以打開一個新的session
- tmux new -s session_name 創建一個叫做 session_name 的 tmux session
- tmux attach -t session_name 重新開啓叫做 session_name 的 tmux session
- tmux switch -t session_name 轉換到叫做 session_name 的 tmux session
- tmux list-sessions / tmux ls 列出現有的所有 session
- tmux detach 離開當前開啓的 session
- tmux kill-server 關閉所有 session
-
window 窗口:session 中可以有不同的 window(但是同時只能看到一個 window)
- tmux new-window 創建一個新的 window
- tmux list-windows
- tmux select-window -t :0-9 根據索引轉到該 window
- tmux rename-window 重命名當前 window
-
pane 面板:window 中可以有不同的 pane(可以把 window 分成不同的部分)
- tmux split-window 將 window 垂直劃分爲兩個 pane
- tmux split-window -h 將 window 水平劃分爲兩個 pane
- tmux swap-pane -[UDLR] 在指定的方向交換 pane
- tmux select-pane -[UDLR] 在指定的方向選擇下一個 pane
更常用的是在 tmux 中直接通過默認前綴 ctrl + b 之後輸入對應命令來操作,具體如下(這裏只列出輸入默認前綴之後需要輸入的操作):
-
基本操作
- ? 列出所有快捷鍵;按q返回
- d 脫離當前會話,可暫時返回Shell界面
- s 選擇並切換會話;在同時開啓了多個會話時使用
- D 選擇要脫離的會話;在同時開啓了多個會話時使用
- : 進入命令行模式;此時可輸入支持的命令,例如 kill-server 關閉所有tmux會話
- [ 複製模式,光標移動到複製內容位置,空格鍵開始,方向鍵選擇複製,回車確認,q/Esc退出
- ] 進入粘貼模式,粘貼之前複製的內容,按q/Esc退出
- ~ 列出提示信息緩存;其中包含了之前tmux返回的各種提示信息
- t 顯示當前的時間
- ctrl + z 掛起當前會話
-
窗口操作
- c 創建新窗口
- & 關閉當前窗口
- [0-9] 數字鍵切換到指定窗口
- p 切換至上一窗口
- n 切換至下一窗口
- l 前後窗口間互相切換
- w 通過窗口列表切換窗口
- , 重命名當前窗口,便於識別
- . 修改當前窗口編號,相當於重新排序
- f 在所有窗口中查找關鍵詞,便於窗口多了切換
-
面板操作
- " 將當前面板上下分屏(我自己改成了 |)
- % 將當前面板左右分屏(我自己改成了 -)
- x 關閉當前分屏
- ! 將當前面板置於新窗口,即新建一個窗口,其中僅包含當前面板
- ctrl+方向鍵 以1個單元格爲單位移動邊緣以調整當前面板大小
- alt+方向鍵 以5個單元格爲單位移動邊緣以調整當前面板大小
- q 顯示面板編號
- o 選擇當前窗口中下一個面板
- 方向鍵 移動光標選擇對應面板
- { 向前置換當前面板
- } 向後置換當前面板
- alt+o 逆時針旋轉當前窗口的面板
- ctrl+o 順時針旋轉當前窗口的面板
- z 最大化當前所在面板
- page up 向上滾動屏幕,q 退出
- page down 向下滾動屏幕,q 退出
我的配置
vim ~/.tmux.conf
set -g mouse on
unbind %
bind | split-window -h
unbind '"'
bind - split-window -v
#-- statusbar --#
set -g status-justify centre
set -g status-left "#[fg=red]s#S:w#I.p#P#[default]"
set -g status-right '[#(whoami)#(date +" %m-%d %H:%M ")]'
set -g status-left-attr bright
set -g status-left-length 120
set -g status-right-length 120
# set -g status-utf8 on
set -g status-interval 1
set -g visual-activity on
setw -g monitor-activity on
setw -g automatic-rename off
# default statusbar colors
set -g status-bg colour235 #base02
set -g status-fg colour136 #yellow
set -g status-attr default
# default window title colors
setw -g window-status-fg colour244
setw -g window-status-bg default
#setw -g window-status-attr dim
# active window title colors
setw -g window-status-current-fg colour166 #orange
setw -g window-status-current-bg default
#setw -g window-status-current-attr bright
# window title string (uses statusbar variables)
set -g set-titles-string '#T'
set -g status-justify "centre"
set -g window-status-format '#I #W'
set -g window-status-current-format ' #I #W '
# pane border
set -g pane-active-border-fg '#55ff55'
set -g pane-border-fg '#555555'
# message text
set -g message-bg colour235 #base02
set -g message-fg colour166 #orange
# pane number display
set -g display-panes-active-colour colour33 #blue
set -g display-panes-colour colour166 #orange
# clock
setw -g clock-mode-colour colour64 #green
bind r source-file ~/.tmux.conf \; display "Reloaded!"