Câu lệnh Screen trong Linux là gì? Hướng dẫn cách sử dụng Screen trên Linux

Câu lệnh Screen trong Linux là gì? Hướng dẫn cách sử dụng Screen trên Linux

Đôi khi bạn gặp tình huống phải thực hiện một câu lệnh nào đó trong Linux mà tốn nhiều thời gian ở trên máy chủ khi bạn remote lên, hoặc nhiều khi lệnh đang chạy thì bị mất kết nối mạng, SSH session sẽ bị tắt mất, những tác vụ đang chạy sẽ bị dừng lại. Những việc này có thể chúng ta đã gặp vào lúc nào đó mà không biết cách xử lý thế nào. Để giải quyết vấn đề này, có một tiện ích có tên screen sẽ cho phép chúng ta tiếp tục lại các session làm việc trên máy chủ.

Giới thiệu về lệnh Screen

Screen hay GNU Screen là một tiện ích để xử lý nhiều kênh terminal. Nói cách khác, tiện ích screen cho phép bạn khởi chạy một màn hình xử lý lệnh và sau đó có thể mở được tuỳ ý các cửa sổ khác nhau (các terminal ảo) trong màn hình đó. Các tiến trình chạy trong Screen sẽ tiếp tục được chạy ngay cả khi màn hình không được mở hoặc khi bạn đã ngắt kết nối tới máy chủ.

Cài đặt tiện ích GNU Screen trong Linux

Tiện ích screen hầu hết được cài đặt sẵn trong các Linux distro. Bạn có thể kiểm tra việc screen đã được cài trên hệ thống của bạn chưa bằng câu lệnh sau:

screen --version

Nếu screen đã được cài, hệ thống sẽ hiển thị phiên bản của screen như sau:

Screen version 4.06.02 (GNU) 23-Oct-17
Kiểm tra phiên bản của screen trong Linux

Nếu như hệ thống không hiển thị như trên hoặc báo lỗi, bạn có thể cài đặt screen bằng cách sử dụng trình quản lý package manager trong hệ thống.

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

sudo apt update
sudo apt install screen

Cài đặt Linux Screen trên hệ điều hành CentOS và Fedora

sudo yum install screen

Hướng dẫn cách sử dụng Screen trong Linux

Khi bạn khởi chạy tiện ích Screen trong Linux, nó sẽ tạo ra một session mới. Mỗi session là một phiên làm việc, trong phiên làm việc này có thể chứa nhiều cửa sổ khác nhau, mỗi cửa sổ là một màn hình terminal để bạn có thể chạy các lệnh trong đó. Screen cho phép bạn có thể chạy một hoặc nhiều session tuỳ ý của bạn.

Để bắt đầu khởi động một session với screen, bạn chỉ cần gõ screen trong màn hình console:

screen

Câu lệnh sẽ khởi chạy một session với screen, tạo một cửa sổ mới và bắt đầu một màn hình shell trong cửa sổ đó.

Trong một session của screen, bạn có thể hiển thị danh sách các lệnh của screen bằng cách bấm tổ hợp phím: Ctrl+a ?

Danh sách các lệnh trong Screen

Đặt tên cho session trong Screen

Việc đặt tên các session trong screen rất hữu ích khi bạn chạy cùng lúc nhiều session khác nhau. Để đặt tên một session, chạy lệnh screen  với đối số như sau:

screen -S session_name

Trong đó session_name là tên của session bạn muốn đặt. Bạn nên đặt tên cho session để dễ ghi nhớ nhất.

Cách sử dụng nhiều cửa sổ trong Screen

Khi bạn khởi chạy một session mới trong screen, hệ thống sẽ tạo một cửa sổ với một màn hình shell trong đó.

Bạn có thể tạo ra nhiều cửa sổ để thực hiện các lệnh khác nhau trong Screen.

Để tạo cửa sổ làm việc mới, bấm tổ hợp phím Ctrl+a c, số thứ tự của cửa sổ từ 0...9 sẽ được tự động đánh số vào cửa sổ bạn vừa tạo.

