linux開發神器--Tmux


在Linux上工作的朋友,可能會常常遇到這種情況:

痛點1: 在公司用putty連着Linux開發機,程序正跑着,不知不覺到了下班的時候,要和老婆/女朋友約會了,但是程序還沒跑完,並且進度有點緊,還得把工作帶回家,怎么辦?

如果斷開網絡,putty就會斷,無法看到程序跑的怎么樣了。

痛點2: 在Linux上用Vim寫着代碼,想調試一下。要么保存代碼-->退出-->編譯。要么再開一個Terminal窗口,調試的時候要兩個窗口來回切,好麻煩!

 

此時就需要神器Tmux。

Tmux是什么呢?

Tmux 是一個工具,用於在一個終端窗口中運行多個終端會話。不僅如此,你還可以通過 Tmux 使終端會話運行於后台或是按需接入、斷開會話,這個功能非常實用。

 

如何安裝Tmux?

在Ubuntu上安裝Tmux很簡單,只需要執行命令:

sudo apt-get install tmux

即可。

 

如何使用Tmux?

網上關於Tmux的教程其實有很多,我只把實際工作中最實用的部分列出來。

先列一個Tmux最重要的快捷鍵:"ctrl+b"

Tmux為了使其快捷鍵不與Vim以及操作系統等的快捷鍵沖突,設置了一個“快捷鍵前綴”的概念。也就是說,當我們使用Tmux任何快捷鍵的時候,都必須先按"ctrl+b"

針對使用過程,首先明確一下Tmux里的幾個概念:會話、窗口、窗格

我們不去拗口的講這三個概念是什么意思,直接實際操作起來,讓你理解。

使用Tmux,必須首先創建會話。創建方法:

tmux new -s 你指定的會話名

創建成功后,會進入你創建的會話。

 

針對痛點1:

如果這時候我們正跑着代碼,需要斷網了。此時只需要按快捷鍵"ctrl+b",然后再按一下"d"。也就是"ctrl+b"和"d"的組合,就從這個會話中退出了。

但是退出並不意味着結束,當我們回到家,重新用putty連上Linux,仍然可以回到這個"會話"(也就是這個工作狀態)當中來。

通過命令"tmux ls",我們能夠看到目前系統中有哪些會話。

而命令"tmux a -t 你要進入的會話名",就可以實現回到"會話"的功能。

你會發現,上次斷網之前的工作狀態被好好的保存着,可以繼續工作啦。

 

針對痛點2:

我們回到會話中。想再寫代碼的同時調試怎么辦?

Tmux可以實現窗口分屏功能

快捷鍵:"ctrl + b" 和 "%"

你會發現,窗口被分成了兩個窗格。這樣就可以邊寫代碼,邊調試,而不用開兩個terminal了!

 

痛點2的延伸:

你學會了Tmux的分屏功能,用着很爽,邊寫代碼,邊調試。這個時候老大來了,給你一個新任務:寫個小腳本。

因為你正邊寫邊調試代碼,分屏功能用着很爽,肯定不會關掉這個分屏的terminal。只好新開一個terminal咯?

不用這么麻煩!新開一個窗口即可!

快捷鍵:"ctrl + b "和"c"。

你會發現,新開了一個窗口,之前分屏的窗口隱藏了。在terminal最下方,顯示着窗口的編號。此時你蹭蹭蹭把小腳本寫完了,如何返回之前的窗口呢?

快捷鍵:"ctrl + b "和"你要返回的窗口編號"。

如下圖所示。

 

Tmux和Vim的沖突問題:快捷鍵和配色

你進入Tmux后,發現在Tmux里使用Vim,之前設置的插件的快捷鍵不能用了,配色都變了。不要慌,下面是解決方案。

快捷鍵:

打開PuTTY設置界面,在Terminal –> Keyboard下,將The Function keys and keypad從默認選項“ESC[n~”更改為“Xterm R6”,記得保存設置,之后功能鍵就可用了。

如下圖所示。

配色:

兩個解決方法

1、一種解決方法是,export出TERM環境變量為xterm-256color。(同時需要上面快捷鍵的操作,即把默認選項“ESC[n~”更改為“Xterm R6”)直接執行下列代碼:

echo 'export TERM=xterm-256color' >> ~/.bashrc

source ~/.bashrc

2、另一種解決方法是使用-2參數啟動tmux,強制tmux認為終端支持256 colours:

echo 'alias tmux="tmux -2"' >> ~/.bashrc

source ~/.bashrc

 

對於其他功能和快捷鍵,大家就可以自己去探索了,下面是快捷鍵參考

 

按下 Ctrl-b 后的快捷鍵如下:

基礎

  • ? 獲取幫助信息

會話管理

  • s 列出所有會話
  • $ 重命名當前的會話
  • d 斷開當前的會話

窗口管理

  • c 創建一個新窗口
  • , 重命名當前窗口
  • w 列出所有窗口
  • % 水平分割窗口
  • " 豎直分割窗口
  • n 選擇下一個窗口
  • p 選擇上一個窗口
  • 0~9 選擇0~9對應的窗口

窗格管理

  • % 創建一個水平窗格
  • " 創建一個豎直窗格
  • h 將光標移入左側的窗格*
  • j 將光標移入下方的窗格*
  • l 將光標移入右側的窗格*
  • k 將光標移入上方的窗格*
  • q 顯示窗格的編號
  • o 在窗格間切換
  • } 與下一個窗格交換位置
  • { 與上一個窗格交換位置
  • ! 在新窗口中顯示當前窗格
  • x 關閉當前窗格

其他

  • t 在當前窗格顯示時間

參考鏈接:

1、Tmux 入門介紹

http://blog.jobbole.com/87278/

2、Tmux 速成教程:技巧和調整

http://blog.jobbole.com/87584/

3、解決tmux在PuTTY下工作異常的問題

http://www.tuicool.com/articles/2eeYBz


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM