Hướng dẫn sử dụng lệnh Screen trong Linux cho người mới, dễ hiểu nhất

Hướng dẫn sử dụng lệnh Screen trong Linux

Lệnh screen trong linux là công cụ thiết yếu giúp bạn giữ cho tiến trình chạy tiếp ngay cả khi kết nối SSH đến server bị đứt quãng. Nỗi ám ảnh của người quản trị VPS là đang chạy script backup, compile code hay tải file lớn thì mạng lag làm mất phiên, mọi thứ bắt đầu lại từ đầu. Bài viết này sẽ hướng dẫn bạn cách cài đặt, sử dụng các câu lệnh screen trong Linux chi tiết kèm theo phím tắt thực tế. Nếu cần một máy chủ ổn định để thực hành, hãy tham khảo các gói dịch vụ tại ThueVPSGiaRe.vn.

NỘI DUNG BÀI VIẾT

1. Lệnh screen trong Linux là gì? Nguyên lý hoạt động và tính năng cốt lõi

Lệnh screen trong linux là một công cụ dồn kênh đầu cuối (terminal multiplexer) cho phép người dùng khởi chạy nhiều phiên làm việc (session) hoạt động hoàn toàn độc lập bên trong một cửa sổ terminal duy nhất. Được phát triển ban đầu bởi Oliver Laumann và Carsten Bormann vào năm 1987 trên hệ điều hành Unix, công cụ này đã trở thành một phần mềm tiện ích cơ bản không thể thiếu trên các hệ thống Unix-like và hầu hết các bản phân phối Linux hiện đại.

Lệnh screen trong linux

Về mặt bản chất kỹ thuật, khi bạn kết nối vào máy chủ Linux từ xa qua giao thức SSH, hệ điều hành sẽ cấp phát một terminal ảo (pty – pseudo-terminal) liên kết trực tiếp với tiến trình SSH của bạn.

Khi SSH bị ngắt kết nối (do mất mạng, tắt máy tính cá nhân hoặc kết nối quá hạn), nhân Linux sẽ gửi tín hiệu SIGHUP (Signal Hangup) đến tiến trình cha là terminal ảo đó. Tín hiệu này sẽ tự động chấm dứt toàn bộ các tiến trình con đang chạy bên dưới shell, khiến các script, mã nguồn hay lệnh cài đặt đang hoạt động bị dừng lại ngay lập tức.

Công cụ screen giải quyết triệt để lỗi này bằng cách đóng vai trò như một lớp trung gian. Khi bạn khởi chạy screen, nó sẽ tạo ra một tiến trình daemon chạy ẩn độc lập với phiên SSH hiện tại của bạn.

Tiến trình daemon chịu trách nhiệm duy trì terminal ảo bên trong nó. Khi bạn ngắt kết nối (detach) khỏi screen hoặc bị mất mạng SSH đột ngột, tiến trình daemon của screen vẫn hoạt động bình thường trên RAM máy chủ, bảo vệ các tiến trình con không nhận tín hiệu SIGHUP và tiếp tục thực thi các tác vụ chạy ngầm vô thời hạn cho đến khi tiến trình hoàn thành hoặc bị dập tắt thủ công.

Các tính năng nổi bật của Screen:

  • Duy trì tiến trình ngầm (Persistence): Đảm bảo các tác vụ cài đặt hệ thống nặng, import database khổng lồ, sao lưu dữ liệu, hoặc chạy script Python/Node.js không bị gián đoạn khi bạn tắt máy tính cá nhân.
  • Đa nhiệm trong một Terminal (Multiplexing): Tạo ra nhiều cửa sổ shell ảo (Windows) bên trong một phiên làm việc duy nhất để chạy nhiều tác vụ cùng một lúc mà không cần mở nhiều kết nối SSH đồng thời.
  • Chia sẻ phiên làm việc (Session Sharing): Cho phép hai hoặc nhiều người dùng kết nối chung vào một screen session để theo dõi hoặc thực thi lệnh cùng lúc theo thời gian thực, hỗ trợ tốt cho việc khắc phục lỗi hệ thống từ xa.
  • Quản lý màn hình phân tách (Screen Splitting): Hỗ trợ phân chia màn hình làm việc hiện tại thành nhiều phần nhỏ theo chiều dọc hoặc chiều ngang để dễ dàng đối chiếu log hệ thống khi vận hành máy chủ.

2. Hướng dẫn cách cài đặt lệnh screen trong Linux

