Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Cách Đa Nhiệm Trong Terminal Linux Với Screen

Cách Đa Nhiệm Trong Terminal Linux Với Screen

Nhiều người không biết về screen, một công cụ nhỏ tuyệt vời, hoặc "terminal multiplexer", nếu bạn muốn nói chuyên nghiệp. Tôi tin chắc mọi người dùng terminal, vì bất kỳ lý do gì, đều nên có nó trong kho vũ khí. Nó thật hữu ích.

Screen làm cho đa nhiệm trong terminal trở nên dễ dàng. Với nó, bạn có thể chạy nhiều công cụ song song, mỗi cái trong session riêng. Sau khi chạy thứ gì đó trong "screen" của nó, bạn có thể detach và re-attach vào nó tùy ý. Khả năng "để mọi thứ chạy trong session detached" cho phép bạn nhảy giữa các công cụ.

Nếu bạn đang lật đổ nhiều nhiệm vụ trong terminal hàng ngày, bạn hoặc đã dùng nó, hoặc bạn sẽ yêu thích nó sau khi thử!

Cài Đặt screen

Screen có sẵn cho hầu như mọi bản phân phối dưới mặt trời – vì nó cũ, đã thử nghiệm, tuy hơi ít người biết, nhưng là kho báu nhỏ. Để cài trên Debian, Ubuntu, Mint hoặc bất cứ thứ dùng apt, dùng:

sudo apt install screen

Chỉ trong vài giây bạn sẽ sẵn sàng, vì nó cũng nhỏ và không có nhiều dependency.

Cách Đa Nhiệm Trong Terminal Linux Với Screen

Session Đầu Tiên

Chúng ta chỉ đi sâu vào tính năng cơ bản của screen cho phép bạn dùng nó ngay lập tức. Nếu bạn thích những gì bạn thấy cuối hướng dẫn này, trang man page giải thích các chức năng thêm, nhưng chúng tôi nghĩ chúng sẽ quá nhiều cho giới thiệu lần đầu.

Để dùng nó, chỉ cần thêm nó trước bất cứ điều gì bạn nhập vào terminal. Hãy tạo tài liệu trong editor nano phổ biến làm ví dụ. Nếu nó không cài, có sẵn trên bản phân phối của bạn, hoặc bạn thích cái khác, thay "nano" bằng lựa chọn của bạn.

screen nano mte_screen.txt

Bằng cách thêm "screen" trước lệnh thông thường, chúng ta chạy nó trong một session của screen. Nó có thể trông như không có kết quả, nhưng như chúng ta sẽ thấy ở bước tiếp theo, nó có.

Cách Đa Nhiệm Trong Terminal Linux Với Screen

Detach Khỏi Session

Gõ vài thứ trong nano và nhấn Ctrl + A rồi D trên bàn phím. Nano º hoặc editor nào bạn đang dùng – sẽ biến mất. Trong terminal, bạn sẽ thấy thông báo giống:

[detached from terminal-ID]

Bây giờ bạn quay lại cái bạn có thể gọi là terminal xuất phát nơi bạn chạy screen trước đó. Nhưng session của bạn với nano không mất.

Cách Đa Nhiệm Trong Terminal Linux Với Screen

Quay Lại Session Đang Chạy

Vì bạn có session chạy trong background, bạn có thể quay lại nó bằng cách nhập:

screen -r

Sau khi nhấn Enter, bạn sẽ đúng chỗ bạn dừng lại trong nano. Bạn có thể detach và reattach screen bao nhiêu lần tùy thích. Nhưng đó chỉ là một app chạy background, còn xa mới gọi là đa nhiệm thực sự.

Cách Đa Nhiệm Trong Terminal Linux Với Screen

Tạo Session Thứ Hai

Khi quay lại terminal gốc và detached từ session nano đang chạy, lặp lại bước đầu để chạy thứ gì đó trong session thứ hai. Cho đơn giản, chúng ta tạo tài liệu thứ hai với nano dùng:

screen nano mte_2nd.txt

Screen, tuy nhiên, không giới hạn chạy nhiều session của cùng app: hãy thử chạy bất cứ thứ gì với nó. Screen chứng minh hữu ích khi dùng cho việc như nén nhiều file thành archive với 7z, quá trình tốn thời gian. Thay vì ngồi nhìn terminal chờ 7z xong, bạn có thể detach session của nó và để nó chạy background.

Cách Đa Nhiệm Trong Terminal Linux Với Screen

Danh Sách Session

Nếu bạn làm theo các bước trước, bạn hiện có hai session chạy với screen. screen -r sẽ không hoạt động như trước vì nó không biết attach vào đâu. Khi bạn có nhiều session, để quay lại một trong chúng, bạn trước hết phải biết ID của nó. Để tìm nó, nhập:

screen -list

Screen sẽ hiển thị danh sách tất cả session có sẵn.

Cách Đa Nhiệm Trong Terminal Linux Với Screen

Trong trường hợp của chúng tôi, như bạn thấy trong ảnh chụp, để quay lại một trong hai session, chúng ta phải nhập:

screen -r 14384

hoặc

screen -r 14336

Các Extra Hữu Ích

Nếu bạn chạy nhiệm vụ thoát sau khi hoàn thành với screen, session screen sẽ kết thúc cùng nó. Đó là lý do bạn có thể đã chạy vài nhiệm vụ trong screen session nhưng bây giờ không có session active nào hiện lên. Nhiệm vụ có thể đã hoàn thành mục tiêu trong lúc đó.

Nếu bạn muốn session vẫn active trong trường hợp đó, thay vì chạy lệnh với screen thêm trước nó, chạy "screen" riêng để tạo session mới, rồi gõ lệnh của bạn đó trước khi detach. Nếu bạn chạy lệnh trong session bạn tự tạo, session sẽ không thoát khi nhiệm vụ hoàn thành.

Screen cũng cho phép bạn tạo session mới từ bên trong session hiện có. Chỉ cần nhấn tổ hợp phím Ctrl + A, rồi nhấn C để tạo screen mới và nhảy đến nó.

Cho các lệnh hữu ích khác bạn có thể sẽ dùng, nhấn Ctrl + A rồi:

  • A để nhập tiêu đề cho session để dễ nhận diện và quản lý
  • K để kill session hiện tại
  • N hoặc P để chuyển đến session tiếp theo hoặc trước đó
  • 0 đến 9 để chuyển giữa mười session active đầu tiên

Không Chỉ Cho Đa Nhiệm

Chúng tôi lưu phần tốt nhất cho cuối: screen không gắn liền với terminal cụ thể. Sau khi detach từ session, bạn có thể đóng cửa sổ terminal nếu bạn ở môi trường đồ họa, hoặc bạn thậm chí có thể logout. Miễn là máy tính đang chạy, session sẽ vẫn active.

Cách Đa Nhiệm Trong Terminal Linux Với Screen

Và điều này có nghĩa là bạn có thể reattach vào session đang chạy từ một terminal khác. Như bạn thấy trong ảnh chụp, chúng tôi dùng Guake để reattach vào session chúng tôi tạo trong terminal mặc định của Mint.

Vì ý nghĩa của điều này có thể chưa đắm chắc, hãy nghĩ đến senario sử dụng: bạn có thể đăng nhập từ xa vào máy tính của mình, với SSH, và bắt đầu nhiệm vụ với screen. Sau đó, detach và log off. Việc đó sẽ tiếp tục chạy cho đến khi nó hoàn thành hoặc bạn quyết định đăng nhập lại, reattach vào screen session và kết thúc nó thủ công!

Thế nào cho "đa nhiệm"?