NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
16/09/2024
Lượt xem

Lệnh screen trong Linux – Cách sử dụng lệnh qua 13 ví dụ chi tiết

16/09/2024
20 phút đọc
Lượt xem

Đánh giá

Bạn đang làm việc trên một máy chủ từ xa, nhưng lại cần chạy nhiều session với một terminal duy nhất. Trong trường hợp này, lệnh screen trong Linux là công cụ đắc lực dành cho bạn để tạo nhiều session hoạt động độc lập, chuyển đổi mượt mà và bảo vệ các tác vụ khỏi việc bị ngắt kết nối đột ngột. Hãy cùng Vietnix tìm hiểu chi tiết hơn về lệnh screen trong Linux  và 13 ví dụ thực tế về lệnh này trong bài viết sau.

Lệnh screen trong Linux là gì?

Lệnh screen trong Linux là công cụ được tích hợp sẵn trong hầu hết các bản phân phối của hệ điều hành Linux (Linux Distro). Lệnh này được phát triển bởi Oliver Laumann và Carsten Bormann từ năm 1987 trên hệ điều hành Unix. Với tính năng chính là tối ưu hóa công việc cho người dùng, lệnh screen hỗ trợ duy trì các tiến trình đang chạy ngay cả khi không còn kết nối với terminal.

Lệnh screen trong Linux
Lệnh screen trong Linux

Từ đó giúp người dùng tăng hiệu quả công việc đáng kể. Trải qua nhiều quá trình cải tiến, lệnh screen trở thành công cụ không thể thiếu, đặc biệt trong các phiên làm việc từ xa thông qua SSH

Lệnh screen mang đến sự hữu ích đa nhiệm trong công việc của người dùng. Dòng lệnh được xem là một trong các câu lệnh trong Linux cơ bản và tương đối quan trọng, bạn có thể tìm hiểu và ứng dựng ngay trên một số hệ điều hành dựa trên Linux với giao diện thân thiện như Ubuntu.

Cú pháp cơ bản của lệnh screen

screen [OPTION]... [COMMAND [ARGUMENT]]...

Lưu ý: OPTIONARGUMENT được đặt trong dấu ngoặc vuông và theo sau là dấu ba chấm, có nghĩa là bạn có thể cung cấp nhiều tùy chọn và đối số cùng một lúc. Hơn nữa, COMMAND biểu thị rằng bạn có thể thực hiện lệnh trong session mà không cần đính kèm lệnh đó.

5 tùy chọn sử dụng của lệnh screen

Bạn có thể kiểm tra toàn bộ các tùy chọn bằng cách nhập lệnh man theo cú pháp sau vào command prompt:

man screen

Các tùy chọn hữu ích mà bạn cần quan tâm như sau:

Tùy chọnChức năng
-STạo một session mới
-pDùng để gán mật khẩu cho session
-XThực thi các lệnh bên trong session
-rKết nối lại với một session
-lsLiệt kê tất cả các session đang chạy

Lưu ý: Các tùy chọn trong Linux CLI (Giao diện dòng lệnh) có phân biệt chữ hoa và chữ thường. Việc viết cùng một tùy chọn với hình thức chữ hoa hoặc chữ thường khác nhau có thể thực hiện các tác vụ khác nhau hoặc tạo ra lỗi.

3 bước cài đặt lệnh screen trong Linux

Hầu hết các bản phân phối Linux đều tích hợp sẵn lệnh screen. Tuy nhiên, nếu Linux Distro không có lệnh này, bạn có thể cài đặt bằng cách làm theo 3 bước như sau:

  • Bước 1: Chạy Terminal trên Ubuntu.
  • Bước 2: Sao chép lệnh sau vào command prompt và nhấn Enter:
sudo apt-get install screen

Quá trình cài đặt được bắt đầu, kết quả sẽ hiển thị như bên dưới:

Kết quả sau khi cài đặt lệnh screen
Kết quả sau khi cài đặt lệnh screen
  • Bước 3: Bạn gõ “Y” nếu xuất hiện thông báo “Do you want to continue” và nhấn Enter một lần nữa. Quá trình cài đặt sẽ hoàn tất trong thời gian ngắn.
Gõ "Y" khi xuất hiện thông báo "Do you want to continue"
Gõ “Y” khi xuất hiện thông báo “Do you want to continue”

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

Đầu tiên, bạn hãy khởi động một session bằng lệnh screen với các bước đơn giản như sau:

Bước 1: Khởi chạy Ubuntu Terminal.

Bước 2: Nhập lệnh sau vào Terminal và nhấn Enter.

screen