Mặc dù lệnh screen trong linux là một công cụ kinh điển, trên một số bản cài đặt hệ điều hành tối giản (Minimal Install) của các nhà cung cấp VPS, gói phần mềm này có thể không được cài sẵn để tiết kiệm dung lượng đĩa. Trước khi bắt đầu cài đặt các gói phần mềm cồng kềnh, bạn nên xem qua cách kiểm tra cấu hình vps để đảm bảo tài nguyên bộ nhớ RAM và CPU trên máy chủ vẫn còn dư dả, giúp tiến trình cài đặt diễn ra suôn sẻ.

Dưới đây là các bước cài đặt chi tiết trên từng hệ điều hành Linux phổ biến hiện nay:

Cài đặt trên hệ điều hành Ubuntu / Debian / Linux Mint

Đối với các hệ điều hành thuộc nhánh Debian, trình quản lý gói apt sẽ giúp bạn cài đặt screen chỉ với hai câu lệnh đơn giản sau:

sudo apt-get update
sudo apt-get install screen -y

Cài đặt trên hệ điều hành CentOS / RHEL / Rocky Linux / AlmaLinux

Trên các hệ điều hành sử dụng RPM, kể từ các phiên bản mới như Rocky Linux hay AlmaLinux, gói screen đôi khi bị loại bỏ khỏi kho lưu trữ mặc định của hệ thống và chuyển sang kho ứng dụng bổ sung EPEL (Extra Packages for Enterprise Linux). Vì vậy, bạn cần kích hoạt kho EPEL trước khi tiến hành cài đặt:

# Khởi chạy cài đặt kho EPEL
sudo dnf install epel-release -y

# Cài đặt lệnh screen từ kho EPEL
sudo dnf install screen -y

Kiểm tra phiên bản sau cài đặt:

Để xác minh tiến trình cài đặt đã thành công hay chưa, bạn hãy chạy câu lệnh dưới đây để kiểm tra phiên bản hiện tại của phần mềm:

screen --version

Nếu màn hình hiển thị thông tin như Screen version 4.09.01 (GNU), hệ thống của bạn đã sẵn sàng sử dụng công cụ screen.

3. Các cú pháp và tùy chọn thường gặp của lệnh screen trong Linux

Cú pháp chung để khởi chạy lệnh screen trong linux được định nghĩa như sau:

screen [OPTION]… [COMMAND [ARGUMENT]]…

Trong đó, phần OPTION đại diện cho các tham số điều khiển cách thức mở hoặc tương tác với phiên làm việc, còn phần COMMAND là tùy chọn cho phép bạn chạy trực tiếp một câu lệnh hoặc kịch bản lệnh cụ thể ngay khi screen session được khởi tạo.

Các tùy chọn dòng lệnh (Command Options) phổ biến nhất

Tùy chọn Chức năng chi tiết
-S <tên_session> Tạo mới một session và đặt tên riêng biệt để dễ phân biệt, thay vì để hệ thống tự động gán tên ngẫu nhiên.
-ls hoặc -list Liệt kê danh sách tất cả các screen session đang chạy ẩn hoặc chạy nổi trên hệ thống.
-r <tên/PID> Khôi phục (Reattach) kết nối lại với một session đã bị ngắt trước đó bằng cách sử dụng tên hoặc mã tiến trình PID.
-d <tên/PID> Ngắt kết nối (Detach) một session đang ở trạng thái hoạt động ở một terminal khác từ xa.
-dmS <tên> <lệnh> Khởi chạy screen ở chế độ nền ẩn ngay lập tức (Detached mode) và tự động thực thi lệnh được gán kèm theo.
-X <tên> <hành_vi> Gửi một lệnh điều khiển trực tiếp đến một screen cụ thể từ bên ngoài mà không cần phải truy cập vào bên trong.
-L Kích hoạt tính năng tự động ghi nhận nhật ký (logging), lưu toàn bộ output hiển thị trên màn hình của session vào file log.

*Lưu ý quan trọng: Giao diện dòng lệnh của Linux phân biệt rất nghiêm ngặt giữa chữ hoa và chữ thường. Ví dụ, tùy chọn “-S” (S viết hoa) dùng để đặt tên khi tạo mới session, trong khi tùy chọn “-s” (s viết thường) lại mang ý nghĩa thiết lập shell khởi chạy mặc định. Việc nhập sai định dạng chữ hoa/chữ thường có thể dẫn đến lỗi hoạt động hoặc thực thi sai lệnh mong muốn.

4. Hướng dẫn sử dụng lệnh screen qua các ví dụ thực tế

Dưới đây là hướng dẫn chi tiết từng bước thực thi cùng câu lệnh chính xác cho 13 kịch bản sử dụng GNU Screen thực tế từ cơ bản đến nâng cao. Bạn có thể áp dụng trực tiếp các bước này trên hệ điều hành Ubuntu hoặc bất kỳ bản phân phối Linux phổ biến nào khác.

cách sử dụng lệnh screen qua các ví dụ

Ví dụ 1: Bắt đầu tạo session bằng lệnh screen

Để khởi chạy một phiên làm việc (session) mặc định đầu tiên của screen, bạn thực hiện theo các bước sau:

  • Bước 1: Khởi chạy cửa sổ dòng lệnh Terminal trên máy chủ Linux.
  • Bước 2: Nhập chính xác câu lệnh dưới đây và nhấn phím Enter:
screen

Giải thích: Toàn bộ lịch sử hiển thị cũ trên terminal sẽ tạm thời biến mất, thay vào đó là giao diện chào mừng của GNU Screen. Bạn hãy nhấn phím Space (dấu cách) hoặc phím Enter để bỏ qua thông báo này và bắt đầu làm việc trên một session terminal mới vừa được tạo.

Ví dụ 2: Thực hiện thao tác phân tách màn hình (Detach session)

“Phân tách màn hình” (Detach) là thao tác ngắt kết nối tạm thời ra khỏi session hiện tại mà không làm tắt các tiến trình đang chạy bên trong nó. Các bước thực hiện bao gồm:

  • Bước 1: Mở Terminal Linux.
  • Bước 2: Nhập lệnh screen để bắt đầu một phiên làm việc mới.
  • Bước 3: Nhấn giữ nút CTRL, sau đó nhấn phím A rồi nhấn tiếp phím D (Tổ hợp phím Ctrl + a, d).

Giải thích: Hệ thống sẽ ngay lập tức đưa bạn quay trở lại giao diện terminal chính của VPS kèm theo thông báo dạng [detached from 5010.pts-0...]. Toàn bộ các câu lệnh hay tiến trình cào dữ liệu, nâng cấp hệ thống đang chạy bên trong screen vẫn tiếp tục hoạt động bình thường ở chế độ nền.

Ví dụ 3: Đặt tên cho một session vừa tạo

Đặt tên định danh cụ thể cho session giúp bạn dễ dàng theo dõi và kết nối lại chính xác khi hệ thống đang vận hành nhiều tác vụ ngầm đồng thời.

  • Bước 1: Khởi chạy cửa sổ dòng lệnh Terminal.
  • Bước 2: Nhập lệnh khởi tạo session có tên theo cú pháp sau và nhấn Enter:
screen -S newsession

Giải thích: Trong đó, newsession là tên tùy chọn đại diện cho phiên làm việc của bạn. Việc đặt tên này không làm thay đổi tiêu đề bên ngoài cửa sổ terminal hiện tại của bạn, nhưng nó sẽ được lưu trữ trong danh sách quản lý của screen để sử dụng cho các bước tiếp theo.

Ví dụ 4: Hiển thị danh sách session đang được mở

Khi bạn đang vận hành nhiều cửa sổ ảo chạy ngầm và muốn biết chính xác trạng thái hiện tại của chúng, hãy sử dụng tùy chọn -ls theo các bước:

  • Bước 1: Mở cửa sổ Terminal Linux.
  • Bước 2: Nhập câu lệnh sau và gõ Enter:
screen -ls

Giải thích: Màn hình sẽ trả về danh sách các socket phiên làm việc đang chạy kèm theo số nhận dạng PID (Process ID) và trạng thái hiển thị của chúng (như Attached – đang kết nối trực tiếp hoặc Detached – đang chạy ngầm).

Ví dụ 5: Kết nối lại với session screen đã bị ngắt kết nối

Tùy chọn -r cho phép bạn khôi phục và quay lại phiên làm việc đang chạy ngầm trước đó bằng hai bước sau:

  • Bước 1: Khởi động Terminal Linux.
  • Bước 2: Sử dụng đối số là tên session hoặc mã PID để kết nối lại bằng một trong hai lệnh sau:
# Kết nối lại bằng tên session đã đặt
screen -r newsession

# Hoặc kết nối lại bằng mã số PID cụ thể
screen -r 2477

Giải thích: Hệ thống sẽ lập tức đưa bạn quay lại giao diện làm việc bên trong session đích để tiếp tục theo dõi tiến trình thực thi.

Ví dụ 6: Kết thúc tiến trình một session bằng lệnh screen

