มีวิธีให้ชื่อเฉพาะกับเซสชั่นหน้าจอยูนิกซ์หรือไม่? ตัวอย่างเช่นสมมติว่าฉันกำลังรันโปรแกรมเดียวกันหลายครั้งแต่ละตัวมีพารามิเตอร์ต่างกันและฉันต้องการบอกว่าอันไหน
มีวิธีให้ชื่อเฉพาะกับเซสชั่นหน้าจอยูนิกซ์หรือไม่? ตัวอย่างเช่นสมมติว่าฉันกำลังรันโปรแกรมเดียวกันหลายครั้งแต่ละตัวมีพารามิเตอร์ต่างกันและฉันต้องการบอกว่าอันไหน
คำตอบ:
คุณสามารถตั้งชื่อเซสชันเมื่อเริ่มต้นด้วย-S name
ตัวเลือก CTRL-a, :sessionname name
จากภายในหน้าจอทำงานคุณสามารถเปลี่ยนมันได้ด้วยการพิมพ์ คุณสามารถดูการทำงานการประชุมหน้าจอที่มีและเชื่อมต่อไปยังหนึ่งในชื่อที่มีscreen -ls
screen -xS name
ภายในเซสชันเดียวคุณสามารถตั้งชื่อแต่ละหน้าต่าง ทำได้โดยพิมพ์CTRL-a, A
ชื่อที่คุณต้องการ คุณสามารถดูรายการแบบโต้ตอบของ windows ที่มีชื่อโดยการพิมพ์CTRL-a, "
และเลือกหน้าต่างที่คุณต้องการเปลี่ยนจากรายการนั้น
การตั้งชื่อทั้งหน้าจอและหน้าจอเทอร์มินัลภายในหน้าจอมีประโยชน์อย่างมากสำหรับการจดจำสิ่งที่เป็นและทำไมคุณถึงเริ่มใช้งานตั้งแต่แรก
:sessionname NEWNAME
) แต่มันเป็น "ท้อแท้โดยทั่วไป" $STY
ตัวแปรสภาพแวดล้อมยังคงหมายถึงชื่อเดิม ดูscreen
คู่มือ: gnu.org/software/screen/manual/html_node/Session-Name.html
มีสองแนวคิดอยู่ที่นี่และฉันไม่แน่ใจว่าคุณมีแนวคิดใด:
C-a c
สร้างหน้าต่างC-a n
และC-a p
สลับไปยังหน้าต่างถัดไป / ก่อนหน้าและอื่น ๆ-r
หรือ-R
) ใด ๆจะสร้างเซสชันใหม่Windows มีหัวเรื่องซึ่งสามารถตั้งค่าผ่าน-t
ตัวเลือกบรรทัดคำสั่งการC-a A
เชื่อมโยงคีย์title
คำสั่งหรือ\ek
ลำดับการยกเว้น ดูคำตอบของ shellterสำหรับรายละเอียดเพิ่มเติม
เซสชั่นสามารถมีชื่อ โดยทั่วไปคุณจะตั้งชื่อบนบรรทัดคำสั่งด้วย-S
ตัวเลือก หากคุณไม่ระบุชื่อหน้าจอจะสร้างขึ้น หากคุณใช้หลายเซสชันบนหน้าจอโดยทั่วไปคุณจะตั้งชื่อเซสชันต่างกัน คุณสามารถแสดงรายการเซสชันหน้าจอที่กำลังรันด้วยscreen -ls
; คำแรกในแต่ละบรรทัดเซสชั่นคือ12345.sessionname
ที่ 12345 เป็น ID กระบวนการหน้าจอ ใช้screen -r sessionname
หรือscreen -r 12345
เพื่อดำเนินการเซสชันต่อที่ระบุผ่านชื่อหรือ ID กระบวนการ
อ่า ... หน้าจอมันพาฉันกลับ ;-)
สำหรับหนึ่งหน้าต่าง
-t name
sets the title (a.k.a.) for the default shell or specified program.
See also the "shelltitle" .screenrc command.
สำหรับเซสชัน mutliple เริ่มต้นจาก. screenrc ของคุณ
screen -t top 2 nice top
screen -t ....
นี่คือลิงค์ไปยังสำเนาออนไลน์ของสำเนาหน้าคนสำหรับหน้าจอ
แก้ไข: เพิ่มแล้ว
หากต้องการเปลี่ยนชื่อหน้าจอปัจจุบันให้สร้างเครื่องมือเชลล์สคริปต์เช่น
cat scrnTitle.sh
#/bin/bash
echo -ne '\ek${0}\e\\'
ไม่ได้ทดสอบฉันไม่มีหน้าจอที่พร้อมใช้งานบนระบบที่ฉันกำลังทำงาน
screen
เวลาอย่างน้อย 25 ปี screen
ฉันจะใช้เวลากลับมาเพราะตอนนี้มันเป็นกรณีการใช้งานพิเศษที่จะพาฉันไป ปกติฉันจะเปิดต่อX-Terms
ไป แต่ฉันจำได้ว่าเมื่อมันเป็นไปไม่ได้ที่จะทำงานX
บนพีซี 486 ;-) ไชโย!
ในขณะที่ทำงานscreen
:
Ctrl+a
(หรือscreen
ลำดับการหลบหนีของคุณคืออะไร)A
คำตอบข้างต้นได้บอกวิธีตั้งชื่อหน้าจอเมื่อคุณเริ่มใช้งาน พวกเขายังชี้ให้เห็นว่าหน้าจอไม่สามารถเปลี่ยนชื่อได้หลังจากที่เริ่มต้นแล้ว สามารถตั้งชื่อหน้าต่างได้ แต่ชื่อที่ใช้แนบกับหน้าจอยังคงเป็น pid.pty.host
อย่างไรก็ตามเพื่อให้ได้ผลที่เป็นประโยชน์ฉันพบว่าการใช้นามแฝงนั้นใช้ได้ผลดีทีเดียว ถ้าฉันลืมตั้งชื่อหน้าจอหรือพบว่าตัวเองอยู่ในเซสชั่นที่มีหน้าจอจำนวนมากที่กลายเป็นหน้าจอตามธรรมชาติสำหรับงานเฉพาะฉันเพียงตั้งชื่อแทนสำหรับคำสั่งเพื่อแนบกับพวกเขา
ตัวอย่าง:
alias goncompile='screen -r 2354'
การออกคำสั่ง alias ด้วยตัวเองจะเตือนคุณว่าหน้าจอที่คุณมีและหน้าจอที่คุณตั้งไว้เพื่อแนบกับพวกเขา
ใช้unalias
เพื่อลบออก