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.
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]]...
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ọn | Chức năng |
---|---|
-S | Tạo một session mới |
-p | Dùng để gán mật khẩu cho session |
-X | Thực thi các lệnh bên trong session |
-r | Kết nối lại với một session |
-ls | Liệt kê tất cả các session đang chạy |
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:
- 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.
13 ví dụ về cách sử dụng lệnh screen trong Linux
- Bắt đầu tạo session bằng lệnh screen
- Thực hiện thao tác phân tách màn hình
- Đặt tên cho một session vừa tạo
- Hiển thị danh sách session đang được mở
- Kết nối lại với session đã bị ngắt kết nối
- Kết thúc tiến trình một session bằng lệnh screen
- Kết thúc một session theo tên đã chỉ định
- Thực hiện chạy mọi tiến trình ở chế độ nền
- Thay đổi tên một session hiện có
- Thiết lập mật khẩu cho session bằng lệnh screen trong Linux
- Chia màn hình theo chiều ngang
- Chia đôi màn hình Ubuntu theo chiều dọc
- Chuyển đổi giữa các tab và tạo cửa sổ mới
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!
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.
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:
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
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.
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.
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.
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.
Để 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.
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
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.
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
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
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
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
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
- 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
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.
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.
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).
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.
- Bước 5: Nhấn lại CTRL + A và CTRL + C để tạo một cửa sổ mới.
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!