Làm thế nào để gán tên cho một màn hình? [đóng cửa]


471

Tôi đang sử dụng screencông cụ ghép kênh trên shell lệnh và mở rất nhiều màn hình. Sau đó tôi quên ID quá trình liên kết với nhiệm vụ nào.

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 trang.

Hiện tại, việc liệt kê 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 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.

Tôi có thể làm cái này như thế nào?


4
câu hỏi trông giống như câu hỏi "làm thế nào để đổi tên các phiên hiện có" thay vì "làm thế nào để bắt đầu các phiên mới với tên". Trong bối cảnh đó, câu trả lời hiện đang được lựa chọn là không thực sự phù hợp. Câu trả lời đúng phải là câu trả lời được đưa ra bởi user164176- stackoverflow.com/a/3309696/636762
Rakib

Tên của các phiên màn hình của bạn đề nghị bạn tạo một phiên màn hình mới cho mỗi tác vụ (có thể là một lệnh duy nhất). Màn hình hỗ trợ nhiều cửa sổ , vì vậy bạn có thể 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

3
Điều này có thể được di chuyển sang SuperUser (hoặc một số trang web StackExchange khác) không? Rõ ràng nó khá hữu ích với nhiều người, mặc dù nó nằm ngoài phạm vi của trang web cụ thể này.
Patrick Sanan

1
nếu bạn tìm thấy một tùy chọn trên trang web này để di chuyển nó đến đó với tất cả lịch sử, thì tôi sẽ đồng ý di chuyển nó
spankmaster79

Câu trả lời:


652

Để bắt đầu một phiên mới

screen -S your_session_name

Để đổi tên một phiên hiện có

Ctrl+ a, :tên phiên YOU_SESSION_NAMEEnter

Bạn phải ở trong phiên


14
Đâ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.
thanos.a

4
Một ghi chú nhanh về C-a :cú pháp .... "Theo mặc định, tất cả các lệnh trên màn hình đều được tiền tố khóa thoát C-a(đó là Control-a, đôi khi được viết ^a). Để gửi một chữ C-ađến các chương trình trên màn hình, hãy sử dụng C-a 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ụ như C-a a nsẽ di chuyển màn hình sang một cửa sổ mới trên màn hình trong màn hình. " (ref: a periodic.net/screen/quick_Vference )
Nate Ritter

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

2
đồng ý sau khi nhìn vào nó một vài năm sau: D
spankmaster79

Tôi có thể liên kết C-a :sessionname NEWNAMEvới một cái gì đó nhanh hơn để gõ? Tôi đã thử bind $ sessionnamenhưng bây giờ khi tôi C-a $không nhắc tôi tên mới. Điều đó có thể bằng cách nào đó?
andreas-h

592

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

screen -S foo

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

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

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

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

1
câu hỏi trông giống như câu hỏi "làm thế nào để đổi tên các phiên hiện có" thay vì "làm thế nào để bắt đầu các phiên mới với tên". Trong bối cảnh đó, câu trả lời hiện đang được lựa chọn là không thực sự phù hợp. Câu trả lời đúng được chọn phải là câu trả lời được đưa ra bởi user164176- stackoverflow.com/a/3309696/636762 bên dưới
Rakib

Tôi đã tìm kiếm "ubfox tạo một màn hình mới có tên" trên google và đây là kết quả đầu tiên. Chính xác những gì tôi đang tìm kiếm :) cảm ơn
Skylord123

Để đổi tên phiên: Ctrl + a ,: tên phiên YOU_SESSION_NAME Enter.
Slake

51

Như đã nêu, screen -S SESSIONTITLEhoạt động để bắt đầu một phiên với một 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 nó. Điều này có thể được thực hiện bằng cách sử dụng các ràng buộc khóa mặc định:

Ctrl+ a,A

Lời nhắc nào:

Set windows title to:SESSIONTITLE

Thay đổi SESSIONTITLEbằng cách đặt khoảng cách 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+ a,"


40
Bạn đang coi các điều khoản phiêncửa sổ là có thể hoán đổi cho nhau khi chúng không. Ctrl+a, Akhông đặt tên phiên ( SESSIONNAME), nó chỉ đặt tiêu đề cửa sổ hiện tại . Các 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 screen -list. Câu hỏi hỏi làm thế nào để đặt tên phiên .
StvnW

5
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

13

Cách dễ nhất để sử dụng màn hình có tên

screen -S 'name' 'application'
  • Ctrl+ a, d= thoát và để ứng dụng mở

Quay trở lại 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+ a, d= thoát

sau này bạn có thể quay lại với:

screen -r lynx

18
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 với anh ấy những thứ sử dụng màn hình cơ bản mà anh ấy đã biết. Thứ ba, bạn không thực sự trả lời câu hỏi, vì anh ta hỏi làm thế nào để đặt tên cho một phiên màn hình đã tồn tại.
Steely Dan

0

Tôi là người mới bắt đầu sàng lọc 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ò 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. - như đố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 có nội dung:

#!/bin/bash
screen -d -r tab$1

trong đó đối số đầu tiên là số tab.


1
Điều này có thể được thực hiện tốt hơn như là một hàm bash.
Paul Giá
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.