本文詳細介紹tmux的概念和搭建過程
本博客已經遷移至:
為了更好的體驗,請通過此鏈接閱讀:
http://cenalulu.github.io/linux/tmux/
文章歡迎轉載,但轉載時請保留本段文字,並置於文章的頂部
作者:盧鈞軼(cenalulu)
本文原文地址:http://cenalulu.github.io/linux/tmux/
tmux
為什么要用tmux
tmux是什么?tmux是linux中一種管理窗口的程序。那么問題來了:Mac自帶的Iterm2很好用啊。既支持多標簽,也支持窗體內部Panel的分割,為什么還要用tmux?其實,多標簽和分割窗體只是tmux的部分功能。用tmux的主要原因是它提供了一個窗體組隨時存儲和恢復的功能。看看以下的使用場景是否適合你:
- 公司台式機開了一堆vim和log打印窗口下班了。到家后靈感突發,想要繼續coding,登陸VPN,SSH連上台式后發現又要重新打開各種窗口,瞬間沒心情了。。。FML!這個時候你就可以在你的公司台式機上裝個tmux。同一組工作環境,在多處共享。
- 公司服務器上調試程序,開了一堆窗口。出去吃了個飯,發現SSH超時了,
broken pipe
。重頭開始。。。FML!如果你之前使用了tmux就不會有這樣的問題,attach就能找回原來打開的那些窗口。
tmux的基本概念
我們先來理解下tmux的幾個元素。tmux的主要元素分為三層:
- Session 一組窗口的集合,通常用來概括同一個任務。session可以有自己的名字便於任務之間的切換。
- Window 單個可見窗口。Windows有自己的編號,也可以認為和ITerm2中的Tab類似。
- Pane 窗格,被划分成小塊的窗口,類似於Vim中 C-w +v 后的效果。
為了更好的理解,下面是三個元素在tmux中的具體展現。

可以看到Session總在tmux的左下角顯示,通常會為他命名。例如我正在寫博客,開了很多窗口那么我就會把這組窗口命名為blog
方便之后的重連和切換。而Window也會在最下方以一種Tab的形式展現。每個window都有自己的需要,也會以當前活動進程的名字命名。而Pane就比較好理解,即把單個窗口分割成若干個小塊后的元素。
安裝
本文以Mac環境為例。Linux的方法類似Centos系列的可以用yum install tmux
安裝。
brew install tmux
安裝完直接執行tmux可能會有以下報錯,按照下面的步驟執行命令即可
$junyilu> tmux
dyld: Library not loaded: /usr/local/lib/libevent-2.0.5.dylib
Referenced from: /usr/local/Cellar/tmux/1.9a/bin/tmux
Reason: image not found
Trace/BPT trap: 5
$junyilu> brew link libevent
Linking /usr/local/Cellar/libevent/2.0.22...
Error: Could not symlink lib/pkgconfig/libevent.pc
/usr/local/lib/pkgconfig is not writable.
$junyilu> sudo chown junyilu /usr/local/lib/pkgconfig
$junyilu> brew link libevent
Linking /usr/local/Cellar/libevent/2.0.22... 25 symlinks created
tmux的基本操作
Prefix-Command
前置操作:所有下面介紹的快捷鍵,都必須以前置操作開始。tmux默認的前置操作是CTRL+b
。例如,我們想要新建一個窗體,就需要先在鍵盤上摁下CTRL+b
,松開后再摁下n
鍵。
下面所有的prefix
均代表CTRL+b
Session相關操作
操作 | 快捷鍵 |
---|---|
查看/切換session | prefix s |
離開Session | prefix d |
重命名當前Session | prefix $ |
Window相關操作
操作 | 快捷鍵 |
---|---|
新建窗口 | prefix c |
切換到上一個活動的窗口 | prefix space |
關閉一個窗口 | prefix & |
使用窗口號切換 | prefix 窗口號 |
Pane相關操作
操作 | 快捷鍵 |
---|---|
切換到下一個窗格 | prefix o |
查看所有窗格的編號 | prefix q |
垂直拆分出一個新窗格 | prefix " |
水平拆分出一個新窗格 | prefix % |
暫時把一個窗體放到最大 | prefix z |
tmux的一些個性化定制
默認的tmux風格比較朴素甚至有些丑陋。如果希望做一些美化和個性化配置的話,建議使用gpakosz的tmux配置。它的本質是一個tmux配置文件,實現了以下功能:
- 基於powerline的美化
- 顯示筆記本電池電量
- 和Mac互通的剪切板
- 和vim更相近的快捷鍵
安裝方式也很簡單如下 (注意:如果想使用powerline美化需要先安裝powerline,具體方法見之前的博文)
$ cd
$ rm -rf .tmux
$ git clone https://github.com/gpakosz/.tmux.git
$ ln -s .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local .
安裝完以后就能獲得以下效果了: