ฉันจะหาค่าของ DISPLAY บนหน้าจอ linux ได้อย่างไร


1

สมมติว่าฉันทำexport DISPLAY=:1ในเซสชั่น X ส่งต่อ ตอนนี้ผมต้องการที่จะตั้งค่ากลับไปเป็นค่าเดิมเพื่อที่ว่าเมื่อผมเปิดตัวแอพพลิเค X :1พวกเขาแสดงขึ้นบนหน้าจอของฉันและไม่ได้อยู่ใน มีวิธีใดที่จะค้นหาสิ่งที่เคยเป็นและตั้งค่าเป็นอย่างนั้นหรือ หรือค่าจะหายไปอย่างถาวรเมื่อถูกเขียนทับ?

ฉันไม่ต้องการให้มีการรีสตาร์ทครั้ง ssh DISPLAYเพียงเพราะผมเปลี่ยนค่าของ

คำตอบ:


3

คุณสามารถบันทึกลงในตัวแปรอื่นก่อน:

export DISPLAY_BACKUP=$DISPLAY
export DISPLAY=:1

หากต้องการกู้คืนกลับมาให้ทำ:

export DISPLAY=$DISPLAY_BACKUP

ในกรณีที่DISPLAYตัวแปรไม่ได้รับการบันทึกคุณสามารถใช้ข้อมูลโค้ดต่อไปนี้ (พบได้ที่นี่ ) เพื่อลองรับค่าดั้งเดิม:

netstat -lnt | awk '
sub(/.*:/,"",$4) && $4 >= 6000 && $4 < 6100 {
    print ($1 == "tcp6" ? "ip6-localhost" : "localhost:") ($4 - 6000)
}'

การแสดงระยะไกลสอดคล้องกับพอร์ต TCP ที่เปิดด้านบน 6000 การเข้าถึงหมายเลขที่แสดงบนเครื่อง M ทำได้โดยเชื่อมต่อกับพอร์ต TCP 6000 + N บนเครื่อง M


อันที่จริงฉันกำลังถามกรณีที่ฉันไม่ได้บันทึก เป็นไปได้หรือไม่ที่จะกู้คืนจอแสดงผล? ผมหมายถึงจะต้องมีบางวิธีการหาสิ่งที่เป็นจริงค่าการแสดงผลเป็น!
AnkurVj

@AnkurVj ฉันจะบอกว่ามันเป็นไปไม่ได้ที่จะทำเช่นนั้น (ถ้าคุณไม่สามารถคาดเดาค่าเก่า) แน่นอนคุณสามารถเริ่มการเชื่อมต่อ SSH ใหม่ได้ตลอดเวลา

@AnkurVj localhost:10.0น่าจะคุ้มค่าการแสดงผลเป็นสิ่งที่ชอบ แต่นั่นจะขึ้นอยู่กับว่าเซสชัน X11 อื่น ๆ ทำงานอยู่หรือไม่

ตกลงดูเหมือนว่าความพยายามมากกว่าการรีสตาร์ทเซสชัน ssh แม้ว่าจะดูเหมือนแฮ็คที่ถูกกฎหมายเพื่อค้นหาสิ่งที่ฉันกำลังมองหา ขอบคุณมาก!
AnkurVj
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.