Khi bạn muốn hủy hoặc đóng hoàn toàn một phiên screen bị treo cứng bằng mã PID từ bên ngoài hệ thống:

  • Bước 1: Nhập lệnh screen -ls để tra cứu chính xác mã PID của session đang chạy (ví dụ PID là 6726).
  • Bước 2: Sử dụng lệnh kill hệ thống để dập tắt tiến trình:
kill 6726

Giải thích: Khi bạn chạy lại lệnh screen -ls, bạn sẽ thấy session có số hiệu PID 6726 đã được kết thúc hoàn toàn và không còn xuất hiện trong danh sách hoạt động.

Ví dụ 7: Kết thúc một session theo tên đã chỉ định

Trong trường hợp bạn đã thoát (detach) khỏi session và muốn tắt hẳn nó đi từ xa theo đúng tên định danh mà không cần phải kết nối lại vào bên trong:

  • Bước 1: Mở Terminal của hệ thống.
  • Bước 2: Nhập lệnh gửi tín hiệu đóng trực tiếp sau đây và nhấn Enter:
screen -X -S newsession quit

Giải thích: Lệnh này sẽ gửi chỉ thị tắt (quit) đến thẳng session đang chạy ngầm có tên là newsession. Bạn có thể chạy lại screen -ls để kiểm tra và xác nhận session đã được dừng lại thành công.

Ví dụ 8: Thực hiện chạy mọi tiến trình ở chế độ nền

Đây là quy trình chuẩn giúp các tác vụ tốn thời gian (như nâng cấp hệ thống) tiếp tục diễn ra ổn định ở chế độ chạy ngầm ngay cả khi bạn tắt terminal cá nhân:

  • Bước 1: Mở Terminal Linux.
  • Bước 2: Khởi tạo một phiên làm việc mới có tên để tiện theo dõi:
screen -S newsession
  • Bước 3: Chạy lệnh nâng cấp hệ điều hành hoặc mã nguồn nặng tại đây:
sudo apt-get upgrade -y
  • Bước 4: Nhấn giữ phím CTRL, nhấn phím A rồi nhấn tiếp phím D để tách ra ngoài.
  • Bước 5: Để kiểm tra lại tiến độ của tác vụ chạy nền, bạn nhập lệnh khôi phục kết nối:
screen -r newsession

Ví dụ 9: Thay đổi tên một session hiện có

Để đổi tên của một session đang hoạt động từ tên cũ (ví dụ: newsession) sang tên mới (ví dụ: session1), bạn thực hiện:

  • Bước 1: Mở Terminal Linux bằng cách nhấn tổ hợp phím CTRL + ALT + T.
  • Bước 2: Nhập câu lệnh thay đổi tên theo cú pháp bắt buộc phải chứa đầy đủ cả số hiệu PID gốc và tên cũ của session:
screen -S 4980.newsession -X sessionname session1

Lưu ý kỹ thuật: Bạn bắt buộc phải ghi đúng định dạng đầy đủ là [PID].[tên_cũ] (ví dụ: 4980.newsession). Nếu bạn chỉ điền độc lập tên hoặc PID đơn lẻ, lệnh đổi tên sẽ không có tác dụng.

  • Bước 3: Kiểm tra lại kết quả đổi tên bằng lệnh:
screen -ls

Hệ thống sẽ trả về kết quả cho thấy tên của phiên làm việc đã đổi thành công sang session1 trong khi mã số PID gốc 4980 vẫn được giữ nguyên.

Ví dụ 10: Thiết lập mật khẩu cho session bằng lệnh screen trong Linux

GNU Screen hỗ trợ bảo mật phiên làm việc bằng mật khẩu để ngăn chặn can thiệp trái phép. Hãy thực hiện theo các bước sau:

  • Bước 1: Khởi chạy cửa sổ Terminal Linux.
  • Bước 2: Tạo một session có tên bằng lệnh:
screen -S newsession
  • Bước 3: Khi đã ở bên trong session, nhấn tổ hợp phím Ctrl + a, sau đó gõ phím : (dấu hai chấm) để chuyển sang chế độ dòng lệnh của screen (edit/command mode).
  • Bước 4: Gõ lệnh password và nhấn Enter. Hệ thống sẽ yêu cầu bạn nhập mật khẩu bảo vệ mong muốn và xác nhận lại mật khẩu đó một lần nữa.

Lưu ý: Khi bạn nhận được thông báo “Password moved into copybuffer” tức là quá trình thiết lập đã thành công. Lần sau khi bạn hoặc ai đó muốn kết nối lại (reattach) vào phiên screen này, hệ thống sẽ bắt buộc yêu cầu nhập đúng mật khẩu đã cấu hình thì mới cho phép truy cập tiếp tục làm việc.

