it-swarm-vi.com

Đặt tên cho phiên màn hình

Có cách nào để đặt tên cụ thể cho phiên màn hình unix không? Chẳng hạn, giả sử tôi đang chạy cùng một chương trình nhiều lần, mỗi lần có các tham số khác nhau và tôi muốn biết đó là chương trình nào.

62
well actually

Bạn có thể đặt tên một phiên khi bắt đầu phiên với -S name Lựa chọn. Từ trong màn hình đang chạy, bạn có thể thay đổi nó bằng cách nhập CTRL-a, :sessionname name. Bạn có thể xem các phiên màn hình đang chạy với screen -ls và kết nối với một tên bằng screen -xS name.

Trong một phiên màn hình duy nhất, bạn cũng có thể đặt tên cho mỗi cửa sổ. Làm điều này bằng cách gõ CTRL-a, A sau đó tên bạn muốn. Bạn có thể xem danh sách tương tác của các cửa sổ được đặt tên bằng cách nhập CTRL-a, ", và chọn một trong những bạn muốn chuyển từ danh sách đó.

Đặt tên cho cả màn hình và thiết bị đầu cuối trong màn hình thực sự hữu ích để ghi nhớ chúng là gì và tại sao bạn bắt đầu chúng ở nơi đầu tiên.

73
Lars Yencken

Có hai khái niệm ở đây và tôi không chắc bạn có ý tưởng nào:

  • Bạn có thể có nhiều cửa sổ màn hình. Mỗi cửa sổ chạy Shell hoặc chương trình khác. Tất cả các cửa sổ được lưu trữ theo cùng một quy trình. C-a c tạo một cửa sổ, C-a nC-a p chuyển sang cửa sổ tiếp theo/trước, v.v.
  • Bạn có thể có nhiều phiên màn hình. Mỗi phiên được lưu trữ theo quy trình riêng và độc lập với tất cả các phiên khác. Màn hình bắt đầu mà không có reattach (-r hoặc là -R) tùy chọn tạo một phiên mới.

Windows có các tiêu đề, có thể được đặt thông qua -t tùy chọn dòng lệnh, C-a A ràng buộc khóa, lệnh title hoặc \ek trình tự thoát. Xem câu trả lời của shellter để biết thêm chi tiết.

Phiên có thể có tên. Bạn thường đặt tên trên dòng lệnh bằng -S Lựa chọn; nếu bạn không chỉ định tên, màn hình sẽ tạo một tên. Nếu bạn sử dụng nhiều phiên màn hình, thông thường bạn sẽ đặt cho chúng các tên phiên khác nhau. Bạn có thể liệt kê phiên màn hình đang chạy với screen -ls; từ đầu tiên trên mỗi dòng phiên là 12345.sessionname trong đó 12345 là ID tiến trình màn hình. Sử dụng screen -r sessionname hoặc là screen -r 12345 để tiếp tục một phiên được chỉ định thông qua tên hoặc ID tiến trình của nó.

À ... Màn hình, nó đưa tôi trở lại ;-)

Cho một cửa sổ

-t name
    sets the title (a.k.a.) for the default Shell or specified program. 
    See also the "shelltitle" .screenrc command.

Đối với các phiên đột biến bắt đầu từ .screenrc của bạn

screen -t top 2 Nice top
screen -t ....

Đây là một liên kết đến một bản sao trực tuyến của man-page cho màn hình.

Chỉnh sửa: đã thêm

Để thay đổi tên màn hình hiện tại, hãy tạo một công cụ tập lệnh Shell như

cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'

Chưa được kiểm tra, tôi không có sẵn màn hình trên hệ thống tôi đang làm việc.

12
shellter

Trong khi chạy screen:

Ctrl+a (hoặc bất kể chuỗi thoát screen của bạn là gì) A

4
ninjalj

Các câu trả lời ở trên đã cho bạn biết cách đặt tên cho màn hình khi bạn khởi động nó. Họ cũng chỉ ra rằng một màn hình không thể được đổi tên sau khi màn hình được bắt đầu. Tiêu đề cửa sổ có thể được đặt nhưng tên được sử dụng để gắn vào màn hình vẫn là pid.pty.Host.

Tuy nhiên, để đạt được hiệu quả hữu ích, tôi thấy rằng sử dụng bí danh hoạt động khá tốt. Nếu tôi quên đặt tên cho một màn hình hoặc thấy mình trong một phiên có một loạt các màn hình trở thành màn hình tự nhiên cho các tác vụ cụ thể, tôi chỉ cần đặt bí danh cho lệnh để gắn vào chúng.

thí dụ:

alias goncompile='screen -r 2354'

Việc ban hành lệnh bí danh sẽ nhắc nhở bạn những màn hình nào bạn có và lệnh bạn đã đặt để gắn vào chúng.

Sử dụng unalias để xóa chúng.

3
caoimhin