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 [new -s 會話名 -n 窗口名]

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

#列出全部會話:
tmux ls

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

#關閉全部會話:
tmux ls | grep : | cut -d. -f1 | awk '{print substr($1, 0, length($1)-1)}' | xargs kill

Tmux 經常使用內部命令

所謂 內部命令,就是進入Tmux後的指令。在按下 前綴鍵後的命令,通常前綴鍵爲 Ctrl+b.
#會話
:new<回車>  啓動新會話
s           列出全部會話
$           重命名當前會話

#窗口
c  建立新窗口
w  列出全部窗口
n  後一個窗口
p  前一個窗口
f  查找窗口
,  重命名當前窗口
&  關閉當前窗口

#窗格(分割窗口)
%  垂直分割
"  水平分割
o  交換窗格
x  關閉窗格
⍽  左邊這個符號表明空格鍵 - 切換佈局
q 顯示每一個窗格是第幾個,當數字出現的時候按數字幾就選中第幾個窗格
{ 與上一個窗格交換位置
} 與下一個窗格交換位置
z 切換窗格最大化/最小化

#調整窗口排序
swap-window -s 3 -t 1  交換 3 號和 1 號窗口
swap-window -t 1       交換當前和 1 號窗口
move-window -t 1       移動當前窗口到 1 號

#同步窗格 
#這麼作能夠切換到想要的窗口,輸入 Tmux 前綴和一個冒號呼出命令提示行,而後輸入:
:setw synchronize-panes

#調整窗格尺寸
#若是你不喜歡默認佈局,能夠重調窗格的尺寸。雖然這很容易實現,但通常不須要這麼幹。這幾個命令用來調整窗格:
PREFIX : resize-pane -D          當前窗格向下擴大 1 格
PREFIX : resize-pane -U          當前窗格向上擴大 1 格
PREFIX : resize-pane -L          當前窗格向左擴大 1 格
PREFIX : resize-pane -R          當前窗格向右擴大 1 格
PREFIX : resize-pane -D 20       當前窗格向下擴大 20 格
PREFIX : resize-pane -t 2 -L 20  編號爲 2 的窗格向左擴大 20 格

Tmux沒法持久保存session問題

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

Tmux安裝插件管理器TPM

和vim同樣的思路,須要先安裝tmux專屬的插件管理器,通常都是用這個:tmux plugin manager,即tpm。注意:文檔裏面都會提到prefix + ...,其中prefix指的是tmux的命令前綴,默認是ctrl+bbash

按照官網的作法,很簡單就安裝上了,輸入下面命令:服務器

# 把管理器文件安裝到`~/.tmux/plugins/tpm`之下 此前這些目錄是不存在的
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

# 新建配置文件
touch ~/.tmux.conf
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' 

# 在tmux運行的時候,找到任意窗口輸入下面這個完成安裝管理器:
tmux source ~/.tmux.conf

tmux安裝插件

在tpm管理器基礎上,咱們直接到~/.tmux.conf文件裏的List of plugins部分,寫入插件名稱,而後按Ctrl+b,再按Ctrl+I,這裏面是大寫的i。而後程序就會自動下載安裝好插件了。session

安裝tmux-resurrect插件

因爲tmux不能持久保存session的特性,咱們須要安裝這個插件來將session的設置徹底保存到本地,而後重啓後也可以快速恢復窗口等設置的內容。
首先在~/.tmux.conf文件的List of plugins部分加入這句話:ssh

set -g @plugin 'tmux-plugins/tmux-resurrect'

保存好後,在tmux的任意窗口按ctrl+b及大寫的I,便可完成下載安裝。佈局

用法

  • prefix + Ctrl-s - 保存session
  • prefix + Ctrl-r - 恢復session

Tmux中的vim等軟件顏色丟失

這是由於tmux默認TERM沒有用256color,那麼每次運行tmux時指定color便可,TERM=screen-256color-bce tmux,或者更簡單一點,在~/.bash.profile或者~/.zshrc中設置別名:this

alias tmux="TERM=screen-256color-bce tmux"

而後在~/.tmux.conf文件中加入這句話:

set -g default-terminal "xterm-256color"

Tmux中鼠標滾屏不能用

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

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'
#>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
相關文章
相關標籤/搜索