上面提到服務器的任務不間斷運行,就是利用了tmux的特性。就是說,通常ssh是斷開就會中止全部以前鏈接ssh期間運行的全部processes,而tmux的核心業務不在於把屏幕分紅幾塊好看,而是它能保存session!並且還能多端實時直播session!
瞭解tmux的安裝和使用已經理解,這個短視頻足矣!若是想試試tmux的session共享,讓別的機器或別人像直播同樣看你在命令行裏打字、操做,也用tmux一句話便可,參考這個視頻。git
我萬萬沒想到,將vim打形成IDE、將腳本不間斷運行、讓任務運行狀態多處可觀看的tmux,是這麼簡單。
一句sudo apt-get install tmux
就安裝好,一句tmux
就開啓,一句tmux new -s <session-name>
就能夠建立和保存session。超絕!github
經常使用操做快捷鍵參考。shell
第一,Tmux中,千萬不要去背和記長度超過1個字母的命令!全部都按照本身的順手程度,在.tmux.conf
配置文件中綁定快捷鍵,甚至窗口改變大小的命令也不用記,只需改成用鼠標調整便可。編程
第二,在Tmux邏輯中,分清楚Server > Session > Window > Pane
這個大小和層級順序是極其重要的,直接關係到工做效率:vim
tmux kill-server
來重啓tmux。瞭解了這個邏輯後,整個Tmux的使用和配置也就清晰了。windows
(ps:下面這種方便好看的Status bar狀態欄,顯示的是windows,而不是sessions)緩存
#啓動新session: $ tmux [new -s 會話名 -n 窗口名] #恢復session: $ tmux at [-t 會話名] #列出全部sessions: $ tmux ls #關閉session: $ tmux kill-session -t 會話名 #關閉整個tmux服務器: $ tmux kill-server
所謂內部命令
,就是進入 Tmux後,並按下前綴鍵
後的命令,通常前綴鍵爲Ctrl+b
. 雖然ctrl和b離得很遠可是不建議改前綴鍵,由於別的鍵也不見得方便好記不衝突。仍是記憶默認的比較可靠。
<前綴鍵>r
<前綴鍵>I
Window 窗體:bash
<前綴鍵>&
<前綴鍵>c
<前綴鍵>w
<前綴鍵>n
<前綴鍵>p
<前綴鍵>,
.
Pane 小面板:服務器
<前綴鍵>x
<前綴鍵>%
<前綴鍵>"
<前綴鍵>z
<前綴鍵>q
<前綴鍵>{
<前綴鍵>}
Session 會話:session
<前綴鍵>:new<回車>
<前綴鍵>s
<前綴鍵>$
和vim同樣的思路,須要先安裝tmux專屬的插件管理器,通常都是用這個:tmux plugin manager
,即tpm。注意:文檔裏面都會提到prefix + ...
,其中prefix
指的是tmux的命令前綴,默認是ctrl+b
。
按照官網的作法,很簡單就安裝上了,輸入下面命令:
# 把管理器文件安裝到`~/.tmux/plugins/tpm`之下 此前這些目錄是不存在的 git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm # 新建配置文件 vim ~/.tmux.conf # 將下面內容複製到`~/.tmux.conf` # List of plugins set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' # Other examples: # set -g @plugin 'github_username/plugin_name' # set -g @plugin 'git@github.com/user/plugin' # set -g @plugin 'git@bitbucket.com/user/plugin' # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) run '~/.tmux/plugins/tpm/tpm'
在tpm管理器已經安裝的基礎上:
~/.tmux.conf
文件裏的List of plugins
部分,寫入插件名稱<前綴鍵>I
,這裏面是大寫的i,下載更新插件<前綴鍵>r
從新加載配置文件而後Tmux就完成配置更新了。
配置文件默認位於~/.tmux.conf
.
平常使用中,前綴鍵Ctrl+b
和切換窗口鍵Ctrl+o
等等,實在太麻煩了。因此改快捷鍵有時候是很必要的。
參考這篇文檔。
個人配置以下:
# 基礎設置 #set -g default-terminal "screen-256color" set -g default-terminal "xterm-256color" # recover colorful terminal set -g display-time 3000 set -g escape-time 0 set -g history-limit 65535 set -g base-index 1 set -g pane-base-index 1 # 前綴綁定 (Ctrl+a) #set -g prefix ^a #unbind ^b #bind a send-prefix # 啓用鼠標(Tmux v2.1) set -g mouse on # 選中窗口 bind-key k select-pane -U bind-key j select-pane -D bind-key h select-pane -L bind-key l select-pane -R # copy-mode 將快捷鍵設置爲 vi 模式 setw -g mode-keys vi #<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< # Tmux Plugin Manager(Tmux v2.1) #== TMUX PLUGIN MANAGER ==# # Tmux Resurrect set -g @plugin 'tmux-plugins/tmux-resurrect' # List of plugins set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) run '~/.tmux/plugins/tpm/tpm' #>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
這個主要是因爲Tmux的後臺緩存機制形成的。我就犯了個大錯誤:甚至刪了Tmux、重裝Tmux、重啓電腦,都沒達成。
Tmux會有一個叫Tmux-server
的東西。只要把它kill,重啓tmux就OK了:
$ tmux kill-server -a
它雖然好用,可是缺點是關機的話session就全都消失了。要解決這點,須要安裝單獨的插件。
這個時候你就須要Tmux-Resurrect
插件來了,地址在這。
插件說明裏很清楚的寫了,tmux一旦關機,就會失去一切的設置。因此還必須用插件來解決。
這是由於tmux默認TERM沒有用256color,那麼每次運行tmux時指定color便可,TERM=screen-256color-bce tmux
,或者更簡單一點,在~/.bash.profile
或者~/.zshrc
中設置別名:
alias tmux="TERM=screen-256color-bce tmux"
而後在~/.tmux.conf
文件中加入這句話:
set -g default-terminal "xterm-256color"
tmux中鼠標滾屏默認是關閉的,且不是很容易像開關同樣開啓支持。
看過了一些stackoverflow嘗試了一些解決方案,發現沒有一個管用。若是比這個還麻煩,暫時我就以爲沒有必要再折騰了,直接用原生的屏幕滾動瀏覽快捷鍵便可:Prefix + [
,而後直接用上下箭頭,或者PnUp
和PnDown
便可