Ví dụ 11: Chia màn hình theo chiều ngang

Tính năng này cho phép bạn phân tách không gian làm việc của một màn hình terminal đơn lẻ thành hai khu vực trên – dưới song song:

  • Bước 1: Mở Terminal Linux.
  • Bước 2: Nhập lệnh để khởi động một session mới:
screen -S newsession
  • Bước 3: Nhấn tổ hợp phím CTRL + A, sau đó nhả ra và nhấn tiếp tổ hợp CTRL + S (ở một số phiên bản, phím tắt này là Ctrl + a rồi ấn phím S viết hoa).

Giải thích: Màn hình terminal hiện tại của bạn sẽ ngay lập tức được phân chia làm hai nửa đều nhau theo chiều ngang từ chính giữa.

Ví dụ 12: Chia đôi màn hình Ubuntu theo chiều dọc

Để phân mảnh hiển thị terminal theo chiều thẳng đứng trái – phải tương tự như giao diện làm việc của các IDE chuyên nghiệp:

  • Bước 1: Khởi chạy cửa sổ Terminal của hệ thống.
  • Bước 2: Nhập lệnh bắt đầu một session mới:
screen -S newsession
  • Bước 3: Nhấn tổ hợp phím CTRL + A, sau đó nhấn phím dấu gạch đứng | (bằng cách ấn phím tổ hợp Shift + \).

Giải thích: Màn hình terminal sẽ được chia đôi làm hai nửa trái – phải với một đường phân cách thẳng đứng màu trắng xuất hiện ở chính giữa.

Ví dụ 13: Chuyển đổi giữa các tab và tạo cửa sổ mới

Khi vừa chia tách màn hình (ở ví dụ 11 hoặc 12), phân vùng mới tạo ban đầu sẽ trống và chưa có luồng shell hoạt động. Bạn thực hiện quy trình sau để bắt đầu làm việc song song:

  • Bước 1: Mở Terminal Linux.
  • Bước 2: Nhập lệnh tạo session mới:
screen -S newsession
  • Bước 3: Nhấn tổ hợp CTRL + A, tiếp tục nhấn phím dấu gạch dọc | (Shift + \) để chia đôi màn hình theo chiều dọc.
  • Bước 4: Nhấn tổ hợp phím CTRL + A, sau đó gõ nút Tab để chuyển tiêu điểm con trỏ làm việc sang phân vùng trống bên cạnh.
  • Bước 5: Nhấn tổ hợp phím CTRL + A và tiếp theo nhấn phím CTRL + C (hoặc gõ phím c tùy phiên bản) để khởi tạo một cửa sổ terminal mới hoạt động tại phân vùng này.

Giải thích: Cả hai nửa màn hình phân tách của bạn giờ đây đều hiển thị dấu nhắc lệnh để bạn có thể bắt đầu gõ lệnh và xử lý đồng thời nhiều tác vụ một cách mượt mà.

Quản lý hiệu quả

Giải pháp VPS tối ưu chi phí cho người mới

Chạy các tiến trình ngầm không lo rớt kết nối

Dịch vụ VPS tại Fast Byte mang đến cho bạn quyền root riêng biệt để tự do cài đặt các công cụ như Screen hay Tmux. Hệ thống phần cứng sử dụng ổ cứng SSD chuyên dụng giúp các tác vụ đọc ghi dữ liệu lớn hoạt động ổn định và bền bỉ.

Tham khảo VPS giá rẻ

5. Quản lý nâng cao với các phím tắt trong màn hình Screen

Một khi đã truy cập vào bên trong giao diện làm việc của screen, việc tương tác và quản trị các cửa sổ được thực hiện thông qua hệ thống phím nóng (hotkeys) rất linh hoạt. Mọi tổ hợp phím nóng trong screen đều bắt buộc phải bắt đầu bằng việc nhấn tiền tố Ctrl + a để thông báo cho trình quản lý screen biết rằng thao tác tiếp theo là dành cho nó, chứ không phải gửi trực tiếp lệnh đến shell hiện tại.

Ví dụ 1: Quản lý nhiều cửa sổ (Windows) trong cùng một Session

