Mac tmux 最佳實踐
tmux 是一個終端多路複用器:它允許從單個屏幕創建、訪問和控制多個終端。 tmux 可能會與屏幕分離並繼續在後臺運行,然後重新連接。
第一次看到tmux
的介紹的時候,我其實沒什麼感覺, 覺得沒什麼. 後面用 terminal 多了,遇到了一些問題,然後嘗試解決。最後我重新認真學習了tmux
。它改變了我電腦的習慣。
本文將會花十分鐘介紹,tmux 的基本使用場景。
什麼是 Terminal Session
回憶一下,你日常工作時候使用 terminal 的場景,打開一個 Iterm2
窗口,然後使用 ssh 連接一臺遠程機器,然後進入特定目錄,開始工作,完成工作後,關閉Iterm2
窗口。上面這些步驟,就是一個 terminal session 它的生命週期是跟 terminal 的生命週期綁定在一起的,關閉窗口後 session 就結束,然後下次我們要工作的時候,就重複上面的步驟。
有什麼辦法,可以將 session 跟 terminal 開來,下次再操作的時候,就不需要重複上面的步驟? tmux 可以幫助我們實現這個功能。
我們看看再 tmux 下如何實現上面這個功能把。
在這個演示中:
-
我首先用
tmux new -s test
創建了一個 tmux session ,然後打開一個目錄, -
然後再將 session 剝離,回到 Iterm2 終端,
-
最後我又使用
tmux attach-session
回到原來的目錄,跟剛纔退出去的時候一模一樣。
這就是 tmux 基礎的應用了,剝離 session,並且保持 session 狀態。
TL;DR
tmux 可以幫助我們實現:
它允許在單個窗口中,同時訪問多個會話。這對於同時運行多個命令行程序很有用。
它可以讓新窗口 "接入" 已經存在的會話。
它允許每個會話有多個連接窗口,因此可以多人實時共享會話。
它還支持窗口任意的垂直和水平拆分。
Tmux 基本用法
安裝 Tmux
在 Mac 上,可以使用 brew 來安裝 tmux
brew install tmux
其他環境請參考:Installing tmux[1]
啓動 tmux 與退出 Tmux
安裝完成後, 在 terminal 中輸入 tmux
就可以啓動一個 tmux session 。輸入 exit 就會退出 tmux session ,返回到原來的 terminal 頁面。
前綴鍵
跟其他軟件不一樣的是: tmux 中所有的快捷鍵都需要和前綴快捷鍵 ⌃b
來組合使用(注:⌃
爲 Mac 的 control 鍵), 這樣其實挺好的,減少了與其他軟件衝突的概率。可以通過 ⌃b+?
來查詢所有的快捷鍵。一般把 tmux 的快捷鍵分成三類: 窗口管理、窗格管理、以及 session 管理。
Session 管理
如果運行了多次 tmux
命令則會開啓多個 tmux 會話(session)。在 tmux 會話中,使用前綴快捷鍵 ⌃b
配合以下快捷鍵可操作會話:
-
⌃b + $
重命名當前會話
-
⌃b + s
選擇會話列表
-
⌃b + d
detach 當前會話,運行後將會退出 tmux 進程,返回至 terminal 主頁面。
在 terminal 中,可以這樣操作 session -
tmux new -s foo # 新建名稱爲 foo 的會話
-
tmux ls # 列出所有 tmux 會話
-
tmux a # 恢復至上一次的會話
-
tmux a -t foo # 恢復名稱爲 foo 的會話,會話默認名稱爲數字
-
tmux kill-session -t foo # 刪除名稱爲 foo 的會話
-
tmux kill-server # 刪除所有的會話
配合 alias 會得到更好的體驗,比如我自己的配置
alias tnew='tmux new -s' # 新建一個會話
alias tls='tmux ls'
alias td='tmux detach' # 分離 會話,會保存分離之前的狀態
alias ta='tmux attach -t' # 連接會話
alias tkss='tmux kill-session -t'
窗格管理
Tmux 可以將窗口分成多個窗格(pane),每個窗格運行不同的命令。以下命令都是在 Tmux 窗口中執行。
-
⌃b + %
左右平分出兩個窗格
-
⌃b + "
上下平分出兩個窗格
-
⌃b + x
關閉當前窗格
-
⌃b + {
當前窗格前移
-
⌃b + }
當前窗格後移
-
⌃b + ;
選擇上次使用的窗格
-
⌃b + o
選擇下一個窗格,也可以使用上下左右方向鍵來選擇
-
⌃b + space
切換窗格佈局,tmux 內置了五種窗格佈局,也可以通過
⌥1
至⌥5
來切換 -
⌃b + z
最大化當前窗格,再次執行可恢復原來大小
-
⌃b + q
顯示所有窗格的序號,在序號出現期間按下對應的數字,即可跳轉至對應的窗格
窗口管理
tmux 還有窗口(window) 的概念,當窗格變得擁擠的時候,我們可以再開一個窗口,下面是窗口一些常用的快捷鍵。
-
⌃b + c
新建窗口,此時當前窗口會切換至新窗口,不影響原有窗口的狀態
-
⌃b + p
切換至上一窗口
-
⌃b + n
切換至下一窗口
-
⌃b + w
窗口列表選擇,注意 macOS 下使用
⌃p
和⌃n
進行上下選擇 -
⌃b + &
關閉當前窗口
-
⌃b + ,
重命名窗口,可以使用中文,重命名後能在 tmux 狀態欄更快速的識別窗口 id
-
⌃b + 0
切換至 0 號窗口,使用其他數字 id 切換至對應窗口。
-
⌃b + f
根據窗口名搜索選擇窗口,可模糊匹配。
總結
這篇文章只是總結了一下 tmux 的基本使用以及快捷鍵,還有很多應用場景沒有涉及。比如跟 vim 配合如何更加高效地在 vim 中寫代碼。希望看過這篇文章的朋友,能夠上手體驗一下tmux
, 使用 tmux 生產力。
引用鏈接
[1]Installing tmux: https://github.com/tmux/tmux/wiki/Installing
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/MzwO_u2PF26UxhnAu2syDw