Tmux的超絕便利 (基礎篇)

上面提到服務器的任務不間斷運行,就是利用了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 重要概念

第一,Tmux中,千萬不要去背和記長度超過1個字母的命令!全部都按照本身的順手程度,在.tmux.conf配置文件中綁定快捷鍵,甚至窗口改變大小的命令也不用記,只需改成用鼠標調整便可。編程

第二,在Tmux邏輯中,分清楚Server > Session > Window > Pane這個大小和層級順序是極其重要的,直接關係到工做效率:vim

  • Server:是整個tmux的後臺服務。有時候更改配置不生效,就要使用tmux kill-server來重啓tmux。
  • Session:是tmux的全部會話。我以前就錯把這個session當成窗口用,形成了不少不便裏。一把只要保存一個session就足夠了。
  • Window:至關於一個工做區,包含不少分屏,能夠針對每種任務分一個Window。以下載一個Window,編程一個window。
  • Pane:是在Window裏面的小分屏。最經常使用也最好用。

瞭解了這個邏輯後,整個Tmux的使用和配置也就清晰了。windows

(ps:下面這種方便好看的Status bar狀態欄,顯示的是windows,而不是sessions)緩存

image

Tmux經常使用命令參考

#啓動新session:
$ tmux [new -s 會話名 -n 窗口名]

#恢復session:
$ tmux at [-t 會話名]

#列出全部sessions:
$ tmux ls

#關閉session:
$ tmux kill-session -t 會話名

#關閉整個tmux服務器:
$ tmux kill-server

Tmux 經常使用內部命令

所謂 內部命令,就是進入 Tmux後,並按下 前綴鍵後的命令,通常前綴鍵爲 Ctrl+b. 雖然ctrl和b離得很遠可是不建議改前綴鍵,由於別的鍵也不見得方便好記不衝突。仍是記憶默認的比較可靠。
  • 刷新配置文件:<前綴鍵>r
  • 下載和更新Plugins:<前綴鍵>I
  • Window 窗體:bash

    • 關閉當前Window: <前綴鍵>&
    • 建立新Window: <前綴鍵>c
    • 列出全部Windows: <前綴鍵>w
    • 後一個Window: <前綴鍵>n
    • 前一個Window: <前綴鍵>p
    • 重命名當前Window: <前綴鍵>,
    • 修改當前Window位置(序號):.
  • Pane 小面板:服務器

    • 關閉當前Pane: <前綴鍵>x
    • 上下分割Pane: <前綴鍵>%
    • 左右分割Pane: <前綴鍵>"
    • 最大化/最小化 Pane: <前綴鍵>z
    • 顯示每一個Pane的編號,能夠按下數字鍵選中Pane: <前綴鍵>q
    • 與上一個窗格交換位置: <前綴鍵>{
    • 與下一個窗格交換位置: <前綴鍵>}
  • Session 會話:session

    • 啓動新會話: <前綴鍵>:new<回車>
    • 列出全部會話: <前綴鍵>s
    • 重命名當前會話: <前綴鍵>$

Tmux插件管理器(TPM: Tmux Package Manager)

參考:TPM官網

和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的配置文件

配置文件默認位於~/.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、重啓電腦,都沒達成。
Tmux會有一個叫Tmux-server的東西。只要把它kill,重啓tmux就OK了:

$ tmux kill-server -a

Tmux沒法持久保存session問題

它雖然好用,可是缺點是關機的話session就全都消失了。要解決這點,須要安裝單獨的插件。
這個時候你就須要Tmux-Resurrect插件來了,地址在這
插件說明裏很清楚的寫了,tmux一旦關機,就會失去一切的設置。因此還必須用插件來解決。

Tmux中的vim等軟件顏色丟失

這是由於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中鼠標滾屏不能用

tmux中鼠標滾屏默認是關閉的,且不是很容易像開關同樣開啓支持。
看過了一些stackoverflow嘗試了一些解決方案,發現沒有一個管用。若是比這個還麻煩,暫時我就以爲沒有必要再折騰了,直接用原生的屏幕滾動瀏覽快捷鍵便可:
Prefix + [,而後直接用上下箭頭,或者PnUpPnDown便可

相關文章
相關標籤/搜索