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


44

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.


Không phải là một câu hỏi lập trình. Nên vào SuperUser hoặc Unix.
0xC0000022L

Câu trả lời:


54

Bạn có thể đặt tên một phiên khi bắt đầu nó với -S nametùy chọn. Từ trong màn hình đang chạy, bạn có thể thay đổi nó bằng cách gõ CTRL-a, :sessionname name. Bạn có thể xem các phiên màn hình đang chạy screen -lsvà 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, Asau đó 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 cửa sổ 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.


Đổi tên một phiên màn hình sau khi nó bắt đầu là có thể (sử dụng :sessionname NEWNAME), nhưng nó "thường không được khuyến khích". Biến $STYmôi trường vẫn đề cập đến tên gốc. Xem screenhướng dẫn: gnu.org/software/screen/manual/html_node/Session-Name.html
Keith Thompson

22

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 một vỏ 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 ctạo một cửa sổ C-a nC-a pchuyể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ó tùy chọn reattach ( -rhoặc -R) tạo ra một phiên mới.

Windows có các tiêu đề, có thể được đặt thông qua -ttùy chọn dòng lệnh, C-a Aràng buộc phím, titlelệnh hoặc \ekchuỗi 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 với -Stùy 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.sessionname12345 là ID tiến trình màn hình. Sử dụng screen -r sessionnamehoặc 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ó.


1
Trong các ràng buộc khóa mặc định, để thay đổi tiêu đề, bạn phải sử dụng Ca A.
enzotib

11

À ... 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 trang man 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ụ kịch bản 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.


Cảm ơn, điều này giúp rất nhiều. Có cách nào để đổi tên một phiên màn hình đã tồn tại?
cũng thực sự là

@Charlotte: xem các chỉnh sửa. Cảm ơn đã bình chọn!
shellter

Câu trả lời hay đấy @shellter! Tôi tò mò, bạn đã nói "đưa tôi trở lại" có nghĩa là bạn sử dụng một cái gì đó khác những ngày này (ví dụ như tmux), hoặc chỉ là nó đã hơn 32 tuổi ?
tutuDajuju

1
@tutuDajuju: Gulp, bây giờ tôi nghĩ về nó, tôi đã sử dụng screenít nhất 25 năm. Đưa tôi trở lại, bởi vì bây giờ nó là một trường hợp sử dụng đặc biệt sẽ đưa tôi đến screen. Thông thường tôi chỉ tiếp tục mở X-Terms, nhưng tôi nhớ khi dường như không thể chạy Xtrên PC 486 ;-) Chúc mừng!
shellter

@shellter FYI, tôi đã chạy X trên PC 486 với RAM 8Mb vào năm 1992 ...
Eno

4

Trong khi chạy screen:

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


3

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 để đính kèm với chúng.

thí dụ:

alias goncompile='screen -r 2354'

Việc ban hành lệnh bí danh sẽ tự 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để loại bỏ chúng.

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.