Bạn hoàn toàn có thể mở nhiều cửa sổ terminal độc lập nằm chung trong một screen session duy nhất. Hãy thử các thao tác sau để thấy sự đa nhiệm của công cụ này:

  • Tạo cửa sổ mới: Nhấn Ctrl + a, sau đó thả ra và nhấn tiếp phím c (create). Một shell trắng tinh mới tinh sẽ xuất hiện với số thứ tự mặc định tăng dần từ 0, 1, 2…
  • Xem danh sách các cửa sổ hiện có: Nhấn Ctrl + a, sau đó nhấn phím " (dấu nháy kép). Một menu danh sách trực quan sẽ hiện ra cho phép bạn dùng phím mũi tên lên/xuống để chọn cửa sổ muốn mở.
  • Chuyển sang cửa sổ tiếp theo: Nhấn Ctrl + a, nhấn tiếp n (next).
  • Quay lại cửa sổ phía trước: Nhấn Ctrl + a, nhấn tiếp p (previous).
  • Đổi tên cửa sổ hiện tại: Nhấn Ctrl + a, nhấn tiếp A (Shift + a). Hệ thống sẽ yêu cầu bạn nhập tên mới để dễ quản lý mục đích của cửa sổ đó (ví dụ: “MySQL-log”, “Python-tool”).

Ví dụ 2: Chia tách màn hình làm việc linh hoạt

Nếu bạn cần theo dõi nhật ký log ở một cửa sổ trong khi vẫn muốn gõ lệnh ở một cửa sổ khác, tính năng phân tách màn hình (split screen) cực kỳ hữu ích:

  • Chia đôi màn hình theo chiều ngang: Nhấn Ctrl + a, nhấn tiếp phím S (S viết hoa).
  • Chia đôi màn hình theo chiều dọc: Nhấn Ctrl + a, nhấn tiếp phím | (Shift + \).
  • Chuyển đổi tiêu điểm (focus) giữa các vùng phân tách: Nhấn Ctrl + a, nhấn tiếp phím Tab.
  • Kích hoạt shell tại vùng phân tách mới: Khi vừa chuyển tiêu điểm sang vùng trống mới chia, bạn cần nhấn Ctrl + a rồi nhấn c để khởi tạo một terminal hoạt động tại đó.
  • Đóng vùng phân tách hiện tại: Nhấn Ctrl + a, nhấn phím X (Shift + x).
  • Đóng tất cả các vùng khác, chỉ giữ lại vùng hiện tại: Nhấn Ctrl + a, nhấn phím Q (Shift + q).

Ví dụ 3: Thiết lập khóa màn hình bảo mật trực tiếp

Trong trường hợp bạn cần rời khỏi bàn làm việc tạm thời và không muốn ai can thiệp vào terminal đang mở trên máy tính cá nhân, bạn có thể khóa nhanh screen bằng tổ hợp phím sau:

Nhấn tổ hợp phím: Ctrl + a, sau đó nhấn tiếp phím x

Màn hình sẽ hiển thị thông báo yêu cầu nhập mật khẩu của tài khoản người dùng Linux hiện tại (User Password) để có thể mở khóa và tiếp tục sử dụng.

Ví dụ 4: Ghi nhận log chi tiết hoạt động của Screen

Để lưu lại nhật ký toàn bộ kết quả hiển thị của các câu lệnh phục vụ việc kiểm thử, bạn có thể bật tính năng ghi log tự động bằng cách nhấn tổ hợp phím Ctrl + a, sau đó nhấn phím H (Shift + h). Toàn bộ nội dung tương tác của terminal ảo sẽ được lưu liên tục vào một file có tên là screenlog.0 nằm ngay tại thư mục làm việc hiện tại của bạn. Nhấn lại tổ hợp phím này một lần nữa để dừng tiến trình ghi log.

Hiệu năng mượt mà

Hạ tầng hiện đại tốc độ cao

Sẵn sàng đáp ứng cho các dự án của bạn

Nếu bạn cần cài đặt và vận hành các phần mềm quản trị hệ thống phức tạp hay các dự án web động đòi hỏi tốc độ lưu trữ tối ưu, hãy tham khảo các giải pháp máy chủ ảo của Fast Byte. Công nghệ ổ cứng NVMe tiên tiến sẽ mang đến trải nghiệm ổn định và tốc độ phản hồi nhanh chóng.

Tìm hiểu cấu hình VPS

6. Best Practices khi chạy các công cụ MMO, Bot và Tool tự động trên VPS

Đối với nhóm người dùng làm MMO, freelancer hoặc các nhà phát triển thường xuyên cào dữ liệu hoặc treo công cụ tự động 24/7 trên VPS, việc cấu hình screen đúng cách sẽ giúp bạn tránh được những rủi ro gián đoạn công việc không đáng có.

Tránh bẫy lưu file log quá lớn gây đầy ổ đĩa VPS

