2010-07-08 31 views
361

Tôi đang sử dụng công cụ ghép kênh screen trên vỏ lệnh và mở nhiều màn hình. Sau đó tôi quên ID tiến trình nào liên kết với tác vụ nào.Làm cách nào để gán tên cho màn hình?

Tôi muốn đặt tên cho màn hình nhưng không thể tìm thấy tùy chọn trong manpage.

Hiện nay, danh sách các màn hình trông như thế này:

There are screens on: 
    5422.pts-1.aws1 (Detached) 
    5448.pts-1.aws1 (Detached) 
    5027.pts-1.aws1 (Detached) 
3 Sockets in /var/run/screen/S-sb. 

Và tôi muốn nhìn thấy một cái gì đó như thế này:

There are screens on: 
    5422.logCleanWorker (Detached) 
    5448.overNightLongTask(Detached) 
    5027.databaseOverNightLongTask (Detached) 
3 Sockets in /var/run/screen/S-sb. 

Làm thế nào tôi có thể làm điều này?

+1

câu hỏi trông giống như nó hỏi 'làm thế nào để đổi tên session đang tồn tại' chứ không phải 'làm thế nào để bắt đầu phiên mới với một tên'. Trong bối cảnh đó, Câu trả lời chính xác phải đúng hơn là câu trả lời đúng của 'user164176' - http://stackoverflow.com/a/3309696/636762 –

+0

Tên của các phiên màn hình của bạn cho thấy bạn tạo phiên màn hình mới trên một tác vụ duy nhất (có thể là một lệnh) Màn hình hỗ trợ [nhiều cửa sổ] (https://www.rackaid.com/blog/linux-screen-tutorial-and-how-to/#creating), vì vậy bạn c chạy tất cả các tác vụ này trong một phiên màn hình duy nhất. – Melebius

Trả lời

560

Để tạo một màn hình mới với tên foo, sử dụng

screen -S foo 

Sau đó, để lắp lại nó, chạy

screen -r foo # or use -x, as in 
screen -x foo # for "Multi display mode" (see the man page) 
+15

Trong giải pháp bạn giải thích cách tạo một cái mới với tên chính xác thay vì thay đổi cái hiện có. Không có ai muốn chấm dứt phiên nếu có thể giữ nó. –

+10

Cuộn xuống câu trả lời của người dùng164176 để xem cách đổi tên các phiên hiện có. – jlh

+0

câu hỏi có vẻ giống như yêu cầu "cách đổi tên các phiên hiện có" thay vì "cách bắt đầu phiên mới bằng tên". Trong bối cảnh đó, câu trả lời hiện được chọn không thực sự phù hợp. Câu trả lời đúng được chọn đúng hơn là câu trả lời chính xác của 'user164176' - http://stackoverflow.com/a/3309696/636762 bên dưới –

424

screen -S SESSIONNAME là tốt để bắt đầu một phiên làm việc với một cái tên, nhưng nếu bạn bắt đầu một phiên và sau đó quyết định đặt tên cho nó, nhập chế độ lệnh (C-a :) và sau đó nhập lệnh sessionname SESSIONNAME.

+11

Đây là giải pháp thích hợp vì nó tập trung vào việc đổi tên phiên hiện tại thay vì tạo một phiên mới. –

+2

Một lưu ý nhanh về 'Ca:' syntax .... "Tất cả các lệnh màn hình được đặt trước bằng một phím thoát, theo mặc định' Ca' (đó là Control-a, đôi khi được viết '^ a'). Để gửi một chữ' Ca 'cho các chương trình trong màn hình, sử dụng' Ca a'. Điều này rất hữu ích khi làm việc với màn hình trong màn hình. Ví dụ 'Ca an' sẽ di chuyển màn hình đến một cửa sổ mới trên màn hình trong màn hình." (ref: http://aperiodic.net/screen/quick_reference) –

+0

Được đánh giá cao. Mặc dù tôi biết bạn có thể bắt đầu với một cái tên, tôi thường bắt đầu mà không đặt tên, sau đó tôi muốn sau này. Cảm ơn! – Ketzak

1

Tôi là người mới bắt đầu sử dụng màn hình nhưng tôi thấy nó vô cùng hữu ích trong khi khôi phục các kết nối bị mất. Câu hỏi của bạn đã được trả lời nhưng thông tin này có thể đóng vai trò như một tiện ích bổ sung - tôi sử dụng putty với trình quản lý kết nối putty và đặt tên cho màn hình của tôi - "tab1", "tab2", v.v. - đối với tôi bức tranh tổng thể của 8-10 các tab quan trọng hơn mỗi tên tab riêng lẻ. Tôi sử dụng tab thứ 8 để kết nối với db, thứ 7 để xem nhật ký, v.v .. Vì vậy, khi tôi muốn gắn lại màn hình của mình, tôi đã viết một trình bao bọc đơn giản:

.

+0

Điều này có thể được thực hiện tốt hơn như một hàm bash. –

8

Màn hình sử dụng cách đơn giản nhất với tên

screen -S 'name' 'application' 
  • Ctrl + một, d = thoát và rời khỏi ứng dụng mở

Return to màn hình:

screen -r 'name' 

ví dụ sử dụng lynx với màn hình

Tạo màn hình:

screen -S lynx lynx 

Ctrl + một, d = exit

sau đó bạn có thể trở lại với:

screen -r lynx 
+15

Ba vấn đề với điều này. Đầu tiên, một số người đã đăng bài này. Thứ hai, bạn đang nói cho anh ta những thứ sử dụng màn hình cơ bản mà anh ta đã biết. Thứ ba, bạn không thực sự trả lời câu hỏi, vì anh ấy đã hỏi cách đặt tên cho phiên màn hình đã tồn tại. –

43

Như đã nêu, screen -S SESSIONTITLE hoạt động để bắt đầu phiên có tiêu đề (SESSIONTITLE), nhưng nếu bạn bắt đầu một phiên và sau đó quyết định thay đổi tiêu đề của phiên. Điều này có thể được thực hiện bằng cách sử dụng mặc định tổ hợp phím:

Ctrl + một, Một

Mà nhắc nhở:

Set windows title to:SESSIONTITLE 

Thay đổi SESSIONTITLE bởi backspacing và gõ vào tiêu đề mong muốn . Để xác nhận thay đổi tên và liệt kê tất cả các tiêu đề.

Ctrl + một, "

+31

Bạn đang xử lý các thuật ngữ _session_ và _window_ như hoán đổi cho nhau khi chúng không. 'Ctrl + a',' A' không đặt tên _session_ ('SESSIONNAME'), nó chỉ đặt tiêu đề _window_ hiện tại. Tiêu đề của các cửa sổ trong một phiên không xuất hiện trong danh sách các phiên khi được truy vấn với 'screen -list'. Câu hỏi đặt ra cách đặt tên _session_. – StvnW

+2

hữu ích nhưng nó thay đổi tiêu đề cửa sổ hiện tại, không phải tên phiên. – Znik

Các vấn đề liên quan