Sử dụng lệnh Screen trong linux

Useful linux tools

Bạn có một máy trạm kết nối với một máy chủ linux. Bạn muốn về nhà, trong khi vẫn muốn giữ chương trình trên máy trạm tiếp tục chạy. Hoặc trong trường hợp xấu, khi máy trạm bị ngắt điện đột ngột hoặc bị trục trặc. Trong các trường hợp đó làm sao để giữ chương trình của bạn an toàn và tiếp tục làm việc?. Thực tế trong linux có nhiều cách để làm việc này, một trong những cách đơn giản nhất đó là sử dụng lệnh “nohup” mà tôi đã giới thiệu trong bài trước.

Trong bài này tôi sẽ giới thiệu lệnh nâng cao khác, đó là lệnh “screen”. Về cơ bản lệnh screen cho phép bạn:
– Mở nhiều cửa sổ shell trong duy nhất một cửa sổ lệnh (terminal command).
– Giữ shell hoạt động trên máy chủ ngay khi cả kết nối từ máy trạm tới máy chủ bị ngắt (mất điện hoặc bị rớt mạng).
– Có thể ngắt và kết nối lại cửa sổ shell từ nhiều nơi khác nhau (từ máy cá nhân khác có kết nối với máy chủ).
– Có thể chạy ẩn shell với một chương trình mất nhiều thời gian.

Cài đặt screen:

Đầu tiên bạn nên kiểm tra screen đã được cài đặt trên hệ thống chưa. Với đa số các hệ điều hành linux như Redhat hoặc CentOS, screen thường được cài đặt trong thư mục: /usr/bin/screen. Hoặc sử dụng lệnh sau để tìm kiếm lệnh screen:

1
2
[flex@office ~]$ which screen                           
/usr/bin/screen

Nếu lệnh screen chưa có trong hệ thống bạn có thể sử dụng yum (CentOS) hoặc atp-get (Ubuntu) để cài đặt:

1
2
3
[flex@office ~]$ yum install screen                   
...
Complete!

Sử dụng screen:

Sau khi cài đặt screen thành công, bạn có thể khởi tạo một cửa sổ screen bên trong một terminal như sau:

1
[flex@office ~]$ screen                              

Nếu bạn muốn gắn tên cho cửa sổ screen để tiện quản lý, bạn sử dụng lệnh sau:

1
[flex@office ~]$ screen -S name                      

Khi này bạn sẽ có một cửa sổ mới bên trong cửa sổ terminal. Giao diện của hai cửa sổ này giống nhau, điểm khác nhau là screen cho phép bạn sử dụng một số lệnh từ các tổ hợp phím tắt.

Command: “Ctrl-a”

Để sử dụng các phím lệnh trong screen đầu tiên bạn nhấn tổ hợp phím “Ctrl-a”. Ví dụ, “Ctrl-a” sau đó bạn nhấn “?”. Screen sẽ hiển thị các lệnh mà bạn có thể sử dụng với screen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Screen key bindings, page 1 of 4.                        
Command key:  ^A   Literal ^A:  a
break      ^B b          only       Q
clear      C             other      ^A
colon      :             pow_break  B
copy       ^[ [          pow_detach D
detach     ^D d          prev       ^P p ^?
digraph    ^V            readbuf    <
displays   *             redisplay  ^L l
fit        F             removebuf  =
flow       ^F f          reset      Z
focus      ^I            screen     ^C c
hardcopy   h             select     '
help       ?             silence    _

Bạn có thể thay đổi các phím lệnh mặc định của screen bằng cách sử dụng file “.screenrc” tuỳ theo thói quen của bạn. Tuy nhiên với tôi các phim lệnh trên là khá tiện lợi để sử dụng.

Thoát khỏi screen:

Command: “Ctrl-a” “d”

Để thoát khỏi screen, bạn sử dụng tổ hợp phím sau:“Ctrl-a” “d”. Đây là ưu điểm lớn của screen, bạn có thể thoát ra khỏi screen và truy cập lại ở bất cứ nơi đâu, trong khi các lệnh trong screen vẫn tiếp tục hoạt động trên máy chủ. Trong trường hợp mất kết nối đột ngột, screen tự động thoát để giữ chương trình của bạn vẫn an toàn chạy trên máy chủ.

Liệt kê screen:

Sau khi thoát khỏi screen, để muốn biết có bao nhiêu cửa sổ screen đang chạy. Từ cửa sổ terminal bạn sử dụng lệnh sau:

1
2
3
4
5
[flex@office ~]$ screen -ls                      
There is a screen on:
31917.name1      (Detached)
31844.name2      (Detached)
2 Socket in /var/run/screen/S-flex

Truy cập screen:

Để truy cập lại screen, trong trường hợp đơn giản, bạn chỉ sử dụng một cửa sổ screen, thì bạn có thể sử dụng lệnh sau:

1
[flex@office ~]$ screen -r                      

Trong trường hợp có nhiều cửa sổ lệnh, bạn có thể sử dụng lệnh sau:

1
[flex@office ~]$ screen -x name1                

Ngắt screen:

Có hai cách để bạn tắt screen, nếu bạn đang ở trong screen bạn có thể sử dụng tổ hợp phím “Ctrl-a” “k”. Còn trong trường hợp bạn đang ở ngoài screen, thì trong cửa sổ terminal bạn sử dụng lệnh:

1
[flex@office ~]$ screen -S name1 -X quit         

Đó là các lệnh và thủ tục cơ bản để sử dụng screen, tôi nghĩ về cơ bản vậy là đủ sử dụng. Ngoài ra các bạn có thể xem một hướng dẫn ngắn dưới đây trên youtube.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s