Sau đây là danh sách các lệnh thường được sử dụng để quản lý các cửa sổ trong Screen:

  • Ctrl+a c Tạo cửa sổ mới (với shell trong đó).
  • Ctrl+a " Hiển thị tất cả các cửa sổ.
  • Ctrl+a 0 Chuyển sang cửa sổ có thứ tự 0 (số bạn nhập là thứ tự của cửa sổ).
  • Ctrl+a A Đổi tên cửa sổ hiện tại.
  • Ctrl+a S Chia vùng hiện tại thành 2 vùng theo chiều ngang.
  • Ctrl+a | Chia vùng hiện tại thành 2 vùng theo chiều dọc.
  • Ctrl+a tab Chuyển con trỏ nhập lệnh sang vùng bên cạnh.
  • Ctrl+a Ctrl+a Chuyển cửa sổ hiện tại sang cửa sổ nằm trước nó
  • Ctrl+a Q Đóng tất cả các cửa sổ  khác trừ màn hình hiện tại.
  • Ctrl+a X Đóng cửa sổ hiện tại.
Sử dụng lệnh Screen trong Linux, bạn có thể chia màn hình thành nhiều cửa sổ khác nhau để làm nhiều việc một lúc.

Cách ẩn đi session hiện tại Screen trong Linux

Bạn có thể tạm ẩn session của screen hiện tại bằng cách sử dụng tổ hợp phím: Ctrl+a d

Các tiến trình chạy trong session screen hiện tại vẫn sẽ được chạy sau khi bạn đã ẩn screen đi.

Cách tiếp tục chạy session của Screen trong Linux

Để tiếp tục chạy lại session với screen sau khi đã ẩn đi, bạn hãy sử dụng câu lệnh:

screen -r

Trong trường hợp bạn có chạy nhiều session khác nhau của screen trong hệ thống, bạn cần thêm vào ID của phiên làm việc sau đối số r trong câu lệnh.

Để lấy được danh sách các ID của các session đang chạy trong screen, hãy sử dụng câu lệnh:

screen -ls

Hệ thống sẽ trả về danh sách các session hiện tại:

There are screens on:
    10835.pts-0.linuxize-desktop   (Detached)
    10366.pts-0.linuxize-desktop   (Detached)
2 Sockets in /run/screens/S-linuxize.

Nếu bạn muốn khôi phục lại phiên 10835.pts-0, hãy sử dụng câu lệnh sau:

screen -r 10835

Cách tắt đi một session trong Screen trong Linux

Nếu bạn muốn tắt đi một session Screen nào đó để giải phóng bộ nhớ, đầu tiên hãy khôi phục lại session đó bằng câu lệnh screen -r session_id. Sau đó, bấm tổ hợp phím Ctrl+a K . Một thông báo hiện lên để xác nhận việc kill đi session hiện tại:

Really kill this window [y/n]

Bạn chọn y để xác nhận hoặc n để huỷ bỏ việc kill session.

Tuỳ chỉnh lại Screen trong Linux

Khi tiện ích screen được chạy, nó sẽ đọc các thông số cài đặt được thiết lập từ các file /etc/screenrc~/.screenrc nếu như các file này có tồn tại. Chúng ta có thể tuỳ chỉnh các thiết lập mặc định của Screen theo ý thích bằng cách thêm các thông số vào trong file .screenrc.

Dưới đây là một ví dụ cài đặt  ~/.screenrc với việc thiết lập một số dòng trạng thái và các các thông số liên quan:

# 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}]'

Sử dụng Screen cơ bản trong Linux

Hướng dẫn tóm tắt cách sử dụng lệnh Screen cơ bản trong Linux:

  1. Trong màn hình lệnh của Linux, gõ screen
  2. Chạy dòng lệnh bạn muốn thực thi.
  3. Dùng tổ hợp phím Ctrl-a + Ctrl-d để ẩn session hiện tại của screen.
  4. Tiếp tục khởi chạy lại session của screen bằng câu lệnh screen -r

Kết luận

Trong bài viết trên, bạn đã tìm hiểu về cách sử dụng lệnh screen trong Linux. Bây giờ bạn có thể bắt đầu sử dụng tiện ích Screen và tạo ra nhiều cửa sổ để xử lý đa tác vụ khác nhau trong một session, điều hướng giữa các cửa sổ, ẩn và chạy lại các session trong screen, tắt một session đang chạy và tuỳ biến lại tiện ích bằng cách sửa file .screenrc.

Ngoài ra, bạn có thể học thêm cách sử dụng GNU Screen bằng cách tham khảo tài liệu chính thức tại trang Screen User’s Manual.

Nếu bạn có câu hỏi hoặc phản hồi về bài viết, hãy để lại ở phía dưới phần bình luận nhé. Cảm ơn bạn đã đọc bài viết.