Lệnh Screen: Ví dụ về cách sử dụng lệnh screen trong Linux

Tác giả: VPS chính hãng 23 tháng 01, 2024

GNU Screen, hoặc Screen là một công cụ để ghép một thiết bị đầu cuối giữa một số quy trình. Với screen, bạn có thể chạy nhiều phiên bản phiên từ một phiên cuối duy nhất. Chúng ta hãy xem qua một số lệnh screen hữu ích trong Linux và giải thích cách hoạt động của công cụ đa năng này. Screen cũng cho phép bạn đóng và thoát khỏi phiên cuối, kết nối lại sau và tiếp tục công việc của mình. Bạn có thể tiếp tục làm việc từ nơi bạn đã dừng lại, ngay cả sau khi đăng xuất khỏi thiết bị đầu cuối. Trong bài viết này, chúng tôi sẽ giới thiệu cho các bạn một số ví dụ hữu ích về lệnh screen trong Linux. 

Lệnh screen là gì?

Trong Linux, lệnh screen cho phép chúng ta bắt đầu và sử dụng nhiều phiên cuối từ một phiên SSH. Quá trình có thể được tách ra thông qua phiên và chúng ta có thể tiếp tục phiên sau đó nếu quá trình bắt đầu bằng lệnh screen. GNU Screen hay Screen là một công cụ để ghép kênh thiết bị đầu cuối hoặc shell. Với công cụ này, chúng ta cũng có thể bắt đầu bất kỳ phiên màn hình nào sau đó mở một số cửa sổ trong phiên đó. Các quy trình được thực thi sẽ tiếp tục chạy trong phiên ngay cả khi nó được tách ra. Điều này cũng bao gồm việc ngắt kết nối khỏi phiên cuối.

Khi chạy lệnh “screen”, một cửa sổ duy nhất chứa shell (hoặc lệnh được chỉ định) sẽ được tạo, cho phép sử dụng chương trình không bị gián đoạn. Sau đó, các cửa sổ toàn màn hình bổ sung có thể được tạo bất kỳ lúc nào, mỗi cửa sổ có chương trình riêng (bao gồm cả shell). Có thể chấm dứt các cửa sổ hiện có, xem danh sách các cửa sổ, bật hoặc tắt ghi nhật ký đầu ra, sao chép và dán văn bản giữa các cửa sổ, truy cập lịch sử cuộn lại và có thể chuyển đổi giữa các cửa sổ theo bất kỳ cách nào bạn muốn. Do đó nó được đánh giá là một chương trình linh hoạt.

Mỗi cửa sổ hoạt động độc lập với các cửa sổ khác, với các chương trình tiếp tục chạy ngay cả khi cửa sổ tương ứng của chúng không hiển thị hoặc khi toàn bộ phiên màn hình được tách khỏi thiết bị đầu cuối của người dùng. Khi chương trình chấm dứt, màn hình (theo mặc định) sẽ chấm dứt cửa sổ chứa chương trình đó. Nếu cửa sổ này ở phía trước, màn hình sẽ chuyển sang cửa sổ trước đó; nếu không còn cửa sổ, màn hình sẽ thoát.

Lệnh screen cho phép bắt đầu và sử dụng nhiều phiên cuối từ một phiên SSH

Lệnh screen cho phép bắt đầu và sử dụng nhiều phiên cuối từ một phiên SSH

Cách cài đặt screen

Screen thường được cài đặt mặc định trên các máy chủ Linux. Tuy nhiên, nếu nó chưa được cài đặt, chúng ta có thể chạy các lệnh này khi đăng nhập vào máy chủ thông qua SSH.

apt install screen

Lệnh trên có thể được thực thi trên Debian, Ubuntu và các bản phân phối dựa trên Debian khác.

yum install screen

Lệnh trên có thể được thực thi trên CentOS, AlmaLinux, Rocky Linux, v.v.

Cú pháp lệnh screen

Đây là cú pháp được sử dụng cho lệnh screen:

screen [-opts] [cmd [args]]

Các tùy chọn lệnh

Screen có các tùy chọn dòng lệnh sau:

  • -a: Lệnh này buộc tất cả các khả năng vào termcap của mỗi cửa sổ.
  • -A -[r|R] Nó điều chỉnh tất cả các cửa sổ theo chiều rộng và chiều cao đã thay đổi của màn hình.
  • Tệp -c Thay vì ‘.screenrc‘: nó đọc tệp cấu hình.
  • -d (-r): Xóa màn hình đang chạy ở nơi khác (và gắn lại ở đây).
  • -dmS name: Bắt đầu dưới dạng daemon, tức là phiên màn hình ở chế độ ngắt kết nối.
  • -D (-r): Ngắt kết nối và đăng xuất điều khiển từ xa (và gắn lại ở đây).
  • -D -RR: Thực hiện hành động cần thiết để có được phiên màn hình.
  • -e xy: Điều này thay đổi các ký tự dòng lệnh.
  • -f :Được sử dụng để bật điều khiển luồng, -fn=off, -fa=auto.
  • -h: Được sử dụng để đặt kích thước của bộ đệm lịch sử cuộn lại.
  • -i: Ngắt đầu ra sớm hơn khi bật điều khiển luồng.
  • -l: Bật chế độ đăng nhập,(update /var/run/utmp), -ln=off.
  • -ls [match]: Được sử dụng để hiển thị tất cả các màn hình đính kèm.
  • -L: Bật đăng nhập đầu ra.
  • -m: Bỏ qua biến $STY và tạo một phiên màn hình mới.
  • -O: Chọn đầu ra tối ưu thay vì mô phỏng vt100 chính xác.
  • -p window: Được sử dụng để chọn trước cửa sổ được đặt tên nếu nó tồn tại.
  • -q: Làm im lặng quá trình khởi động. Nếu thất bại, nó sẽ thoát với mã trả về mã khác 0.
  • -Q: Giúp gửi câu trả lời đến thiết bị xuất chuẩn của quá trình truy vấn.
  • -r [session]: Gắn lại vào quá trình màn hình tách rời.
  • -R: Nếu có thể, nó sẽ gắn lại; nếu không, nó sẽ tạo một phiên mới.
  • -S sockname: Nó đặt tên phiên là .sockname thay vì …
  • -t title: Được sử dụng để đặt tiêu đề (tên của cửa sổ).
  • -T: Sử dụng thuật ngữ như $TERM cho các cửa sổ thay cho “screen”.
  • -U: Hướng dẫn màn hình sử dụng mã hóa UTF-8.
  • -vlt: In phiên bản của màn hình. Nó sẽ in “Screen version 4.06.02 (GNU) 23-Oct-17”.
  • -x: Gắn vào một màn hình không tách rời.
  • -X: Chạy dưới dạng lệnh màn hình trong phiên nhất định.

