Cách Cài Đặt và Sử Dụng tmux trên Ubuntu: Hướng Dẫn Hoàn Chỉnh 2025
Giới thiệu
tmux (Terminal Multiplexer) là một công cụ dòng lệnh mạnh mẽ giúp nâng cao trải nghiệm terminal của bạn trên Ubuntu và các hệ thống tương tự Unix khác. Nó cho phép bạn tạo nhiều phiên terminal trong một cửa sổ duy nhất, làm cho nó trở thành một công cụ vô giá cho các nhà phát triển, quản trị hệ thống và người dùng nâng cao.
tmux là gì?
tmux là một trình đa nhiệm terminal cho phép bạn:
- Tạo nhiều phiên terminal trong một cửa sổ duy nhất
- Giữ cho các chương trình chạy ngay cả khi bạn ngắt kết nối SSH
- Chia cửa sổ terminal của bạn thành nhiều khung
- Chuyển đổi giữa các phiên terminal khác nhau một cách liền mạch
- Chia sẻ các phiên terminal với người dùng khác
Lợi ích của việc sử dụng tmux
Khi làm việc trên các máy chủ Ubuntu hoặc máy tính cục bộ, tmux mang lại một số lợi thế hấp dẫn:
-
Phiên làm việc bền vững: Công việc của bạn tiếp tục chạy ngay cả khi kết nối SSH của bạn bị ngắt hoặc bạn đóng terminal một cách tình cờ. Chỉ cần gắn lại phiên của bạn, và mọi thứ sẽ giống hệt như bạn đã để lại.
-
Năng suất được cải thiện: Làm việc với nhiều cửa sổ terminal cùng một lúc mà không làm rối desktop của bạn. Bạn có thể dễ dàng chuyển đổi giữa các nhiệm vụ khác nhau trong khi vẫn duy trì cái nhìn tổng quan rõ ràng về công việc của mình.
-
Cộng tác nâng cao: Chia sẻ các phiên terminal của bạn với các thành viên trong nhóm, làm cho nó trở nên hoàn hảo cho lập trình cặp hoặc khắc phục sự cố cùng nhau.
Yêu cầu hệ thống
Trước khi cài đặt tmux trên Ubuntu, hãy đảm bảo hệ thống của bạn đáp ứng các yêu cầu tối thiểu sau:
- Ubuntu 18.04 LTS hoặc mới hơn
- Kiến thức cơ bản về terminal
- Quyền truy cập hệ thống đủ (quyền sudo) để cài đặt
- Ít nhất 50MB dung lượng đĩa trống
Phương pháp cài đặt
Có hai phương pháp chính để cài đặt tmux trên Ubuntu: sử dụng trình quản lý gói apt hoặc xây dựng từ mã nguồn. Hãy cùng khám phá cả hai tùy chọn chi tiết.
Sử dụng Trình Quản Lý Gói apt
Cách đơn giản và được khuyến nghị nhất để cài đặt tmux là thông qua trình quản lý gói của Ubuntu, apt. Đây là cách thực hiện:
# Cập nhật danh sách gói
sudo apt update
# Cài đặt tmux
sudo apt install tmux -y
# Xác minh cài đặt
tmux -V
Phương pháp này tự động xử lý các phụ thuộc và cung cấp một phiên bản ổn định của tmux đã được kiểm tra với phiên bản Ubuntu của bạn.
Xây dựng từ Mã Nguồn
Đối với những người dùng cần các tính năng mới nhất hoặc các phiên bản cụ thể, việc xây dựng từ mã nguồn là một tùy chọn:
# Cài đặt các phụ thuộc cần thiết
sudo apt install git automake build-essential libevent-dev ncurses-dev
# Sao chép mã nguồn
git clone https://github.com/tmux/tmux.git
cd tmux
# Xây dựng và cài đặt
sh autogen.sh
./configure
make
sudo make install
So sánh Phiên bản
Hãy so sánh các phương pháp cài đặt khác nhau:
-
Cài đặt APT:
- Ưu điểm: Dễ cài đặt và nâng cấp, phiên bản ổn định, quản lý phụ thuộc tự động
- Nhược điểm: Có thể không phải là phiên bản mới nhất
- Phiên bản hiện tại trong kho lưu trữ Ubuntu: Thường chậm 1-2 phiên bản so với phiên bản mới nhất
-
Cài đặt từ Mã Nguồn:
- Ưu điểm: Truy cập vào các tính năng mới nhất, khả năng tùy chỉnh biên dịch
- Nhược điểm: Cần quản lý phụ thuộc thủ công, quy trình cài đặt phức tạp hơn
- Phiên bản mới nhất có sẵn: Luôn được cập nhật với kho lưu trữ chính thức
Sau khi cài đặt, bạn có thể xác minh phiên bản tmux của mình bằng cách chạy:
tmux -V
Cấu hình Cơ bản
Hành vi của tmux có thể được tùy chỉnh thông qua tệp cấu hình và các cài đặt khác nhau. Hãy cùng khám phá cách thiết lập và tùy chỉnh tmux để phù hợp với nhu cầu của bạn.
Vị trí của Tệp Cấu Hình
tmux tìm kiếm tệp cấu hình của nó trong thư mục chính của bạn:
# Tạo tệp cấu hình tmux của bạn
touch ~/.tmux.conf
# Mở nó bằng trình soạn thảo văn bản yêu thích của bạn
nano ~/.tmux.conf
Cấu Hình Cần Thiết
Dưới đây là một số cấu hình thường được sử dụng để nâng cao trải nghiệm tmux của bạn:
# Thay đổi phím tiền tố thành Ctrl+a (tiện lợi hơn so với Ctrl+b mặc định)
set -g prefix C-a
unbind C-b
bind C-a send-prefix
# Bật hỗ trợ chuột
set -g mouse on
# Bắt đầu đánh số cửa sổ từ 1 (thay vì 0)
set -g base-index 1
# Đặt phím chia cửa sổ dễ hơn
bind-key v split-window -h
bind-key h split-window -v
# Đặt phím di chuyển cửa sổ dễ hơn
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
# Cải thiện màu sắc
set -g default-terminal "screen-256color"
# Đặt kích thước bộ đệm cuộn
set -g history-limit 10000
Tùy Chỉnh Phím Tắt
Bạn có thể tùy chỉnh các phím tắt để làm cho tmux trở nên trực quan và hiệu quả hơn cho quy trình làm việc của bạn:
-
Cú Pháp Phím Tắt Cơ Bản:
bind-key key command bind key command
-
Các Phím Tắt Tùy Chỉnh Thông Dụng:
# Tải lại tệp cấu hình bind r source-file ~/.tmux.conf \; display "Cấu hình đã được tải lại!" # Chuyển đổi nhanh giữa các khung unbind ^A bind ^A select-pane -t :.+ # Các lệnh chia cửa sổ trực quan hơn bind | split-window -h bind - split-window -v
Sau khi thực hiện các thay đổi trong tệp cấu hình của bạn, bạn có thể:
- Khởi động lại tmux để các thay đổi có hiệu lực
- Hoặc tải lại cấu hình trong khi tmux đang chạy bằng cách nhấn
prefix
+r
(nếu bạn đã thêm phím tắt tải lại ở trên)
Bắt Đầu với tmux
Sau khi cài đặt và cấu hình cơ bản, hãy cùng tìm hiểu cách sử dụng tmux một cách hiệu quả. Phần này sẽ đề cập đến các lệnh và thao tác thiết yếu mà bạn sẽ cần cho việc sử dụng hàng ngày.
Bắt Đầu Phiên Đầu Tiên của Bạn
Dưới đây là các lệnh cơ bản để bắt đầu và quản lý các phiên tmux:
# Bắt đầu một phiên mới
tmux
# Bắt đầu một phiên mới có tên
tmux new -s mysession
# Liệt kê tất cả các phiên
tmux ls
# Gắn vào một phiên hiện có
tmux attach -t mysession
# Ngắt kết nối khỏi phiên hiện tại (trong tmux)
# Nhấn phím tiền tố (Ctrl+b hoặc Ctrl+a) sau đó d
Các Lệnh và Phím Tắt Cơ Bản
Tất cả các lệnh tmux bắt đầu bằng một phím tiền tố (mặc định: Ctrl+b). Dưới đây là các phím tắt thiết yếu:
# Quản lý Phiên
prefix + d # Ngắt kết nối khỏi phiên
prefix + s # Liệt kê các phiên
prefix + $ # Đổi tên phiên hiện tại
# Quản lý Cửa sổ
prefix + c # Tạo cửa sổ mới
prefix + n # Chuyển đến cửa sổ tiếp theo
prefix + p # Chuyển đến cửa sổ trước đó
prefix + , # Đổi tên cửa sổ hiện tại
prefix + w # Liệt kê các cửa sổ
# Thao tác với Khung
prefix + % # Chia khung theo chiều dọc
prefix + " # Chia khung theo chiều ngang
prefix + o # Chuyển đến khung tiếp theo
prefix + x # Đóng khung hiện tại
Quản Lý Phiên
Các phiên là cấp độ tổ chức cao nhất trong tmux. Dưới đây là cách quản lý chúng một cách hiệu quả:
-
Tạo Phiên:
# Tạo một phiên mới với tên cụ thể tmux new -s development # Tạo một phiên mới với thư mục làm việc cụ thể tmux new -s project -c ~/projects/myproject
-
Quản Lý Nhiều Phiên:
# Chuyển đổi giữa các phiên tmux switch -t session_name # Giết một phiên cụ thể tmux kill-session -t session_name # Giết tất cả các phiên ngoại trừ phiên hiện tại tmux kill-session -a
-
Điều Hướng Phiên:
- Sử dụng
prefix + (
để chuyển đến phiên trước - Sử dụng
prefix + )
để chuyển đến phiên tiếp theo - Sử dụng
prefix + s
để hiển thị danh sách phiên và chọn một cách tương tác
- Sử dụng
Tính Năng Nâng Cao
tmux cung cấp các tính năng mạnh mẽ cho người dùng nâng cao có thể nâng cao đáng kể năng suất. Hãy cùng khám phá một số khả năng nâng cao này.
Quản Lý Cửa Sổ
Cửa sổ trong tmux hoạt động tương tự như các tab trong một terminal hiện đại. Dưới đây là một số thao tác cửa sổ nâng cao:
# Các Lệnh Cửa Sổ Nâng Cao
prefix + . # Di chuyển cửa sổ đến một số khác
prefix + f # Tìm cửa sổ theo tên
prefix + & # Giết cửa sổ
prefix + 0-9 # Chuyển đến cửa sổ theo số
# Hoán đổi vị trí cửa sổ
swap-window -s 2 -t 1 # Hoán đổi cửa sổ 2 và 1
swap-window -t -1 # Di chuyển cửa sổ hiện tại sang trái
Thao Tác với Khung
Các khung cho phép bạn chia cửa sổ của mình thành nhiều phần. Dưới đây là các kỹ thuật quản lý khung nâng cao:
-
Thay Đổi Kích Thước Khung:
# Sử dụng phím tiền tố sau đó: Alt + Phím mũi tên # Thay đổi kích thước khung theo hướng của phím mũi tên # Hoặc giữ phím tiền tố và nhấn: Ctrl + Phím mũi tên # Thay đổi kích thước khung theo các bước lớn hơn
-
Điều Hướng Khung Nâng Cao:
prefix + { # Di chuyển khung hiện tại sang trái prefix + } # Di chuyển khung hiện tại sang phải prefix + z # Chuyển đổi phóng to khung (tối đa/khôi phục) prefix + ! # Chuyển khung thành một cửa sổ
-
Đồng Bộ Khung:
# Chuyển đổi đồng bộ khung (gửi lệnh đến tất cả các khung) :setw synchronize-panes
Chế Độ Sao Chép và Cuộn
Chế độ sao chép cho phép bạn cuộn, tìm kiếm và sao chép văn bản:
-
Nhập và Điều Hướng Chế Độ Sao Chép:
prefix + [ # Nhập chế độ sao chép q # Thoát chế độ sao chép Space # Bắt đầu chọn Enter # Sao chép lựa chọn # Điều hướng trong chế độ sao chép: Phím mũi tên # Di chuyển con trỏ Page Up/Down # Cuộn trang lên/xuống g # Đi đến đầu G # Đi đến cuối / # Tìm kiếm tiến ? # Tìm kiếm lùi n # Kết quả tìm kiếm tiếp theo N # Kết quả tìm kiếm trước đó
-
Các Thao Tác Sao Chép Nâng Cao:
# Bật chế độ vi cho các thao tác sao chép tốt hơn set-window-option -g mode-keys vi # Các phím tắt tùy chỉnh cho chế độ sao chép bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi y send-keys -X copy-selection
-
Tích Hợp với Clipboard Hệ Thống:
# Trên Ubuntu, cài đặt xclip trước: sudo apt install xclip # Thêm vào .tmux.conf: bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xclip -sel clip -i"
Các tính năng nâng cao này có thể được kết hợp để tạo ra các quy trình làm việc mạnh mẽ. Ví dụ, bạn có thể:
- Thiết lập nhiều khung để theo dõi các dịch vụ khác nhau
- Sử dụng đồng bộ khung để thực hiện lệnh trên nhiều máy chủ cùng một lúc
- Tạo các bố cục cửa sổ phức tạp cho các nhiệm vụ phát triển khác nhau
- Thiết lập sao lưu tự động cho các phiên tmux
Thực Tiễn Tốt Nhất
Áp dụng các thực tiễn tốt với tmux có thể cải thiện đáng kể quy trình làm việc và năng suất của bạn. Hãy cùng khám phá một số phương pháp và mẹo được khuyến nghị.
Quy Trình Làm Việc Thông Thường
-
Thiết Lập Môi Trường Phát Triển:
# Tạo một phiên mới cho phát triển tmux new -s dev # Bố cục phát triển thông thường # Chia cửa sổ cho việc chỉnh sửa và terminal tmux split-window -v -p 30 # 70% cho trình soạn thảo, 30% cho terminal # Chia thêm cho việc chạy thử/nghiệm tmux split-window -h # Chia khung terminal theo chiều ngang
-
Thiết Lập Giám Sát Máy Chủ:
# Tạo phiên giám sát tmux new -s monitoring # Chia cho các tác vụ giám sát khác nhau tmux split-window -h # Chia cho thống kê hệ thống tmux split-window -v # Chia cho nhật ký # Chạy các lệnh giám sát # Khung đầu tiên: htop # Khung thứ hai: tail -f /var/log/syslog # Khung thứ ba: giám sát mạng
Mẹo Năng Suất
-
Tổ Chức Phiên:
- Sử dụng tên phiên mô tả (ví dụ:
client1
,backend
,docs
) - Giữ các nhiệm vụ liên quan trong cùng một phiên nhưng khác nhau trong các cửa sổ
- Sử dụng quy ước đặt tên cửa sổ nhất quán
- Dọn dẹp phiên thường xuyên để quản lý tốt hơn
- Sử dụng tên phiên mô tả (ví dụ:
-
Tối Ưu Hiệu Suất:
# Thêm vào .tmux.conf # Giảm độ trễ escape-time set -sg escape-time 0 # Tăng độ nhạy set -g status-interval 1 # Giới hạn lịch sử phiên để tránh vấn đề bộ nhớ set -g history-limit 50000
-
Kịch Bản Thiết Lập Tự Động:
#!/bin/bash # Lưu dưới dạng dev-setup.sh # Tạo phiên mới ở trạng thái tách tmux new-session -d -s development # Thiết lập các cửa sổ và khung tmux rename-window -t development:1 'editor' tmux send-keys -t development:1 'vim' C-m tmux new-window -t development:2 -n 'server' tmux send-keys -t development:2 'npm run dev' C-m # Gắn vào phiên tmux attach -t development
Tích Hợp với Các Công Cụ Khác
-
Tích Hợp Kiểm Soát Phiên Bản:
- Tạo các cửa sổ dành riêng cho các thao tác git
- Sử dụng đồng bộ khung để quản lý nhiều kho lưu trữ
- Thiết lập kiểm tra trạng thái tự động
-
Thực Tiễn Tốt Nhất cho Trình Đa Nhiệm Terminal:
# Thêm vào .bashrc hoặc .zshrc # Tự động gắn vào phiên tmux khi SSH if [[ -z "$TMUX" ]] && [ "$SSH_CONNECTION" != "" ]; then tmux attach-session -t ssh_tmux || tmux new-session -s ssh_tmux fi
-
Phát Triển Từ Xa:
- Sử dụng các phiên tmux lồng nhau cho công việc cục bộ/ từ xa
- Thiết lập các màu sắc thanh trạng thái khác nhau cho các phiên cục bộ/từ xa
- Cấu hình các phím tiền tố khác nhau cho các phiên lồng nhau
# Đối với các phiên lồng nhau (.tmux.conf)
bind-key -n C-a send-prefix # Đối với phiên bên trong
set -g status-bg colour40 # Xanh cho cục bộ
set -g status-bg colour160 # Đỏ cho từ xa

Các Câu Hỏi Thường Gặp (FAQ)
Q1: Làm thế nào để thoát khỏi tmux?
# Phương pháp 1: Hoàn toàn thoát khỏi tmux
exit # Gõ trong cửa sổ tmux
# hoặc
prefix + d # Ngắt kết nối khỏi phiên hiện tại trong khi giữ cho nó chạy
# Phương pháp 2: Buộc đóng tất cả các phiên
tmux kill-server
Q2: Tại sao chuột của tôi không cuộn được?
Trong các phiên bản tmux mới hơn, bạn cần bật hỗ trợ chuột trong tệp cấu hình của mình:
# Thêm vào ~/.tmux.conf
set -g mouse on
Q3: Làm thế nào để sao chép văn bản trong tmux?
-
Sử dụng chuột (nếu hỗ trợ chuột được bật):
- Chỉ cần chọn văn bản
- Sử dụng các phím tắt clipboard hệ thống
-
Sử dụng bàn phím:
prefix + [ # Nhập chế độ sao chép Space # Bắt đầu chọn Enter # Sao chép lựa chọn prefix + ] # Dán
Q4: Làm thế nào để khôi phục một phiên tmux bị mất?
# Liệt kê tất cả các phiên
tmux ls
# Gắn vào phiên cuối cùng
tmux attach
# Gắn vào một phiên cụ thể
tmux attach -t session_name
Q5: Làm thế nào tôi có thể thay đổi kích thước các khung trong tmux?
# Sử dụng phím tiền tố + phím mũi tên để thay đổi kích thước các khung
prefix + Up # Mở rộng khung hiện tại lên trên
prefix + Down # Mở rộng khung hiện tại xuống dưới
prefix + Left # Mở rộng khung hiện tại sang trái
prefix + Right # Mở rộng khung hiện tại sang phải
Q6: Làm thế nào để áp dụng các thay đổi cấu hình?
# Phương pháp 1: Tải lại trong tmux
prefix + :
source-file ~/.tmux.conf
# Phương pháp 2: Tải lại từ terminal
tmux source-file ~/.tmux.conf
Q7: Làm thế nào để đồng bộ đầu vào giữa các khung?
# Trong chế độ lệnh tmux
:setw synchronize-panes on
# Tắt đồng bộ
:setw synchronize-panes off
Q8: Tại sao màu sắc của tôi không hiển thị đúng?
Thêm các dòng này vào ~/.tmux.conf
:
# Bật hỗ trợ màu 256
set -g default-terminal "screen-256color"
# Bật hỗ trợ màu thật
set-option -sa terminal-overrides ",xterm*:Tc"
Q9: Làm thế nào để lưu và khôi phục các phiên tmux?
Bạn có thể sử dụng plugin tmux-resurrect
:
# Cài đặt trình quản lý plugin tmux
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
# Thêm vào .tmux.conf:
set -g @plugin 'tmux-plugins/tmux-resurrect'
# Lưu các phiên
prefix + Ctrl-s
# Khôi phục các phiên
prefix + Ctrl-r
Q10: Làm thế nào để thay đổi giao diện thanh trạng thái của tôi?
# Thêm vào ~/.tmux.conf
# Thay đổi màu nền thanh trạng thái
set -g status-bg black
# Thay đổi màu chữ thanh trạng thái
set -g status-fg white
# Thay đổi kiểu dáng cửa sổ hiện tại
set-window-option -g window-status-current-style bg=red,fg=white,bold
Q11: Làm thế nào để xử lý các phiên tmux lồng nhau?
# Thêm vào .tmux.conf để sử dụng phím tiền tố khác cho các phiên lồng nhau
bind-key -n C-a send-prefix # Đối với phiên bên trong
set -g status-bg blue # Màu khác cho phiên lồng nhau
Q12: Các phím chức năng của tôi không hoạt động trong tmux?
# Thêm vào ~/.tmux.conf
set-option -g xterm-keys on
set-window-option -g xterm-keys on