Khi bạn khởi chạy các tool cào dữ liệu hoặc chạy bot lặp đi lặp lại liên tục bên trong một screen session, các chương trình này thường in ra màn hình một lượng log cực kỳ khổng lồ. GNU Screen theo mặc định sẽ lưu giữ một lượng lịch sử cuộn màn hình (scrollback buffer) nhất định trong RAM. Nếu tính năng ghi log (-L) được kích hoạt liên tục mà không có cơ chế dọn dẹp, file log sẽ nhanh chóng phình to lên đến hàng chục GB, trực tiếp làm cạn kiệt dung lượng ổ cứng của máy chủ ảo.

Khi gặp sự cố phân vùng hệ thống bị đầy do file log rác, bạn nên tham khảo hướng dẫn kỹ thuật về cách mở rộng ổ cứng vps để nhanh chóng bổ sung không gian lưu trữ và cứu hộ hệ điều hành kịp thời.

Tối ưu hóa giao diện Screen bằng file .screenrc

Một điểm trừ mặc định của screen là nó không hiển thị thanh trạng thái trực quan phía dưới để người dùng biết mình đang ở cửa sổ nào. Bạn có thể dễ dàng tùy biến giao diện bằng cách tạo một file cấu hình cá nhân có tên là .screenrc nằm tại thư mục gốc của tài khoản người dùng:

nano ~/.screenrc

Sau đó, bạn copy đoạn cấu hình sau vào file và lưu lại:

# Turn off the welcome message
startup_message off

# Disable visual bell
vbell off

# Set scrollback buffer to 10000
defscrollback 10000

# Customize the status line
hardstatus alwayslastline
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]'

Kể từ lần khởi chạy tiếp theo, screen của bạn sẽ có một thanh điều hướng màu sắc rõ ràng nằm dưới cùng của terminal, hiển thị chính xác ngày giờ hệ thống cùng danh sách các cửa sổ ảo giúp việc di chuyển qua lại giữa các tab trở nên vô cùng thuận tiện.

7. So sánh Screen và các công cụ Multiplexer khác (TMUX, Nohup)

Bên cạnh công cụ screen kinh điển, trong thế giới Linux còn có sự xuất hiện của các công cụ quản lý tiến trình khác như TMUX hay câu lệnh có sẵn nohup. Mỗi công cụ đều có những ưu điểm và hạn chế riêng phù hợp với từng hoàn cảnh sử dụng cụ thể.

Bảng so sánh tính năng thực tế giữa Screen, Tmux và Nohup

Tiêu chí GNU Screen TMUX Nohup (Lệnh hệ thống)
Độ phổ biến có sẵn Rất cao, hầu như có mặt trên tất cả các Distro cũ và mới. Thường phải cài đặt thêm bằng thủ công. Mặc định có sẵn 100% trên mọi nhân Linux.
Khả năng tương tác lại Rất tốt, hỗ trợ kết nối lại đầy đủ giao diện terminal bất cứ lúc nào. Tuyệt vời, có cơ chế quản lý giao diện trực quan và linh hoạt hơn. Không thể tương tác lại, chỉ cho phép đẩy luồng lệnh chạy một chiều.
Chia tách màn hình Có hỗ trợ, nhưng thao tác phím nóng tương đối phức tạp. Hỗ trợ cực kỳ mạnh mẽ, thao tác kéo thả và phân vùng mượt mà. Không hỗ trợ.
Tiêu hao tài nguyên Thấp, hoạt động nhẹ nhàng trên RAM máy chủ ảo. Nhỉnh hơn một chút do gánh thêm nhiều tính năng đồ họa terminal hiện đại. Gần như bằng không vì không tạo ra terminal ảo trung gian.

Đối với người dùng mới bắt đầu học quản trị Linux hoặc đang vận hành các dịch vụ nhẹ trên hệ thống VPS cấu hình vừa phải, việc lựa chọn sử dụng screen là phương án tối ưu nhờ vào tính ổn định, dễ học và mức độ tiêu hao tài nguyên phần cứng cực kỳ tiết kiệm.

Khởi đầu mượt mà

Đăng ký dễ dàng chỉ từ 50K/tháng

Lựa chọn giải pháp VPS giá rẻ để thực hành Linux

Dịch vụ VPS giá rẻ tại Fast Byte là sự lựa chọn thích hợp cho các bạn sinh viên IT, lập trình viên muốn sở hữu một môi trường máy chủ Linux riêng biệt. Bạn có toàn quyền quản trị cao nhất để thực hành gõ lệnh, thử nghiệm mã nguồn và triển khai các dự án cá nhân ổn định.

Xem bảng giá VPS giá rẻ

8. Câu hỏi thường gặp (FAQ)

1. Tại sao tôi gõ lệnh screen và bị báo lỗi “command not found”?

