20 ví dụ lệnh Screen trên Centos / Ubuntu / Debian / Fedora
Lệnh screen là một chương trình phần mềm toàn màn hình được sử dụng để chia nhân bản một bảng điều khiển vật lý giữa nhiều quy trình (thường là các shell tương tác). Cho phép người dùng mở nhiều phiên bản terminal riêng lẻ trong một cửa sổ quản lý terminal duy nhất.
Ứng dụng screen rất hữu ích nếu làm việc với nhiều chương trình từ giao diện dòng lệnh và để tách biệt các chương trình khỏi terminal shell. Nó cũng cho phép bạn chia sẻ phiên làm việc của mình với người dùng khác và tách/ghép các phiên terminal.
Cài đặt lệnh screen trên Linux
Trên phiên bản Ubuntu Server Edition, lệnh screen đã được cài đặt mặc định. Tuy nhiên, Linux Mint không có screen được cài đặt sẵn, vì vậy sẽ cài đặt bằng lệnh apt-get trước khi sử dụng.
Làm theo thủ tục cài đặt của bản phân phối để cài đặt screen.
$ sudo apt-get install screen [On Debian, Ubuntu and Mint] $ sudo yum install screen [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux] $ sudo emerge -a sys-apps/screen [On Gentoo Linux] $ sudo apk add screen [On Alpine Linux] $ sudo pacman -S screen [On Arch Linux] $ sudo zypper install screen [On OpenSUSE]
Kiểm tra xem lệnh đã được cài đặt thành công chưa:
$ screen --version Screen version 4.8.00 (GNU) 05-Feb-20
Thực tế, screen là một chương trình multiplexer terminal rất tốt trong Linux, nó được ẩn trong hàng trăm lệnh Linux.
Cú pháp lệnh screen
$ screen [OPTIONS] [ CMD [ ARGS ] ]
Trong cú pháp trên, có thể thấy rằng tất cả các tham số đều là tùy chọn và được biểu diễn bằng dấu ngoặc vuông ([]).
Bắt đầu phiên làm việc đầu tiên với screen
Chỉ cần gõ lệnh screen trên dòng lệnh. Sau đó, screen sẽ hiển thị một giao diện chính xác như dòng lệnh thông thường.
$ screen
Hiển thị tham số của screen
Khi bạn vào screen, bạn có thể làm tất cả công việc của bạn như bạn đang ở môi trường dòng lệnh bình thường. Nhưng vì screen là một ứng dụng, nên nó có các lệnh hoặc tham số.
Gõ "Ctrl-A" và "?" mà không có quotes. Sau đó, bạn sẽ thấy tất cả các lệnh hoặc tham số trên màn hình.
Để thoát khỏi màn hình trợ giúp, bạn có thể nhấn phím "space-bar" hoặc "Enter". (lưu ý rằng tất cả các phím tắt sử dụng "Ctrl-A" được thực hiện không có dấu ngoặc).
Liệt kê tất cả cửa sổ đang mở
Sử dụng tổ hợp phím ctrl-a + " để liệt kê tất cả các cửa sổ đang mở của phiên làm việc screen hiện tại:
Trong kết quả trên, có thể thấy số và tên của cửa sổ. Cột đầu tiên đại diện cho số của cửa sổ và bắt đầu từ số 0.
Cột tiếp theo đại diện cho tên của cửa sổ và định dạng mặc định là <user>@<hostname>:<working-directory>.
Kết thúc phiên làm việc của cửa sổ screen
Kết thúc phiên làm việc của cửa sổ hiện tại bằng tổ hợp phím ctrl-a + k.
Lưu ý: hành động này sẽ làm gián đoạn việc thực thi lệnh từ cửa sổ ảo hiện tại.
Trong kết quả trên, lệnh screen đang chờ xác nhận từ người dùng. Nó hiển thị thông báo cảnh báo ở góc dưới bên trái.
Như các lệnh Linux khác, sử dụng 'y' để tiếp tục hoặc 'n' để hủy bỏ thao tác.
Bắt đầu một phiên làm việc Screen với tên
Lệnh screen cho phép tạo một phiên làm việc với tên do người dùng xác định, điều này rất hữu ích khi có nhiều phiên làm việc có sẵn.
Sử dụng tùy chọn -S của lệnh để tạo một phiên làm việc có tên.
Ví dụ lệnh dưới đây, demo-screen là tên của phiên làm việc.
$ screen -S demo-screen
Tách phiên làm việc của màn hình
Một trong những lợi ích của screen là bạn có thể tách nó ra. Sau đó, bạn có thể khôi phục nó mà không mất bất cứ gì đã làm trên màn hình.
Dưới đây là ví dụ minh họa:
Bạn đang trong quá trình SSH vào máy chủ. Giả sử bạn đang tải xuống một bản vá 400MB cho hệ thống bằng cách sử dụng lệnh wget.
Quá trình tải xuống dự kiến mất khoảng 2 giờ. Nếu bạn ngắt kết nối SSH hoặc đột ngột mất kết nối vô tình, quá trình tải xuống sẽ dừng lại. Bạn phải bắt đầu lại từ đầu. Để tránh điều đó, chúng ta có thể sử dụng screen và tách nó ra.
Hãy xem lệnh sau. Đầu tiên, bạn phải nhập screen.
$ screen
Sau đó, bạn có thể tiến hành quá trình tải xuống. Ví dụ, trên Linux Mint của tôi, tôi đang nâng cấp gói dpkg bằng lệnh apt.
$ sudo apt install dpkg
Đầu ra ví dụ:
Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: dpkg 1 upgraded, 0 newly installed, 0 to remove and 1146 not upgraded. Need to get 2,583 kB of archives. After this operation, 127 kB of additional disk space will be used. Get:1 http://debian.linuxmint.com/latest/ testing/main dpkg i386 1.16.10 [2,583 kB] 47% [1 dpkg 1,625 kB/2,583 kB 47%] 14,7 kB/s
Trong quá trình tải xuống đang diễn ra, bạn có thể nhấn "Ctrl-A" và "d". Bạn sẽ không thấy gì khi bạn nhấn những phím đó. Kết quả sẽ như sau.
[detached from 5561.pts-0.mint] pungki@mint ~ $
Khôi phục phiên làm việc Terminal với Screen
Sau khi tách screen, hãy giả sử bạn ngắt kết nối SSH và về Home. Tại Home, bạn bắt đầu SSH lại vào máy chủ của bạn và bạn muốn xem tiến trình của quá trình tải xuống của bạn. Để làm điều đó, bạn cần khôi phục screen. Bạn có thể chạy lệnh này:
pungki@mint ~ $ screen -r
Và bạn sẽ thấy quá trình mà bạn đã để lại vẫn đang chạy.
Khi bạn có nhiều hơn 1 phiên làm việc screen, bạn cần nhập ID phiên làm việc screen. Sử dụng screen -ls để xem có bao nhiêu screen có sẵn.
pungki@mint ~ $ screen -ls
Đầu ra ví dụ:
pungki@mint ~ $ screen -ls
There are screens on: 7849.pts-0.mint (10/06/2021 01:50:45 PM) (Detached) 5561.pts-0.mint (10/06/2021 11:12:05 AM) (Detached) 2 Sockets in /var/run/screen/S-pungki
Nếu bạn muốn khôi phục screen 7849.pts-0.mint, sau đó gõ lệnh này.
pungki@mint ~ $ screen -r 7849
Sử dụng nhiều cửa sổ Terminal Screen
Khi cần nhiều hơn 1 screen để làm việc, bạn có thể chạy nhiều cửa sổ screen cùng một lúc. Có 2 cách:
Thứ nhất, tách ra screen đầu tiên và chạy một screen khác trên terminal thực tế. Thứ hai, tạo một screen lồng nhau như được hiển thị.
Để tạo cửa sổ mới, sử dụng tổ hợp phím ctrl-a + c hai lần để tạo hai cửa sổ mới. Tiếp theo, sử dụng tổ hợp phím ctrl-a + " để liệt kê tất cả các cửa sổ đang hoạt động. Như vậy, chúng ta có thể thấy hiện lên ba cửa sổ.
Đặt tên cho một cửa sổ Screen
Trong ví dụ trước đã tạo hai cửa sổ mới. Tuy nhiên, tên mặc định của chúng không cung cấp bất kỳ thông tin chi tiết nào. Trong trường hợp như vậy,
sử dụng tổ hợp phím ctrl-a + A để đặt tên cho phiên làm việc của cửa sổ hiện tại.
Chuyển đổi giữa các cửa sổ Terminal Screen
Đầu tiên, liệt kê tất cả các cửa sổ đang hoạt động bằng cách sử dụng tổ hợp phím ctrl-a + " .
Tiếp theo, sử dụng các phím mũi tên lên hoặc xuống để chọn cửa sổ phù hợp. Cuối cùng nhấn phím Enter để chuyển đến cửa sổ đã chọn.
Trong ví dụ này sẽ chọn cửa sổ có tiêu đề - db-query.
Di chuyển đến cửa sổ tiếp theo của Screen
Sử dụng tổ hợp phím ctrl-a + n để di chuyển đến cửa sổ tiếp theo.
Ví dụ:
- Chuyển đến cửa sổ đầu tiên và xác minh bằng cách sử dụng tổ hợp phím ctrl-a + " .
- Nhấn tổ hợp phím ctrl-a + n hai lần để chuyển đến cửa sổ thứ ba và sử dụng tổ hợp phím ctrl-a + " để xác minh điều này.
Theo 2 bước trên, chúng ta đang ở trên cửa sổ thứ ba.
Cách di chuyển đến cửa sổ trước đó của Screen
Một cách tương tự, bạn sử dụng tổ hợp phím ctrl-a + p để chuyển đến cửa sổ trước đó.
Hiện tại, bạn đang ở trên cửa sổ thứ ba.
Vì vậy, sử dụng tổ hợp phím ctrl-a + p hai lần để xác minh rằng bạn lại quay về cửa sổ đầu tiên.
Chuyển đổi giữa cửa sổ hiện tại và cửa sổ trước đó
Đôi khi, bạn chỉ muốn chuyển đổi giữa hai cửa sổ, sử dụng tổ hợp phím ctrl-a + ctrl-a trong trường hợp đó.
Để hiểu rõ điều này, trước tiên chuyển đến cửa sổ đầu tiên.
Tiếp theo, chuyển đến cửa sổ cuối cùng.
Cuối cùng, sử dụng tổ hợp phím ctrl-a + ctrl-a để nhảy đến cửa sổ đầu tiên một lần nữa.
Nhảy đến một cửa sổ cụ thể của Screen.
Đôi khi bạn muốn nhảy đến một cửa sổ cụ thể, bạn có thể sử dụng số cửa sổ.
Sử dụng tổ hợp phím ctrl-a + " để tìm số cửa sổ.
Trong kết quả trên, cột đầu tiên biểu thị số cửa sổ. Lưu ý: lệnh screen bắt đầu đánh số từ số 0.
Sử dụng tổ hợp phím ctrl-a + 2 để nhảy đến cửa sổ thứ ba và xác minh điều đó.
Chia một cửa sổ màn hình theo chiều ngang
Tương tự như các cửa sổ thông thường, bạn cũng có thể chia màn hình.
Sử dụng tổ hợp phím ctrl-a + S để chia cửa sổ theo chiều ngang, ctrl-a + tab để chuyển đổi giữa các vùng.
Cuối cùng, sử dụng tổ hợp phím ctrl-a + X để đóng vùng hiện tại.
Chia một cửa sổ màn hình theo chiều dọc.
Bạn sử dụng tổ hợp phím ctrl-a + | để chia cửa sổ hiện tại theo chiều dọc.
Ngoài ra, cũng có thể sử dụng tổ hợp phím ctrl-a + tab để chuyển đổi giữa các vùng và tổ hợp phím ctrl-a + X để đóng vùng hiện tại.
Kích hoạt chức năng ghi nhật ký trong Screen trên Linux
Để kích hoạt chức năng ghi nhật ký màn hình, nhấn "Ctrl-A" và "H" (Lưu ý: sử dụng ký tự 'H' viết hoa. Ký tự 'h' viết thường sẽ chỉ tạo một ảnh chụp màn hình và lưu vào một tệp khác có tên hardcopy).
Ở góc dưới bên trái của màn hình, sẽ hiện thông báo: Creating logfile "screenlog.0". Bạn sẽ tìm thấy tệp screenlog.0 trong thư mục home.
Tính năng này sẽ ghi lại mọi thứ bạn làm trong cửa sổ screen. Để đóng chức năng ghi nhật ký màn hình, nhấn "Ctrl-A" và "H" một lần nữa.
Một cách khác để kích hoạt chức năng ghi nhật ký, bạn có thể thêm tham số "-L" khi chạy lần đầu tiên screen. Lệnh sẽ trông như sau:
pungki@mint ~ $ screen -L
Khóa màn hình Terminal Linux
Bạn có thể nhấn tổ hợp phím "Ctrl-A" và "x" để khóa màn hình.
Đây là một ví dụ về màn hình bị khóa sau khi nhấn phím tắt. Sử dụng mật khẩu Linux để mở khóa.
Thêm mật khẩu cho phiên Screen
Vì lý do bảo mật, bạn có thể muốn đặt mật khẩu cho phiên screen. Mật khẩu sẽ được yêu cầu mỗi khi bạn muốn kết nối lại với screen. Mật khẩu này khác với cơ chế khóa màn hình ở trên.
Để bảo vệ phiên screen bằng mật khẩu, bạn chỉnh sửa tệp "$HOME/.screenrc". Nếu tệp không tồn tại, bạn tạo nó bằng cách thủ công. Cú pháp sẽ như sau:
password crypt_password
Để tạo "crypt_password" như trên, bạn có thể sử dụng lệnh "mkpasswd" trên Linux. Dưới đây là lệnh với mật khẩu "pungki123".
pungki@mint ~ $ mkpasswd pungki123 l2BIBzvIeQNOs
mkpasswd sẽ tạo một mật khẩu băm như được hiển thị ở trên. Khi có mật khẩu băm, bạn sao chép nó vào tệp ".screenrc" và lưu lại. Vì vậy, tệp ".screenrc" sẽ như sau:
password l2BIBzvIeQNOs
Lần sau khi bạn chạy screen và tách nó, một mật khẩu sẽ được yêu cầu khi bạn cố gắng kết nối lại, như được hiển thị dưới đây.
Nhập mật khẩu của bạn, đó là "pungki123" và screen sẽ kết nối lại.
pungki@mint ~ $ screen -r 5741 Screen password:
Sau khi bạn áp dụng mật khẩu screen và nhấn "Ctrl-A" và "x", kết quả sẽ như sau.
Screen used by Pungki Arianto on mint. Password: Screen password:
Một mật khẩu sẽ được yêu cầu từ bạn hai lần. Mật khẩu đầu tiên là mật khẩu Linux của bạn và mật khẩu thứ hai là mật khẩu mà bạn đã đặt trong tệp .screenrc của bạn.
Rời phiên Terminal Screen
Có 2 cách để rời khỏi screen:
- "Ctrl-A" và "d" để tách screen.
- Lệnh exit để kết thúc screen. Bạn cũng có thể sử dụng "Ctrl-A" và "K" để tắt screen.
Dưới đây là một số phím tắt và lệnh quan trọng trong Screen:
screen -S <session_name>: Bắt đầu một phiên mới với tên phiên.
screen -ls: Liệt kê các phiên đang chạy / screen.
screen -x: Gắn kết vào một phiên đang chạy.
screen -r <session_name>: Gắn kết vào một phiên đang chạy với tên.
screen -d <session_name>: Tách một phiên đang chạy.
Ctrl-a c: Tạo cửa sổ mới.
Ctrl-a Ctrl-a: Chuyển đến cửa sổ hoạt động đã truy cập cuối cùng.
Ctrl-a <number>: Chuyển đến cửa sổ theo số.
Ctrl-a ' <number hoặc title>: Chuyển đến cửa sổ theo số hoặc tên.
Ctrl-a n hoặc Ctrl-a <space>: Chuyển đến cửa sổ kế tiếp trong danh sách.
Ctrl-a p hoặc Ctrl-a <backspace>: Chuyển đến cửa sổ trước đó trong danh sách.
Ctrl-a ": Xem danh sách cửa sổ.
Ctrl-a w: Hiển thị thanh tiêu đề cửa sổ.
Ctrl-a k: Đóng cửa sổ hiện tại.
Ctrl-a \: Đóng tất cả các cửa sổ.
Ctrl-a A: Đổi tên cửa sổ hiện tại.
Ctrl-a S: Chia màn hình theo chiều ngang.
Ctrl-a | hoặc Ctrl-a V: Chia màn hình theo chiều dọc.
Ctrl-a tab: Chuyển đến khu vực hiển thị tiếp theo.
Ctrl-a X: Xóa khu vực hiện tại.
Ctrl-a Q: Xóa tất cả các khu vực trừ khu vực hiện tại.
Ctrl-a H: Bật chế độ ghi nhật ký trong phiên screen.
Ctrl-a x: Khóa (bảo vệ mật khẩu) màn hình.
Mọi người cũng tìm kiếm: screen ubuntu, screen centos, install screen ubuntu, debian 20, centos screen, install screen debian.