tmux 是什麼?終端複用器入門介紹

💬 大白話總結 30 秒讀完 · 看完可以直接走

一句話:tmux 是終端機裡的「工作現場保管員」——你的任務跑在伺服器的會話裡,SSH 斷線、手滑關視窗都殺不死它,回來一條命令接上繼續。

  • 解決什麼問題:SSH 一斷,系統預設把你的任務全部殺掉(SIGHUP),幾小時白費;tmux 把任務搬進伺服器會話,斷線照跑。
  • 三步上手:tmux new -s test 進去幹活 → Ctrl+b 放開按 d 脫離 → tmux attach -t test 隨時接回。
  • 三層結構:會話套視窗、視窗套窗格(分割畫面)。記住這句話,再看任何 tmux 教學都不迷路。
  • 別混淆:Termux 是 Android 上的終端機 App,跟 tmux 只是撞名,毫無關係。
想搞懂背後的原理,往下讀正文 ↓

你大概遇過這個場景:SSH 連著遠端伺服器跑一個編譯任務,網路一抖,連線斷了,任務跟著死了,幾個小時的進度歸零。tmux 就是解決這個的。tmux 是什麼?先給答案:一個終端複用器(terminal multiplexer),一個開源小工具,它讓終端會話活在執行它的那台機器上,你斷線它照跑。接上去做事,離開,回家換台電腦再接上去,一切都還在,跟你離開時一模一樣。

這就是它的全部賣點。這篇教學剩下的部分講清楚三件事:這個「複用器」複用的到底是什麼、斷線不死的原理是什麼(這部分是真正有意思的)、以及怎麼在五分鐘裡跑起你的第一個會話。順帶回答兩個高頻搜尋:什麼是tmux、它和 Screen、Termux 又各自是什麼關係。

tmux 是什麼:一段話回答

官方 wiki 的定義就一句話:tmux 讓你在一個終端裡自由切換多個程式,可以脫離(detach)它們——程式在背景繼續跑——再從另一個終端重新接回(attach)。名字本身就很直白,terminal multiplexer(終端複用器)的縮寫。

基本資訊先過一遍。tmux 是免費開源軟體,2007 年 11 月 20 日首發,用 C 語言寫的,作者是 Nicholas Marriott,出身 OpenBSD 專案,到今天還是 OpenBSD 基礎系統的一部分。所有類 Unix 平台都能跑:Linux、macOS、BSD,Windows 走 WSL。專案活得很健康,目前穩定版是 2026 年 8 月發布的 3.7c。

「複用器」是什麼意思?說白了:它是一個住在你終端裡的視窗管理員。視窗管理員把一塊實體螢幕變成很多虛擬工作區;tmux 把一條終端連線變成很多個終端,分頁、分割視窗,全都有。它還多給了一樣視窗管理員沒有的東西:人走了,這些終端還在跑。

為什麼 SSH 一斷,程序就死

要明白 tmux 到底買到了什麼,得先知道沒有它的時候東西是怎麼壞的。

你在終端裡跑一條指令,這條指令是 shell 的子程序,而 shell 綁在終端會話上。Unix 裡有個大多數人沒被告訴過的殘酷設定:終端關閉的時候,不管是關視窗還是 SSH 斷線,shell 會給所有子程序發一個 SIGHUP 訊號。這名字直譯過來就是「掛斷」,電話撥接時代留下的遺產,程序收到它的預設反應就是結束。你的編譯任務不是當機了,它是被系統「客氣地」通知退出了,因為系統預設認為連線斷了等於工作不要了。

這種時候你可能用過 nohup。它確實管用,勉強算:nohup ./長任務 & 讓程序忽略 SIGHUP,斷線後還能活。我用這招用了很多年,直到實在受不了它的侷限:程序一旦這麼掛到背景,你沒辦法再給它輸入;輸出全堆在 nohup.out 裡,得另開終端去 tail;同時管三四個長任務的話,你就是在經營一座孤兒程序動物園,連個能並排看它們的地方都沒有。