Trong hình ảnh dưới đây, Vietnix chỉ gõ lệnh screen và nhấn Enter. Bạn có thể thấy mọi thứ trên terminal đã biến mất, tuy nhiên trên thực tế, bạn vừa khởi tạo một session terminal mới!

Gõ lệnh screen và nhấn Enter
Gõ lệnh screen và nhấn Enter
Một session terminal mới đã được tạo
Một session terminal mới đã được tạo

Trong trường hợp bạn nhận được thông báo như thế này, hãy tiếp tục nhấn nút Space.

Nhấn nút Space khi nhận thông báo như hình ảnh này
Nhấn nút Space khi nhận thông báo như hình ảnh này

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

Để tách màn hình mà không kết thúc session, bạn hãy làm theo 3 bước như sau:

Bước 1: Nhấn CTRL + ALT + T để mở Ubuntu Terminal.

Bước 2: Bạn tiến hành sao chép lệnh sau vào command prompt để bắt đầu session mới:

screen

Bước 3: Bạn giữ nút CTRL, nhấn A rồi nhấn D.

Khi tách khỏi một session, bạn sẽ quay lại sẽ thấy thông báo “ [ detached from …..]” như bên dưới:

Thông báo sau khi tách màn hình
Thông báo sau khi tách màn hình

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

Session có tên giúp bạn theo dõi tất cả các session đang chạy trên máy. Ngoài ra, việc đặt tên còn giúp bạn dễ dàng kết nối lại với session đã tạo trước đó. Để đặt tên cho session, bạn hãy làm theo các bước sau:

Bước 1: Bạn vào Ubuntu và khởi chạy Terminal.

Bước 2: Chèn lệnh bên dưới vào Terminal và nhấn Enter:

screen -S newsession

Lưu ý: Ở đây “newsession” là tên session làm việc cuối cùng.

Bạn cần biết rằng việc đặt tên cho session không làm thay đổi tiêu đề của cửa sổ terminal. Về mặt hiển thị, bạn sẽ không thấy bất kỳ khác biệt nào, nhưng lợi ích của việc đặt tên sẽ thể hiện trong các tình huống phức tạp hơn khi sử dụng Linux. Sau khi hoàn thành các thao tác, bạn có thể thấy, session mới trông tương tự như ở ví dụ 1.

Sau khi tạo một session có tên
Sau khi tạo một session có tên

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

Giả sử có nhiều session đang chạy trong hệ thống và bạn muốn xem danh sách các session đó. Lệnh screen trong Linux sẽ sử dụng tùy chọn -ls để giúp bạn liệt kê tất cả các session. Hãy làm theo 2 bước sau để xem danh sách của bạn:

Bước 1: Bạn mở Terminal từ Ubuntu.

Bước 2: Nhập lệnh sau vào command prompt và nhấn Enter:

screen -ls

Kết quả: Hiện tại, có hai session đang chạy trên máy, Bạn có thể thấy một số theo sau là một chuỗi trong danh sách. Số đó biểu thị PID (Process Identification Number) và chuỗi là tên của tiến trình đó. Bạn sẽ thấy “Attached” hoặc “Detached” ở bên phải danh sách. Trong đó, Attached cho biết bạn đang ở trong session đó ngay bây giờ và Detached là ngược lại.

Hiển thị danh sách session đang mở bằng lệnh screen
Hiển thị danh sách session đang mở bằng lệnh screen

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

Lệnh screen trong Linux có tùy chọn -r sẽ giúp bạn dễ dàng kết nối lại với một session đã ngắt kết nối trước đó. Bạn cũng cần cung cấp một đối số, có thể là tên của session hoặc PID (số nhận dạng tiến trình). Các bước bạn cần làm như sau:

Bước 1: Bạn khởi động Ubuntu Terminal bằng cách nhấn CTRL + ALT + T.

Bước 2: Nhập lệnh bên dưới vào Terminal và nhấn Enter:

screen -r newsession

Hoặc là:

screen -r 2477

Quá trình thực hiện có thể mô tả đơn giản như sau, bạn gắn lại session hiện có theo tên của nó. Sau đó, bạn tách khỏi nó và kết nối lại lần nữa bằng cách sử dụng PID.

Kết nối lại với session screen
Kết nối lại với session screen

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

Bạn có thể sử dụng lệnh kill để kết thúc bất kỳ tiến trình nào trong hệ điều hành Linux bao gồm session terminal. Tuy nhiên, bạn cần PID của một tiến trình để làm điều đó. Trong hình ảnh dưới đây, PID của newsession là 2090. 

PID của newsession là 2090
PID của newsession là 2090

Để tìm PID của các session bạn nhập lệnh sau và thực hiện 2 bước bên dưới để kết thúc session:

screen -ls

