banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix Dùng GNU screen để quản lý đa tiến trình  XML
  [Article]   Dùng GNU screen để quản lý đa tiến trình 02/01/2008 04:06:28 (+0700) | #1 | 107587
[Avatar]
nhuhoang
Elite Member

[Minus]    0    [Plus]
Joined: 27/06/2007 00:49:10
Messages: 111
Location: /dev/null
Offline
[Profile] [PM] [WWW]
Nguồn:
  • http://jmcpherson.org/screen.html

  • http://web.mit.edu/gnu/doc/html/screen_11.html


Bản dịch và tổng hợp:

Hầu như các hệ thống *nix đều có một tính năng rất hữu ích là screen, Đó là công cụ đắc lực với những người làm việc trên console với khả năng tương tác giứa hệ thống và người dùng tốt hơn. Mặc dù vậy, chỉ có một số người biết đến nó bởi vì nó có phần hơi phức tạp và đối với người dùng trên Destop thì screen cũng không thật cần thiết.

Trong bài này tôi sẽ trình bày với các bạn những gì mà screen có thể làm và cách sử dụng nó

1. Screen làm được những gì?
Bình thường khi làm việc, bạn thường mở một lúc nhiều console. Để làm nhiều việc khác nhau. Nhưng bây giờ, với screen thì bạn chỉ cần mở một console là có thể làm một lúc rất nhiều việc giống như chạy chương trình dạng bg %N. Và khi bạn thoát khỏi một phiên làm việc (bằng ssh chẳng hạn) thì những chương trình đang chạy vẫn còn đấy. Sau đó bạn login lại và có thể hồi phục được phiên làm việc trước.

2. chạy và hoán chuyển giữa các chương trình.
Screen được bắt đầu bằng lệnh #screen trên console và màn hình sẽ được clear chỉ còn lại dấu nhắc lệnh. Mỗi chương trình chạy trong screen sẽ như là một “cửa sổ” và tất cả các “cửa sổ” đều được xác định bằng một số duy nhất. Screen sẽ tạo ra một của sổ mới, đánh số nó và khởi đầu bằng một dấu nhắc lệnh bên trong. Đánh một vài từ gì đó và bạn sẽ nhận ra bạn đang đứng ở cửa sổ nào khi bạn hoán chuyển giữa các của sổ.

Giờ thì hãy tạo một cửa sổ mới bằng cách gõ Ctrl-a và sau đó gõ c. Cửa sổ mới sẽ được đánh số 1

Tiếp theo bạn hãy chuyển lại cửa sổ trước bằng các nhấn Ctrl-a Ctrl-a và nó sẽ chuyển bạn trở lại cửa sổ mà bạn vừa truy cập trước đó.

Một số phương pháp chuyển giữa các cửa sổ:
  • Sử dụng Ctrl-a nCtrl-a p để chuyển sang cửa sổ trước và sau theo số thứ tự

  • Dùng Ctrl-a N trong đó N bằng 1 đến 9, là số thứ tự của cửa sổ.

  • Dùng Ctrl-a " để xem danh sách các của sổ. Bạn có thể dùng các phím mũi tên để lựa chọn và access vào đó. Ctrl-w cũng cung cấp cho bạn một danh sách của sổ nhưng nhỏ gọn hơn.


3.Chạy nền
Nếu đã làm xong những thao tác trên, bạn có thể gỡ (detach) ứng dụng khỏi session bằng cách nhấn Ctrl-a d, hoặc bạn có thể đóng ngay console lại mà không lo những ứng dụng kia sẽ ngừng chạy mà chúng sẽ chạy dưới dạng ngầm. Sau đó bạn login vào lại console và khôi phục phiên làm việc trước bằng lệnh #screen –r. Thực tế có những người để session chạy trong vài tháng, chủ yếu là đối với server. Với những công việc lớn, screen còn cho phép nhiều người cùng đăng nhập vào một session để cùng giải quyết.

4.Copy và Paste

Screen có nhớ trong buffer một số dòng command line, giống như khi bạn dùng putty để ssh vào server, tính năng này dùng trong chế độ copy. Số dòng lưu trong buffer có thể cấu hình được. Bạn truy cập vào chế độ copy mode bằng cách gõ phím Ctrl-a [ sau đó đánh dấu đoạn cần copy và paste bằng Ctrl-a ] .

Đánh dấu
Sau đây là một số cách đánh dấu (highlight) một đoạn trong command line:

  • Một đoạn tùy chọn: dùng phím space để đánh dấu đầu và cuối đoạn cần copy

  • Một dòng: Y hoặc y để đánh dấu riêng dòng đấy hay bắt đầu từ dòng đấy

  • Một từ: w


Tìm kiếm
/ vi - giống search forward trong vi

? vi - giống search backward trong vi

Lặp
Bất cứ dòng nào trong copy mode cũng được đánh dấu bởi số dòng (bắt đầu từ 0). Ta dùng chúng để copy nhiều dòng một lúc:

C-a C-[ H 10 j 5 Y sẽ copy từ dòng 11 đến dòng 15

Di chuyển
Để di chuyển nhanh trong buffer ta dùng các phím sau:

0,^, $ để di chuyển về đầu dòng, kí tự đầu tiên của dòng và cuối dòng

H, M, L để về dòng đầu , giữa hoặc cuối của buffer

+, - để về đầu dòng tiếp theo hoặc trước đó

Ctrl-b, Ctrl-f để du chuyển con trỏ một trang

g về đầu buffer

5.Quản lý công việc bằng screen
Một trong những bất tiện cúa screen là bạn khó có thể quan sát nhiều chương trình một lúc (tuy rằng bạn có thể chia đôi màn hình - http://gentoo-wiki.com/TIP_Using_screen#Regions). Để khắc phục screen đã cung cấp một chức năng theo dõi ngầm hoạt động của các cửa sổ và sẽ báo cho bạn biết khi nào một phần mềm được biên dịch xong hoặc khi nào một người bạn của bạn thoát khỏi kênh IRC.

Để bắt đầu hoác kết thúc theo dõi cửa sổ hiện tại trong 30s, nhấn Ctrl-a _ ; để bắt đầu hoặc kết thúc một hoạt động nào đó nhấn Ctrl-a M

6.Thoát Screen
Như bạn đã thấy khi một session được detach và reattach, screen không dễ được kết thúc. Bạn có thể đóng terminal nhưng chương trình vẫn chạy ngầm trên server. Có một số cách nhưng tốt nhất là bạn đóng từng cửa sổ trong screen và thoát tất cả các ứng dụng đang chạy. Khi ứng dụng cuối cùng bị đóng thì screen cũng tự động kết thúc. Bạn cũng có thể thoát ra bằng tổ hợp phím Ctrl-a Ctrl-\ nhưng hãy cẩn thận

7.Trợ giúp

Ctrl-a ?
[Up] [Print Copy]
  [Question]   Re: Dùng GNU screen để quản lý đa tiến trình 06/01/2008 10:41:30 (+0700) | #2 | 108644
[Avatar]
lihavim
Elite Member

[Minus]    0    [Plus]
Joined: 08/06/2004 15:19:32
Messages: 506
Offline
[Profile] [PM]
Trên wiki của Gentoo có mấy cái tips: http://gentoo-wiki.com/TIP_Using_screen smilie
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|