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 + ddetach 當前會話,運行後將會退出 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