Bước 1: Vào Ubuntu và mở Terminal.

Bước 2: Sao chép lệnh sau vào command prompt và nhấn Enter.

kill 2090

Bạn có thể thấy rằng tiến trình đã kết thúc, lúc này bạn đã sử dụng lệnh screen -ls và nhận được thông báo “No Sockets found” – cho biết không có session nào đang chạy trong Ubuntu.

Không có session nào đang chạy sau khi thực hiện lệnh
Không có session nào đang chạy sau khi thực hiện lệnh

Lưu ý : Bạn hãy sử dụng lệnh sau để liệt kê tất cả các session có sẵn:

reen -ls

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

Thông thường, bạn có thể tắt session bằng cách gõ “quit“, tuy nhiên để làm được điều đó bạn cần phải ở trong session muốn tắt. Trường hợp đã rời khỏi session, bạn hãy sử dụng lệnh screen với tùy chọn -X. Để biết tên các session trước khi kết thúc nó, bạn hãy nhập lệnh sau:

screen -ls
Nhập screen -ls để biết tên session
Nhập screen -ls để biết tên session

Theo ảnh trên, hiện đang có một session screen có tên là newsession, để kết thúc session này, bạn làm như sau:

Bước 1: Khởi động Terminal từ Ubuntu.

Bước 2: Bạn chèn lệnh sau vào Terminal và nhấn Enter:

screen -X -S newsession quit

Tại đây, bạn đã thực thi lệnh “quit” trong session “newsession” đã ngắt kết nối, để session này được kết thúc hoàn toàn. Trong hình bên dưới kết quả hiển thị là “No Sockets found“, chứng tỏ không có session nào hiện đang hoạt động.

Tắt session theo tên chỉ định
Tắt session theo tên chỉ định

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

Chạy một tiến trình ở chế độ nền bằng lệnh screen là một thao tác quan trọng khi sử dụng hệ điều hành Linux, giúp các tiến trình có thể tiếp tục diễn ra ngay cả khi bạn đóng cửa sổ terminal hoặc đăng xuất khỏi máy. Để thực hiện việc này, bạn làm theo các bước sau:

Bước 1: Bạn hãy mở Ubuntu Terminal.

Bước 2: Nhập lệnh sau để bắt đầu một session mới:

screen -S newsession
Tạo một session terminal mới và gắn lại sau khi tách nó ra
Tạo một session terminal mới và gắn lại sau khi tách nó ra

Bước 3: Sau đó, bạn sao chép lệnh sudo như bên dưới để nâng cấp hệ thống:

sudo apt-get upgrade
Lệnh để bắt đầu quá trình nâng cấp
Lệnh để bắt đầu quá trình nâng cấp

Bước 4: Bạn giữ phím CTRL, sau đó nhấn A rồi nhấn D để ngắt kết nối với session hiện tại.

Bước 5: Để kiểm tra tình trạng nâng cấp, bạn chèn lệnh bên dưới vào Terminal và chọn Enter:

screen -r newsession
Sau khi kết nối lại các tiến trình vẫn tiếp tục chạy nền
Sau khi kết nối lại các tiến trình vẫn tiếp tục chạy nền

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

Ví dụ, bạn cần phải đổi tên một session đã có. Giả sử, bạn có một session có tên là oldsession và muốn đổi tên thành newsession. Bạn sẽ cần cả tên và PID của một session để làm điều đó. Lúc này để xem tên của các session, bạn hãy nhập lệnh sau:

screen -ls
Xem tên session bằng lệnh screen -ls
Xem tên session bằng lệnh screen -ls

Tiếp theo, bạn hãy làm theo 3 bước dưới đây để đổi tên session:

  • Bước 1: Mở Terminal trong Ubuntu bằng cách nhấn tổ hợp phím CTRL + ALT + T.
  • Bước 2: Sao chép lệnh sau vào command prompt và nhấn Enter:
screen -S 3135.oldsession -X sessionname newsession

Lưu ý: Nếu bạn chỉ sử dụng tên hoặc PID, việc đổi tên sẽ không có tác dụng.

  • Bước 3: Để kiểm tra xem tên đã thay đổi hay chưa, bạn hãy viết lệnh sau và nhấn Enter:
screen -ls
Tên session đã được thay đổi vì PID vẫn giữ nguyên.
Tên session đã được thay đổi vì PID vẫn giữ nguyên.

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

Lệnh screen trong Linux cung cấp tùy chọn -p để gán mật khẩu cho một session. Hơn nữa, bạn cũng cần sử dụng thêm tùy chọn -S để đặt mật khẩu (mật khẩu phải là một chuỗi ký tự cụ thể, không phải là một từ khóa hay một lệnh đặc biệt nào đó). Bây giờ, bạn hãy làm như sau để thêm mật khẩu cho session:

