終端機 session 管理神器 — tmux

Larry Lu
Larry・Blog
Published in
4 min readNov 2, 2017

--

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

--

--

我是 Larry 盧承億,傳說中的 0.1 倍工程師。我熱愛技術、喜歡與人分享,專長是 JS 跟 Go,平常會寫寫技術文章還有參加各種技術活動,歡迎大家來找我聊聊~