
Tmux: Quản Lý Nhiều Terminal Phiên Đồng Thời

Tmux là terminal multiplexer cho phép bạn chạy nhiều phiên terminal trong cùng một cửa sổ, tách và gắn phiên bất cứ lúc nào, đồng thời cung cấp cách thức thi hành nhanh, chia sẻ terminal và bảo vệ session khỏi gián đoạn mạng. Nó là công cụ không thể thiếu cho devops, sysadmin, và nhà phát triển làm việc trên server.
Tmux Là Gì?
Tmux (terminal multiplexer) là một công cụ command-line giúp bạn thực hiện nhiều tác vụ song song trong một cửa sổ terminal:
- Chia cửa sổ terminal thành các pane song song (split panes)
- Tạo và chuyển đổi giữa nhiều tab (windows) trong cùng một session
- Giữ session chạy nền khi kết nối SSH rơi (detach/attach)
- Truy cập lại công việc từ bất kỳ máy khách nào (reconnect)
Cài Đặt Tmux
Trên hầu hết các hệ thống Linux và macOS, cài đặt chỉ mất một lệnh:
# Debian/Ubuntu
sudo apt update && sudo apt install tmux
# RHEL/CentOS/Fedora
sudo dnf install tmux
# macOS (Homebrew)
brew install tmux
Sau khi cài, gõ tmux để bắt đầu phiên đầu tiên. Màn hình sẽ hiển thị thanh trạng thái dưới cùng với thông tin session, window, và pane hiện tại.
Các Lệnh Cơ Bản
Tmux sử dụng prefix Ctrl+b (có thể thay đổi) để nhận diện lệnh. Các lệnh sau được gõ sau khi nhấn prefix:
| Chức năng | Lệnh | Mô tả |
|---|---|---|
| Tạo pane mới ngang | Ctrl+b % | Chia pane hiện tại thành 2 pane trên dưới |
| Tạo pane mới dọc | Ctrl+b “ | Chia pane hiện tại thành 2 pane trái phải |
| Chuyển focus pane | Ctrl+b mũi tên | Di chuyển focus giữa các pane |
| Đổi kích thước pane | Ctrl+b Alt + mũi tên | Thay đổi kích thước pane hiện tại |
| Tạo window mới (tab) | Ctrl+b c | Mở tab mới trong cùng session |
| Chuyển window | Ctrl+b p/n | Tab trước/tab sau |
| Đổi tên window | Ctrl+b , | Nhập tên mới cho tab hiện tại |
| Detach session | Ctrl+b d | Tách session ra nền, giữ tiến trình chạy |
| Attach session | tmux attach | Gắn lại session đã detach |

Làm Việc Nhiều Session
Bạn có thể chạy nhiều session tmux đồng thời, mỗi session có tên riêng và cách ly hoàn toàn:
# Tạo session có tên "dev"
tmux new -s dev
# Tạo session có tên "monitor"
tmux new -s monitor
# Liệt kê tất cả session
tmux ls
# Gắn session có tên "dev"
tmux attach -t dev
# Gắn session có tên "monitor"
tmux attach -t monitor
Customize Thanh Trạng Thái
File cấu hình ~/.tmux.conf cho phép bạn thay đổi giao diện, gán phím mới, và thêm plugin. Một số cấu hình hay được sử dụng:
# Đổi prefix từ Ctrl+b thành Ctrl+a (giống screen)
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# Bật hỗ trợ chuột (chọn pane, resize bằng chuột)
set -g mouse on
# Thanh trạng thái với thông tin chi tiết
set -g status-style fg=white,bg=black
set -g status-left '#[fg=green]#S #[fg=yellow]#I #[fg=cyan]#P'
set -g status-right '#[fg=white]%H:%M #[fg=green]%d-%b-%y'
# Viết index window từ 1 thay vì 0
set -g base-index 1
set -g pane-base-index 1
Session Management Cho Hệ Thống
Một trong những lợi thế mạnh nhất của tmux là khả năng bảo vệ session khỏi gián đoạn mạng. Khi làm việc qua SSH và kết nối rơi:
- Bạn đang trong tmux session, gõ
Ctrl+b dđể detach (tạm thời tách ra). - Kết nối SSH bị ngắt, nhưng mọi tiến trình trong tmux vẫn tiếp tục chạy.
- Kết nối lại SSH, gõ
tmux attachđể trở lại chính nơi bạn dừng.
Điều này vô cùng hữu ích cho các tác vụ lâu như:
- Biên dịch source code lớn
- Chạy migration database
- Giám sát log server thời gian thực
- Thực hiện script deploy tự động
Copy-Paste Trong Tmux
Tmux có bộ nhớ đệm riêng cho việc sao chép văn bản. Để vào chế độ copy:
Ctrl+b [ # Bắt đầu chọn văn bản
# Di chuyển con trỏ bằng mũi tên hoặc PageUp/PageDown
Space # Bắt đầu chọn
Enter # Sao chép vào buffer và thoát chế độ copy
Ctrl+b ] # Dán nội dung vừa sao chép
Nếu bật set -g mouse on, bạn có thể chọn văn bản bằng chuột và nhả để sao chép tự động.
Plugin Manager: TPM
Tmux Plugin Manager (TPM) giúp bạn cài đặt và quản lý plugin dễ dàng:
- Cài đặt TPM:
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm - Thêm vào ~/.tmux.conf:
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'tmux-plugins/tmux-resurrect' # Lưu/restore session
set -g @plugin 'tmux-plugins/tmux-yank' # Copy to system clipboard
run '~/.tmux/plugins/tpm/tpm'
Sau đó reload config (Ctrl+b r) và nhấn Ctrl+b I để cài plugin.
So Sánh Tmux Với GNU Screen
- Giao diện: Tmux có thanh trạng thái đẹp hơn và dễ customize.
- Scripting: Tmux có API mạnh hơn để tự động tạo layout.
- Session sharing: Tmux cho phép nhiều client kết nối cùng session.
- Active development: Tmux được cập nhật thường xuyên với tính năng mới.
Kết Luận
Tmux là chiếc “nai nhím” cho terminal, biến một dòng lệnh đơn giản thành môi trường làm việc mạnh mẽ. Với khả năng detach/attach, chia pane, và quản lý session, tmux giúp bạn làm việc hiệu quả hơn trên server, đặc biệt khi kết nối không ổn định.
Nếu bạn chưa từng dùng tmux, hôm nay là ngày tuyệt vời để bắt đầu. Chỉ cần cài đặt và học vài lệnh cơ bản, bạn sẽ ngay lập tức nhận ra lợi ích mà nó mang lại.
Nguồn tham khảo: Tmux GitHub, Tmux Cheat Sheet
