前天隨意點開博客園,看到了一篇關於tmux的文章 Tmux - Linux從業者必備利器,特意還點進去看了。畢竟Linux對於做游戲服務端開發的我來說,太熟悉不過了。不過我就粗略地看了一眼,就關掉了。直到第二天碼農周刊
就推薦了這篇文章,才引起我真正的關注。tmux
真的那么好用嗎?所以我自己也倒騰來一遍,的確在許多場景下還是非常有用的。如:
- 做服務器的,肯定需要關注性能的,而tmux多個pane可以很方便同時關注多項性能指標;
- 我們的游戲服剛好有多個服務存在,而聯調多個服務的時候,可以同時看到多個控制台確實很方便。
以上並不是其它方式不可以,譬如我用xshell的,同時看多個xshell可以達到相同的效果。但切換的時候還是有些不方便。 因為環境不同,原作者用Mac,而我用CentOS,有些地方存在不一樣,故記載方便自己以后查閱。
CentOS下安裝
首先我是用yum install tmux
嘗試安裝的。估計沒有源,沒有找到tmux。所以習慣性直接找源代碼安裝。
但是其中有依賴,需要先安裝libevent
。
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz tar xzvf libevent-2.0.21-stable.tar.gz cd libevent-2.0.21-stable ./configure && make make install
然后再下載源碼安裝tmux
git clone git://git.code.sf.net/p/tmux/tmux-code tmux cd tmux sh autogen.sh ./configure && make make install
過程中遇到了兩個報錯,解決都比較簡單,當然是查閱資料后。
問題1:
期間我遇到了執行autogen.sh 報錯,原因是我沒有安裝automake。這個直接yum install automake
就簡單解決了。
問題2:
執行的時候遇到
libevent-2.0.so.5: cannot open shared object file: No such file or directory
的報錯,解決辦法也比較簡單,既然找不到,那就換個找得到的地方唄。
ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-2.0.so.5 # 32位系統 ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5 # 64位系統
使用和快捷鍵
直接在命令行輸入tmux即可進入tmux的模式。
tmux主要有windows窗體操作和Pane操作,個人覺得windows對於我來說,意義不大(並不是說windows模式沒適用場景),所以這里主要講下Pane的相關操作。
快捷鍵
tmux的快捷鍵都要先按C-b(Ctrl-b)
。然后再按下面表格內容,才能達到相應的效果。
session和其他相關快捷鍵
快捷鍵 | 功能 |
---|---|
C-z | 關閉tmux. |
: | 進入tmux命令行模式. |
? | 列出所有快捷鍵. |
t | 顯示時間. |
d | 退出當前tmux客戶端,tmux后台運行. |
$ | 重命名當前session. |
s | 切換session 顯示所有session並切換到某一個session. |
( | 切換session 切換到上一個session. |
) | 切換session 切換到下一個session. |
L | 切換session 到前一個活躍的session. |
window相關快捷鍵
快捷鍵 | 功能 |
---|---|
c | 新增一個window. |
& | 退出當前window. |
, | 重命名當前window. |
l | 跳轉到上一個所在window. |
i | 顯示當前window的信息. |
w | 切換window 顯示所有window並切換window. |
0 to 9 | 切換window 到相應編號的window. |
p | 切換window 上一個window. |
n | 切換window 下一個window. |
’ | 切換window 到輸入編號的window. |
f | 切換window 到搜索到的window. |
Space | 改變當前window下的pane布局. |
pane相關快捷鍵
快捷鍵 | 功能 |
---|---|
! | 從window移除當前pane. |
" | 將當前pane變成上下兩個pane. |
% | 將當前pane變成左右兩個pane. |
x | 關閉當前pane. |
q | 顯示pane的索引. |
z | 最大化或者恢復當前pane. |
{ | 跟前一個pane交換位置. |
} | 跟后一個pane交換位置. |
o | 切換Pane 到下一個pane. |
; | 切換Pane 進入到前一個操作過的pane. |
Up, Down Left, Right | 切換Pane 使用方向鍵切換到相應方向的pane. |
可能有些快捷鍵有些出入,可以的話提醒下。另外有些快捷鍵沒有搞懂,而且快捷鍵比較多,個人覺得記得主要的幾個切換快捷鍵就足夠用來。比較tmux只是一個協助工具,沒有必要在其上面那么用心。加粗的是個人覺得比較實用的。
tmux不中斷session的模式確實很666666,每次連回去就可以快速接上上次結束的環境。而且多個pane也非常適合要開啟並監控多個服務的情況。
參考資料
- http://cenalulu.github.io/linux/tmux/
- http://elroyjetson.org/dev-notes/centos/installing-tmux-on-centos-6-2
- http://www.nigeldunn.com/2011/12/11/libevent-2-0-so-5-cannot-open-shared-object-file-no-such-file-or-directory/
文章同步到github博客,請轉載請保留原文鏈接: