終端機 session 管理神器 — tmux
You can find the English version of this article at Boost Productivity with tmux: Master Terminal Sessions.
身為一名開發者對終端機應該不陌生,不管是要用 vim 修改文件、執行腳本、ssh 到遠端都會用到終端機
這邊要介紹一個工具 tmux,tmux 是個 terminal multiplexer,他除了可以保存 session 外,還有多重視窗、視窗分割等等功能。而且最重要的是,他可以讓你的終端機看起來超酷XDD,即使根本沒做什麼,也能看起來超厲害
小提醒:這篇文章有不少 GIF 要下載,請各位看倌有點耐心
安裝
Mac OS
先安裝 Homebrew,再用 brew 安裝 tmux
brew install tmux
Debian / Ubuntu
sudo apt-get install tmux
安裝完下指令 tmux
,最下面有出現一條綠色的狀態列就是成功了
基本概念
session
每次下 tmux
指令時都會開啟一個新的 session,每個 session 各自獨立
window
window 就是下圖整個終端機畫面,一個 session 裡面可以有多個 window
pane
如下圖,一個 window 可以切成多個小區塊,每個區塊就是一個 pane,通常會用來同時觀察多個程式
基本操作
tmux 的所有快捷鍵前面都需要加一個 prefix key,預設是 <Ctrl+b>
pane
跟著操作看看吧
1. <Ctrl+b> + "
:進行水平分割
2. <Ctrl+b> + %
:進行垂直分割
3. <Ctrl+b> + <方向鍵>
:移動到其他 pane
4. <Ctrl+b> + <Space>
:切換佈局
5. <Ctrl+b> + x
:關閉目前的 pane
session
1. <Ctrl+b> + d
:把 session 放到背景(detach)
2. $ tmux at
:attach 到背景的 session
常見的使用場景
scenario 1:同時跑程式 & 監控 CPU 使用率
這我個人很常用,直接開兩個 pane,一個跑程式一個跑 top/htop
就可以了
scenario 2:一邊寫程式一邊看結果
跟上面一樣,另外開一個小小的 pane 跑程式就可以了
scenario 3:ssh 到遠端跑程式
平常 ssh 到遠端跑程式時,只要 ssh 斷了程式就會被關閉。解決方法是用 tmux 開一個 session 跑在背景,即便 ssh 登出了,tmux server 還是會幫你留住那個 session,所以程式會一直跑在背景
總結
以上是 tmux 的簡單介紹,筆者我自從用了之後就對他愛不釋手,所以就寫了這篇文章
因為這篇是簡單的入門文,有些部分只有稍微帶到,如果想看更多功能及快捷鍵可以參考這份 cheatsheet,希望大家用了 tmux 之後都能讓開發更有效率,也能讓終端機看起來更酷XD