終端一死,帶走你的全部工作。tmux 的解法就一句話:把你的程式從 SSH 會話底下整個搬出去。

tmux 怎麼做到的:一個伺服器,多個用戶端

tmux 建立在用戶端-伺服器架構上,這是唯一值得記住的理論。

你第一次執行任何 tmux 指令時,一個叫 tmux server 的背景程序會自動啟動。所有狀態都存在這個 server 裡:每一個會話、每一個視窗、每一個跑著的程式、每一 byte 還沒顯示的輸出。你在終端裡敲 tmux,實際上是啟動了一個用戶端,它透過 /tmp 下的一個 socket 檔案連到 server,attach 到某個會話上。官方入門指南對這套架構有完整描述。

現在「斷線不死」就說得通了。你的 SSH 連線只擁有那個用戶端。連線斷了,死的是用戶端,server 和它管著的一切原地不動。重新連上、起新用戶端、attach,你就回來了。同樣的保護也涵蓋手滑關錯終端視窗的情況,這種事我做過的次數就不提了。

這套設計還順帶解釋了幾件事:

  • 多個用戶端可以同時 attach 到同一個會話,從不同電腦——這就是兩人結對即時共享終端的原理。
  • 最後一個會話結束時 server 自動退出,不會變成殭屍程序掛著;另有一個 kill-server 指令用來強制清理。
  • 退出是一層一層級聯的:關掉 pane 裡的 shell,pane 死;視窗最後一個 pane 死了,視窗死;會話最後一個視窗死了,會話死;最後一個會話死了,server 關機。

會話、視窗、pane

tmux 把所有東西組織成三層巢狀。會話、視窗、pane(窗格)這三個詞是什麼關係?分清它們,往後看任何教學和 man 手冊都會輕鬆很多。

會話(session)是一個持久的、獨立的工作區,可以當成一個專案來理解。會話裡裝著視窗(window),行為像瀏覽器的分頁:一次看一個,來回切換。每個視窗佔滿整個終端,可以再切成 pane,就是那些矩形的分割區塊,各自跑各自的程式。tmux 的入門知識最後就歸到這個層級上:會話套視窗,視窗套 pane,pane 裡跑你的程式。

螢幕底部那條綠 bar 是狀態列。左邊顯示會話名和視窗清單,編號、名字,還有一顆 * 標著目前活動視窗;右邊一般是主機名稱、日期、時間。它可以完全客製化,有人把它玩出花來。

會話預設按 0、1、2 編號,一兩個夠用,五個就開始遭罪。建立的時候順手取名(tmux new -s build),未來的你會感謝現在的你。

五分鐘跑起第一個會話

理論夠了,下面是從零到跑通的最短路徑。

用系統套件管理器安裝:macOS 是 brew install tmux,Ubuntu/Debian 是 sudo apt install tmux,Fedora/RHEL 是 sudo dnf install tmux。然後:

tmux new -s test

你進去了。底部出現狀態列,你有一個叫 test 的會話,裡面一個視窗一個 pane,跑著你的 shell。在裡面跑個慢的東西:

while true; do date; sleep 1; done

現在脫離:按 Ctrl+b,鬆開,再按 d。你被丟回原來的裸終端,會話從眼前消失了。確認它還活著:

tmux ls

應該能看到 test: 1 windows (...)。那個時鐘還在裡面一秒一秒地走。接回去:

tmux attach -t test

你的時鐘回來了,一秒都沒停過。整個魔術就是這一套。把終端視窗整個關掉,再開一個新的,重新 attach,結果一樣。

趁熱再玩兩個鍵。Ctrl+b 是前綴鍵,概念上借的是 vim 的 leader key:先按它、鬆開、再按功能鍵。Ctrl+b 然後按 %,視窗切成左右兩塊;Ctrl+b 然後按 ",切成上下兩塊。這裡提醒一句,網路上教學對這兩個鍵的說法很亂,有的把 % 叫「水平分割」有的叫「垂直分割」,說的還是相反的東西。別管形容詞,記結果:% 是左右並排," 是上下堆疊。