Bước 1: Bạn khởi chạy Terminal trong Ubuntu.

Bước 2: Viết lệnh sau vào Terminal và nhấn Enter:

screen -S newsession -p 123456

Bạn đã tạo một session có tên là newsession và có mật khẩu là 123456. Khi bạn thử trở lại session đó, hệ thống sẽ yêu cầu nhập mật khẩu.

Hệ thống yêu cầu nhập mật khẩu cho session sau khi hoàn thành các bước thêm mật khẩu
Hệ thống yêu cầu nhập mật khẩu cho session sau khi hoàn thành các bước thêm mật khẩu

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

Nếu bạn là người dùng Windows hoặc macOS, việc chia đôi màn hình là điều vô cùng đơn giản. Tuy nhiên trong Linux, việc này lại không dễ dàng như vậy. Trong trường hợp đó, lệnh screen trong Linux sẽ giúp bạn giải quyết vấn đề. Để sử dụng 2 màn hình trên Ubuntu theo chiều ngang, bạn thực hiện như sau:

  • Bước 1: Mở Ubuntu Terminal.
  • Bước 2:  Sao chép lệnh sau vào command prompt để bắt đầu session và nhấn Enter:
screen -S newsession
  • Bước 3: Bạn nhấn CTRL + A , tiếp theo là CTRL + S.
Màn hình được chia thành 2 nửa từ giữa
Màn hình được chia thành 2 nửa từ giữa

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

Trong trường hợp bạn cần chia màn hình theo chiều dọc, bạn sử dụng lệnh screen như sau:

Bước 1: Bạn khởi chạy Terminal từ Ubuntu.

Bước 2: Bạn chèn lệnh sau vào command prompt để bắt đầu session và nhấn ENTER:

screen -S newsession

Bước 3: Bạn nhấn CTRL + A, sau đó nhấn dấu “| (thanh dọc).

Màn hình được chia đôi với đường thẳng đứng màu trắng ở giữa
Màn hình được chia đôi với đường thẳng đứng màu trắng ở giữa

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

Để chuyển đổi giữa các tab và tạo cửa sổ làm việc mới, bạn có thể sử dụng lệnh screen trong Linux. Các bước thực hiện như sau:

  • Bước 1: Bạn vào Ubuntu và mở Terminal.
  • Bước 2: Nhập lệnh sau để tạo session:
screen -S newsession
  • Bước 3: Bạn chia đôi màn hình theo chiều dọc bằng cách nhấn CTRL + A, sau đó nhấn “| (thanh dọc).
  • Bước 4: Nhấn CTRL + A, sau đó nhấn nút Tab để chuyển sang tab khác.
Tạo cửa sổ mới và di chuyển đến tab bên phải
Tạo cửa sổ mới và di chuyển đến tab bên phải
  • Bước 5: Nhấn lại CTRL + A CTRL + C để tạo một cửa sổ mới.
Cả hai tab đều có “walid@Ubuntu” ở đầu
Cả hai tab đều có “walid@Ubuntu” ở đầu

Câu hỏi thường gặp

Có thể sử dụng screen để chia màn hình thành nhiều phần ngang hoặc dọc không?

Có thể. Với tính năng này, bạn có thể quản lý nhiều công việc cùng một lúc trên một màn hình đơn lẻ

Có cách nào để tạo một macro trong screen để tự động hóa các tác vụ lặp lại không?

Câu trả lời là không. Vốn dĩ lệnh screen không có một cơ chế tích hợp để tạo macro theo cách truyền thống như một số trình soạn thảo văn bản hoặc các công cụ tự động hóa khác

Có thể sử dụng screen để kết nối với một máy chủ từ xa và chạy lệnh trên đó không?

Có thể. Khi bạn kết nối với một máy chủ từ xa sẽ có 3 lợi ích như:
1. Ngăn chặn kết nối bị ngắt
2. Quản lý nhiều phiên làm việc với screen khác nhau
3. Tách biệt các công việc: độc lập trên mỗi phiên screen.

Lời kết

Bài viết trên đã cung cấp cho bạn thông tin tổng quan về lệnh screen trong Linux và 13 ví dụ sử dụng lệnh này. Screen được xem là một dòng lệnh vô cùng hữu ích giúp công việc của bạn hiệu quả và năng suất hơn. Nếu như bạn có bất kỳ thắc mắc nào, hãy để lại bình luận bên dưới, Vietnix sẽ giải đáp nhanh nhất đến bạn!

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

PHẦN CỨNG MẠNH MẼ

HỖ TRỢ 24/7

ĐĂNG KÝ NGAY
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG