Vinova tuyển lập trình viên Mobile & Web ở Hà Nội, lương $300-1000

Article: Sử dụng terminal session với screen trong Linux 1647

Solaris, Linux
jishin.myopenid.com 18
Updated over 4 years ago

GNU Screen là một chương trình được tạo ra nhằm giúp cho người dùng chạy được nhiều chương trình console  trong 1 cửa sổ terminal duy nhất, hay còn gọi là terminal multiplexer. Ví dụ bạn có thể chạy chương trình biên dịch, duyệt mail, biên soạn file, kết nối remote server ... trong cùng 1 terminal duy nhất.


Một tính năng đặc biệt nữa của screen đó là session. Ví dụ bạn có thể vô tình đóng terminal khi đang biên dịch kernel, như bình thường
 thì quá trình biên dịch sẽ bị dừng(terminate) nhưng với screen bạn vẫn có kết nối lại(reattach) với session đấy và thực hiện tiếp công việc như bình thường.

1. Khởi động screen và chuyển đổi giữa các chương trình

Để khởi động screen bạn gõ screen ở cửa sổ lệnh. Một màn hình chào sẽ xuất hiện, nhấn Enter sẽ cho bạn shell prompt. Đây là cửa sổ shell đầu tiên của bạn.
Gõ vài lệnh gì đấy để phân biệt các cửa sổ với nhau.
Để tạo thêm một cửa sổ shell khác bạn nhấn Ctrl-a c (create window). Một cửa sổ shell khác sẽ hiện ra. Các cửa sổ này được đánh số
theo thứ tự 0, 1, 2, ...

Bây giờ  bạn đã có 2 cửa sổ, để chuyển đổi giữa chúng, bạn nhấn Ctrl-a Ctrl-a. Đó là cách đơn giản nhất để chuyển đổi giữa các cửa sổ.
Ngoài ra bạn còn có thể dùng các cách sau:
    Ctrl-a n hoặc Ctrl-a p để chuyển sang cửa sổ trước hoặc sau trong danh sách.
    Ctrl-a N, trong đó N là số từ 0 đến 9 để chuyển sang cửa sổ có số thứ tự tương ứng.
    Ctrl-a ", để xem danh sách toàn bộ các cửa sổ hiện tại. Bạn có thể chọn cửa sổ bằng cách di chuyển mũi tên lên xuống và Enter.

Khi sử dụng cửa sổ, bạn có thể thay đổi tên mặc định của nó bằng cách nhấn Ctrl-a A. Việc này làm cho bạn nhớ công việc đang làm với
từng cửa sổ 1 cách dễ dàng hơn.

2. Ngắt và kết nối lại terminal (deattach and attach terminal)


Nếu bạn thực hành được những bước nêu trên thì có nghĩa bạn đã tạo ra 1 terminal session thành công.
Bạn có thể ngắt terminal ấy bằng cách dùng Ctrl-a d. Hoặc bạn có thể làm bất cứ gì bạn cho rằng có thể ngắt terminal được.
Ví dụ như là đóng cửa sổ terminal, logout, ... Nhưng nên nhớ rằng nhưng gì bạn chạy bên trong screen đều đang chạy ngay cả
khi bạn ngắt nó.



Bạn hãy ngắt terminal, sau đó mở 1 terminal lên rồi nhấn screen -r (reattach). Hora, bạn sẽ thấy mình vào lại cửa sổ shell như trước khi ngắt.



3. Tắt hoàn toàn terminal session tạo bởi screen

Như bạn thấy cho dù bạn có dóng terminal lại hay làm gì đi nữa thì cũng không tắt được session tạo bởi screen. Chỉ có một cách duy nhất là bạn phải thoát hết các chương trình đang chạy trong screen bằng lệnh exit. Khi bạn thoát hết screen cũng sẽ tự đóng lại.


Bài viết này trình bày nhưng tính năng chính và quan trọng nhất của screen. Còn nhiều tính năng khác của screen nữa mà bài viết này vẫn chưa đề cập,
mong nhận được sự đóng góp của các bạn.

Comments

ngocdaothanh.myopenid.com 172
Updated over 4 years ago

Có thể ví screen như VNC, chỉ khác là screen dùng text-mode.

Dùng screen hoặc VNC có cái hay là nhiều người có thể cùng nhìn 1 màn hình từ xa, rất tiện khi muốn đào tạo hoặc hướng dẫn từ xa. Ví dụ, anh comale có thể dùng screen để hướng dẫn từ xa cho cuti.

lukanium.myopenid.com 1
over 4 years ago

Ngoài tính năng split ngang dọc của vim, thì screen cũng cho phép chia terminal ra thành nhiều phần để tiện theo dõi, chẳng hạn như nếu vừa chat vừa code :D. 

 Mình có file screenrc thao khảo ở đây :

 http://www.vdchuyen.com/screenrc.html

jishin.myopenid.com 18
over 4 years ago
lihavim.myopenid.com
over 4 years ago

Trên wiki của Gentoo coi bộ lắm thứ hơn :D

 http://gentoo-wiki.com/TIP_Using_screen 

chauhonglinh.myopenid.com 2
over 4 years ago
Có một tip để chạy một lệnh trong terminal, mà khi tắt nó đi thì không bị ảnh hưởng.

Ví dụ có một lệnh là very_long_time_command, có thể chạy nó như thế này
very_long_time_command & disown

Như vậy thì ngay cả khi đóng terminal rồi, lệnh đó vẫn chạy tiếp đến khi kết thúc mới thôi.

Cách chạy lệnh như thế rất có lợi khi dùng terminal để connect vào server để chạy lệnh gì đó trên server khác, sau đó chúng ta có thể tắt máy tính của mình đi, nhưng lệnh đó vẫn tiếp tục thi hành trên server. Ví dụ như bakup database hay deploy app mà cần nhiều thời gian, hoặc chạy server maintenance ...

Hoặc trên cùng một máy tính của mình, nếu muốn mở nhiều file hoặc làm nhiều lệnh ở nhiều chỗ khác nhau mà lười dùng chuột hoặc dùng UI để chạy loanh quanh, thì gõ lệnh từ terminal.

Ví dụ như nếu muốn cùng một lúc edit 2 file /etc/profile và ~/.bash_profile bằng KEdit trên KDE, mà không muốn chạy vòng quanh để click và open, thì từ command line của terminal có thể gõ:

kedit  /etc/profile & disown
kedit  ~/.bash_profile & disown

Nói chung là nếu làm nhiều hơn nữa, thì cứ gõ lệnh kiểu đấy sẽ nhanh hơn là dùng mouse chạy loanh quanh.

You must login to be able to comment

Uploaded files

No file uploaded yet

You must login to be able to upload

Nhà tài trợ:

Mọi người đều tự do viết bài, sửa bài của người khác, và bình luận ở trang web này. Bạn muốn chủ động tạo bài mới để chia sẻ kinh nghiệm với mọi người? Xin click link ở dưới.

Create new content