一句掏心窩的警告,我也是在這堵牆上撞過一陣的:tmux 預設帶 85 個以上的快捷鍵,一開始就想全背下來,正是大多數人棄坑的方式。頭一週你需要的其實就六個鍵:新建、脫離、接回、分割、切 pane、切視窗。其餘的,本站有一張單頁速查表隨查隨用;想往深裡走,tmux(1) man 手冊是終局答案。

2026 年大家拿 tmux 幹什麼

經典用法沒有變過。遠端長任務——編譯、模型訓練、資料庫遷移、備份——斷一次線就虧幾小時的那種。多機接續:公司起一個活,回家 attach 上同一個會話,從半截思路繼續。還有純本地的視窗管理,不涉及 SSH,這條被嚴重低估;tmux 在本地跑起來一模一樣,「關錯終端視窗」從此不再是事故。我自己日常就是這麼用它的:早上連上伺服器寫程式,中午吃飯闔上電腦完全不管,下午 attach 回去,程式碼、日誌、跑著的服務全在。

新東西是 AI 這條線。現在很多人在遠端機器或專門的小機器上跑 AI 編程 Agent,比如 Claude Code 這類,這些 Agent 的會話一跑就是幾天幾週,你只是定期回去看一眼進度。這簡直是替 tmux 量身定做的場景:你連不連著,Agent 都在做事,你隨時回來看它進展到哪了。如果你正打算搭這樣的環境,我們的 Claude Code 使用教學講了整套工作流。

再往外:系統管理員拿共享會話結對除錯,團隊在事故時一起盯同一份日誌,家裡有樹莓派或自組伺服器的人,靠 tmux 在不開終端視窗的情況下遠端管理它。

tmux 對比 Screen(順帶說清 Termux)

兩個對比高頻出現,一次說清。

GNU Screen 是什麼?tmux 最常被拿來比的老前輩。tmux 涵蓋了它大部分功能,程式碼庫更現代,Screen 在部分 Linux 發行版裡已經被標記棄用。但它倆不是即插即換的關係:預設命令鍵不一樣,肌肉記憶不通用(想要相容的話,tmux 可以設定成 Screen 鍵位)。tmux 還缺 Screen 內建的序列埠和 telnet 支援,對絕大多數人無所謂,對少數人是決定性的。我的態度:2026 年從零開始學,沒理由先選 Screen。

那 Termux 是什麼? 一個安卓 App,手機上的終端模擬器,跟 tmux 除了名字長得像,毫無關係。倆名字像歸像,搜尋結果經常纏在一起,實際是兩個不相干的東西。如果你是在應用商店裡搜 "tmux",請冷靜退出去。

常見問題

tmux 是什麼?用來幹什麼? 三大件:讓遠端程序撐過 SSH 斷線、在一個視窗裡管多個終端程式(分頁和分割)、從任何一台機器恢復工作現場。現在還多了一件:託管長時間執行的 AI Agent 會話。

tmux 在 Windows 上能用嗎? 原生不行,tmux 面向類 Unix 系統。Windows 上走 WSL(Linux 子系統),裡面跑起來和 Linux 上完全一樣。macOS 上透過 Homebrew 安裝,一等公民待遇。

tmux 難學嗎? 概念十分鐘講完,預設快捷鍵確實要適應一陣。前綴機制(按 Ctrl+b、鬆開、再按鍵)一開始會覺得彆扭,但真正常用也就一小撮,而且所有鍵都能在 ~/.tmux.conf 裡改。

2026 年了,tmux 還值得學嗎? 兩個問題都是「值得」。目前版本是 2026 年 8 月的 3.7c,18 年了開發依然活躍;而長時間執行的 AI Agent 工作流興起,又給它續了一波新的用武之地。

知道 tmux 是什麼只是入場券,肌肉記憶才是它真正給錢的地方。從 tmux 速查表開始,這篇教學裡的每一條指令和快捷鍵都在那一頁上,日常隨查隨用。