Các phím tắt

Khi đang ở trong phiên màn hình, bạn có thể sử dụng các phím tắt sau trên bàn phím:

  • Ctrl-a c: Tạo cửa sổ mới (shell).
  • Ctrl-a k: Tắt cửa sổ hiện tại.
  • Ctrl-a w: Liệt kê tất cả các cửa sổ (cửa sổ hiện tại được đánh dấu bằng “*”).
  • Ctrl-a 0-9: Đi tới cửa sổ được đánh số 0-9.
  • Ctrl-a n: Chuyển đến cửa sổ tiếp theo.
  • Ctrl-a Ctrl-a: Chuyển đổi giữa cửa sổ hiện tại và cửa sổ trước đó.
  • Ctrl-a [: Bắt đầu chế độ sao chép.
  • Ctrl-a ]: Dán văn bản đã sao chép.
  • Ctrl-a ?: Trợ giúp (hiển thị danh sách các lệnh).
  • Ctrl-a Ctrl-\: Thoát khỏi màn hình.
  • Ctrl-a D (Shift-d): Ngắt nguồn và đăng xuất.
  • Ctrl-a d: Tách ra nhưng vẫn mở cửa sổ shell.

Những ví dụ về sử dụng lệnh screen trong Linux

Điều kiện để thực hiện các lệnh screen trong Linux:

  • VPS Linux với bất kỳ bản phân phối Linux phổ biến nào. Trong trường hợp này các bạn có thể mua VPS Việt Nam từ nhà cung cấp uy tín.
  • Quyền truy cập SSH gốc hoặc người dùng thông thường có đặc quyền sudo.

Kiểm tra phiên bản

Để kiểm tra phiên bản screen, chỉ cần chạy lệnh này:

screen --version

Lệnh sẽ hiển thị cho bạn một đầu ra tương tự như thế này: Screen version 4.09.00 (GNU) 30-Jan-22.

Chạy phiên màn hình mới

screen

Bạn sẽ thấy thông báo như trong hình bên dưới.

Một phiên màn hình (screen) mới xuất hiện sau khi chạy lệnh

Một phiên màn hình (screen) mới xuất hiện sau khi chạy lệnh

Chỉ cần nhấn ENTER hoặc SPACE trên bàn phím của bạn. Sau đó, bạn nên tham gia phiên sàng lọc ngay bây giờ. Bạn có thể nhập nội dung nào đó trên màn hình. Ví dụ: nhập “This is a screen session”.

Nhập nội dung vào phiên

Nhập nội dung vào phiên

Sau đó nhấn phím tắt Ctrl-A rồi gõ chữ d để tách màn hình. Sau khi tách ra, bạn sẽ nhận được một thông báo trong phiên SSH của mình như thế này:

[detached from 71107.pts-0.rh]

Để gắn vào màn hình tách rời, bạn có thể chạy lệnh này:

screen -x

Sau khi đính kèm, bạn sẽ có thể tìm thấy phiên bản màn hình mà bạn đã để lại và thông báo “This is a screen session”. Với điều này, bạn có thể chạy lệnh và kiểm tra chúng ngay sau khi bạn ngắt kết nối.

Liệt kê các phiên màn hình

Khác với lệnh script là ghi lại các lệnh đã chạy với kết quả của nó, còn để liệt kê các phiên màn hình bạn có thể chạy lệnh sau.

screen -ls

Lệnh sẽ trả về một đầu ra tương tự như sau:

There are screens on:
71199.rosehosting-screen (09/19/2023 05:49:18 AM) (Attached)
71107.pts-0.rh (09/19/2023 05:41:09 AM) (Detached)
2 Sockets in /run/screen/S-root.

Tiếp tục phiên màn hình

Sau khi liệt kê các phiên màn hình, bạn có thể tiếp tục lại một trong các phiên bằng cách chạy cú pháp lệnh này:

screen -r [PID] or {NAME}

Vì vậy, để tiếp tục màn hình với PID 71199 hoặc tên rosehosting-screen, chúng ta có thể chạy một trong hai lệnh này.

screen -r 71199
screen -r rosehosting-screen

Lệnh trên sẽ đưa bạn đến phiên.

Vậy là bạn đã biết được những lệnh screen phổ biến trong Linux bằng các ví dụ. Nếu bạn muốn tìm hiểu sâu hơn, bạn có thể chạy lệnh sau để tham khảo các hướng dẫn.

man screen

Với những ai đam mê khám phá sử dụng máy chủ VPS giá rẻ mà lại chất lượng để thực hiện các công việc hãy đến với VPS Chính hãng ngay hôm nay, vô vàn ưu đãi hấp dẫn nhân dịp đầu năm 2024 đang chờ đón các bạn. Chúc các bạn thành công!