
Tmux là gì? Screen là gì?
Tmux và Screen đều là terminal multiplexer — phần mềm cho phép bạn chạy nhiều shell session bên trong một cửa sổ terminal, detach session mà không giết process, re-attach sau này từ bất kỳ client nào. Cả hai giải quyết bài toán SSH bị ngắt kết nối giữa chừng: bạn detach, đóng SSH, mở lại, attach về session cũ, công việc vẫn chạy nguyên vẹn.
Screen là phần mềm cũ hơn, có sẵn trên nhiều hệ thống Unix từ những năm 1990. Tmux ra đời năm 2007 với thiết kế lại từ đầu: cấu hình bằng .tmux.conf thay vì compile-time options, key binding hiện đại, và hỗ trợ nhiều hơn cho pane/window layout. Hiện tại Tmux chiếm đa số adoption trong cộng đồng developer, nhưng Screen vẫn còn chỗ đứng trên các server cũ hoặc khi bạn không có quyền cài package.

So sánh tmux và screen
Tmux mạnh ở tùy biến layout. Mỗi window chứa nhiều pane, pane có thể chia ngang/dọc bằng tỷ lệ phần trăm, resize bằng phím hay dùng chuột. Screen chỉ hỗ trợ split đơn giản cố định, không có pane nesting. Tmux hỗ trợ copy mode với vi-emacs keybinding, scrollback buffer lớn, và status bar cấu hình được bằng theme, màu sắc rõ ràng. Bạn có thể nhìn thấy session count, hostname, battery status, thậm chí Spotify track đang phát, tất cả trong thanh status.
Screen có ưu điểm duy nhất: phổ biến sẵn trên server cũ, VPS legacy, không cần cài đặt. Tmux cần cài qua package manager: apt install tmux trên Debian/Ubuntu, brew install tmux trên macOS. Trên hầu hết VPS hiện đại, tmux đều có sẵn trong repository chính thức, cài một lệnh là xong.
| Tính năng | Screen | Tmux |
|---|---|---|
| Pane splitting | Cơ bản, chia đơn | Ngang/dọc, resize, zoom, nesting |
| Session naming | Có | Có, chi tiết hơn |
| Copy mode | Giới hạn | Vi/Emacs, scrollback lớn |
| Plugin ecosystem | Hạn chế | TPM, nhiều plugin phong phú |
| Mouse support | Không | Có, toggle được |
| Pre-installed | Nhiều server cũ | Phần lớn VPS hiện đại |
Tài liệu tmux chính thức cung cấp đầy đủ hướng dẫn. Còn trang GNU Screen vẫn được duy trì nhưng ít cập nhật tính năng mới. Đa số developer mới chọn Tmux vì plugin ecosystem sôi động và keybinding dễ nhớ hơn.
Workflow tmux cơ bản cho developer
Session là đơn vị tổ chức cấp cao: mỗi dự án một session. Window tương đương tab trong IDE: backend, frontend, database, logs. Pane tương đương split trong terminal: chạy server ở pane trên, tail logs ở pane dưới. Toàn bộ điều khiển bằng prefix key (mặc định Ctrl+b) kết hợp phím. Các phím hay dùng: Ctrl+b % chia dọc, Ctrl+b ” chia ngang, Ctrl+b o chuyển pane, Ctrl+b x đóng pane.
Quy tắc đặt tên session theo dự án, không phải theo máy. Nếu bạn làm việc trên 3 VPS, mỗi VPS có 2 dự án, bạn có 6 session đặt tên dự án, không phải 3 session tên vps1. Nhờ vậy bạn nhớ ngay session nào đang chạy service nào, kiểm tra trạng thái một phát là xong.
Detach và attach là thao tác bạn dùng nhiều nhất. Ctrl+b d detach session, rồi tmux attach -t project-a quay lại. Nếu bạn quên tên session, tmux ls liệt kê tất cả. Pattern này cho phép bạn SSH từ laptop, detach, đi ra ngoài, SSH từ điện thoại, attach lại, làm việc tiếp.

Persist và sync giữa nhiều máy
Tmux lưu session trong RAM của process chạy trên server. Nếu server khởi động lại, session mất. Để persist, dùng tmux-resurrect lưu snapshot pane layout và directory ra file, restore sau reboot. Kết hợp với tmux-continuum auto-save mỗi 15 phút, bạn gần như không bao giờ mất trạng thái làm việc.
Nếu cần sync config giữa nhiều máy, đặt .tmux.conf vào Git repo hoặc dùng dotfile manager như chezmoi. Đừng clone config từ internet mà không đọc: prefix key khác nhau gây panic khó chịu khi bạn chuyển máy. Cấu hình bằng công ty riêng, ghi chú lại các binding đã thay đổi so với mặc định.
Lựa chọn cuối cùng
- Chọn Screen nếu bạn bị khóa trên server cũ không có quyền cài đặt, và chỉ cần detach/attach đơn giản.
- Chọn Tmux nếu bạn cần layout phức tạp, plugin, hoặc làm việc chuyên nghiệp với terminal. Đây là lựa chọn mặc định cho hầu hết developer.
- Nếu làm việc nhóm, thống nhất một tool để dễ chia sẻ session và hỗ trợ lẫn nhau.
Screen là phần mềm hoài cổ, còn Tmux là tool production hàng ngày. Hãy học Tmux, dành thời gian config .tmux.conf và master các shortcut. Bạn sẽ tiết kiệm hàng giờ mỗi tháng nhờ không phải mở lại terminal, tìm lại PID, hay gõ lại lệnh dài sau khi mất kết nối SSH. Bắt đầu với một session đơn giản, rồi mở rộng dần theo workflow của bạn.
