linux tmux的經驗總結

背景

linux下工作環境,經常見到打開幾十個終端,而且不捨得關閉的情況。即使redhat支持終端標籤頁,redhat支持多個工作區;但仍顯得十分混亂。
終端的layout佈局位置,不能保存。爲了保持操作環境的整潔,經常出現關閉後又一一還原打開的情況。
於是,需要一個可以後臺維持的終端工具(這個工具,就是tmux),而且可以存儲加載終端的layout佈局位置;這樣就可以隨時調取/隱藏(tmux叫attach/detach),得到期望的並且是當前唯一的終端界面。

另外,網上說,tmux也支持ssh登錄界面的保存;這相當於實現了一個功能:一鍵打開n個ssh操作終端。

主要操作實現

安裝

參考:
Tmux 速成教程:技巧和調整
http://blog.jobbole.com/87584/

概念瞭解

  • session(類似一個針對終端的project name)
  • window(類似終端的標籤頁)
  • pane(終端的分屏,這個feature挺重要的)
  • 複製模式(因爲不追求丟棄鼠標的全鍵盤操作,所以不細看tmux這部分內容了;後來體驗幾天發現,複製模式還是有必要了解,依靠鼠標,一些操作無法實現)
  • tmux最新版[當前使用的是tmux 2.5版本]和老版本的命令,是有區別的,所以百度的很多命令是不適用的。

快捷鍵

首先,默認終端裏,輸入tmux,就進入了tmux的界面;tmux的界面與默認終端界面是一致的。只有進入tmux界面,才能使用tmux的快捷鍵;雖然,默認終端下,也支持tmux操作,但沒有快捷鍵支持啊。

快捷鍵是可以定製的。

常用快捷鍵/命令需求 描述
開始tmux 終端命令:tmux
ctrl+b prefix,命令的前綴
新建一個session(會話) 終端命令:tmux new -s projectxxx
脫離detach當前session ctrl+b d
加入attach一個session 終端命令:tmux attach -t projectxxx
查看tmux後臺的session 終端命令:tmux ls
關閉一個session tmux裏直接exit,或者終端命令:tmux kill-session -t projectxxx
新建一個window ctrl+b c
跳轉至windows #1 ctrl+b 1
垂直分屏 ctrl+b %
水平分屏 ctrl+b “
關閉某個分屏 直接exit即可,或者ctrl+b x
分屏間的光標移動 ctrl+b 上下左右按鍵

參考:
Tmux常用快捷鍵以及我會常到的一些問題彙總 - piperck - 博客園
http://www.cnblogs.com/piperck/p/4992159.html

tmux重啓後恢復終端layout界面的方法

注意:tmux是不支持重啓後恢復終端layout界面的。只要不重啓,tmux是一直後臺執行的。
當然,我需要tmux在重啓後,仍有恢復終端layout的能力。方法參考:
自動給tmux現場做備胎
https://segmentfault.com/a/1190000006232298

唯一需要補充的就是,tmux 插件的安裝,ctrl+b r之後,沒有任何信息提示,等插件安裝完成後,纔會有安裝已完成的信息。
另外,插件也可以一個個手動安裝,也不麻煩。

功能 描述
保存tmux的設置環境 ctrl+b ctrl+s
加載tmux的最新設置環境 ctrl+b ctrl+r

如果有多個用戶,比如admin/qilei等

單獨一個tmux,打開多用戶的終端,是沒有問題。只不過保存恢復的操作,會有問題。解決辦法如下:

  1. 先終端進入期望用戶;然後再執行tmux。
  2. tmux的配置目錄,需要複製到各個用戶主目錄裏。

新建windows或者pane(分屏),保留目錄路徑

bind c new-window -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
bind " split-window -c "#{pane_current_path}"

複製模式

Ctrl+b [
進入複製模式,空格標記複製開始,回車結束複製。
同樣,適用於終端上下屏幕的移動瀏覽。按q,就退出複製模式。

Ctrl+b ]
粘貼最後一個緩衝區內容

~/.tmux.conf裏增加下句,使複製模式類似vi操作
setw -g mode-keys vi
爲了更適應vi操作,

bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

unbind-key -T copy-mode-vi v
bind-key -T copy-mode-vi 'v' send -X begin-selection # Begin selection in copy mode.
bind-key -T copy-mode-vi 'C-v' send -X rectangle-toggle # Begin selection in copy mode.
bind-key -T copy-mode-vi 'y' send -X copy-selection # Yank selection in copy mode.

支持鼠標模式

set -g mouse on

這樣就可以支持鼠標滾輪/pagedown等普通操作了。

窗口列表居中(否則session和windows名稱會重疊)

set -g status-justify centre

其它

剛剛使用,還未考慮更細節的東西。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章