Lỗi này xuất hiện do gói phần mềm screen chưa được cài đặt trên hệ điều hành của bạn. Bạn hãy sử dụng trình quản lý gói tương ứng như sudo apt install screen (cho Ubuntu/Debian) hoặc kích hoạt kho EPEL rồi chạy sudo dnf install screen (cho Rocky/CentOS/AlmaLinux) để khắc phục.

2. Làm thế nào để phân biệt giữa việc “Detach” và “Terminated/Exit” một screen session?

“Detach” (phím tắt Ctrl + a d) chỉ là hành động ngắt kết nối tạm thời ra màn hình ngoài của VPS, tiến trình bên trong screen vẫn hoạt động bình thường. Trong khi đó, “Exit/Terminated” (gõ lệnh exit) sẽ chấm dứt và dập tắt hoàn toàn phiên làm việc cùng tất cả tiến trình con đang chạy bên trong nó.

3. Tôi có thể khôi phục lại các screen session sau khi VPS bị reboot (khởi động lại) không?

Rất tiếc là không thể. Bản chất của screen là một tiến trình daemon hoạt động trên RAM máy chủ. Khi hệ thống VPS bị reboot hoặc sập nguồn vật lý, toàn bộ tiến trình trên RAM sẽ bị xóa sạch, kéo theo các screen session cũng bị hủy bỏ. Bạn nên lưu cấu hình tiến trình vào systemd nếu muốn tự động khởi chạy lại sau khi reboot.

4. Làm thế nào để sửa lỗi session bị treo ở trạng thái “Dead” khi chạy lệnh screen -ls?

Khi một tiến trình hệ thống gặp lỗi đột ngột hoặc bị tắt không đúng cách, session có thể rơi vào trạng thái “Dead” (chết lâm sàng) khiến bạn không thể truy cập lại được. Bạn có thể dễ dàng dọn sạch các session hỏng này khỏi danh sách quản lý bằng cách chạy lệnh: screen -wipe.

5. Làm thế nào để cuộn lên xem lịch sử dòng lệnh (scrollback) khi đang ở bên trong màn hình screen?

Mặc định, bạn không thể sử dụng bánh xe chuột hay phím PageUp/PageDown thông thường để cuộn xem log trong screen. Để bật chế độ cuộn lịch sử (Copy/Scrollback Mode), bạn hãy nhấn tổ hợp phím Ctrl + a sau đó nhấn phím Esc (hoặc dấu [). Lúc này, bạn có thể thoải mái dùng các phím mũi tên để cuộn xem log cũ. Nhấn phím Esc một lần nữa để thoát chế độ này.

Lời kết và định hướng hành động

Nắm vững và vận dụng thành thạo lệnh screen trong linux là một kỹ năng cơ bản nhưng cực kỳ quan trọng giúp bạn kiểm soát hoàn toàn các tiến trình làm việc từ xa trên máy chủ ảo mà không lo sợ sự cố mất mạng mạng SSH bất ngờ. Cho dù bạn là một sinh viên IT đang học deploy dự án đầu tay, hay một nhà phát triển phần mềm đang vận hành một hệ thống vps cho website thương mại điện tử, công cụ screen sẽ là một người bạn đồng hành tin cậy hỗ trợ duy trì hoạt động ngầm liên tục và hiệu quả. Hãy thực hành cài đặt và sử dụng ngay hôm nay để tối ưu hóa công việc quản trị hệ thống của bạn!

Bạn cần một môi trường VPS ổn định để thực hành?

Sở hữu ngay VPS giá rẻ với đầy đủ quyền root cao nhất để tự do làm chủ dòng lệnh Linux của bạn.

Xem bảng giá VPS giá rẻ

Disclaimer: Toàn bộ thông tin, kịch bản lệnh và các hướng dẫn kỹ thuật trong bài viết này được chia sẻ dựa trên trải nghiệm thực hành thực tế và chỉ mang tính chất tham khảo. Các cú pháp câu lệnh, hành vi phản hồi của hệ thống và tính sẵn có của các gói phần mềm hoàn toàn có thể thay đổi tùy thuộc vào phiên bản nhân Linux, bản phân phối hệ điều hành (Ubuntu, CentOS, Rocky Linux), cũng như cơ chế phân quyền đặc thù từ nhà cung cấp dịch vụ máy chủ của bạn. Người đọc nên chủ động thử nghiệm trên các môi trường test an toàn và tiến hành sao lưu dữ liệu quan trọng trước khi áp dụng cho các môi trường chạy sản phẩm (production) thực tế.

Bình luận

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *