วิธีการทำให้มิร์เรอร์เทอร์มินัลไปยังหน้าจอที่สองในการตั้งค่าสองจอภาพ


25

ฉันสอนโดยใช้การตั้งค่าสองหน้าจอดังนั้นสิ่งที่ฉันเห็นในเดสก์ท็อปของฉันจึงแตกต่างจากที่ผู้ชมของฉันเห็น สิ่งนี้ใช้ได้ดีสำหรับการนำเสนอ: ในขณะที่นักเรียนเห็นสไลด์ฉันสามารถดูบันทึกย่อของฉัน

แต่ฉันต้องการใช้เทอร์มินัลเพื่อเรียกใช้เชลล์ อย่างไรก็ตามเทอร์มินัลต้องอยู่บนเดสก์ท็อปของฉันหรือบนหน้าจอภายนอก

มีวิธีแสดงเนื้อหาเทอร์มินัลในทั้งสองหน้าจอพร้อมกันหรือไม่ ฉันไม่ต้องการสะท้อนหน้าจอ แต่ติดกับโหมดจอภาพสองจอ

คำใบ้ใด ๆ

ฉันใช้ Ubuntu กับ Gnome


คุณสามารถมิเรอร์เดสก์ท็อปของคุณและแสดงเทอร์มินัลอีมูเลเตอร์นั่นเป็นวิธีหนึ่งถ้าคุณต้องการแสดงเทอร์มินัลในทางใดทางหนึ่งตราบเท่าที่มันใช้งานได้ คุณกำลังพูดถึง TTY โดยเฉพาะ? จากนั้นทั้งสองคำตอบที่มีอยู่แล้วสำหรับหน้าจอและ tmux ก็สามารถใช้งานได้ ขึ้นอยู่กับความต้องการของคุณจริงๆ
Sergiy Kolodyazhnyy

ไม่ใช่คำถามที่ซ้ำกันเพราะคำถามนี้เกี่ยวกับเทอร์มินัลซึ่งหมายความว่ามีตัวเลือกอื่น ๆ (เช่นหน้าจอ tmux) ที่ใช้ได้ แต่คำถามนี้มีความเกี่ยวข้องอย่างใกล้ชิดและคำตอบที่ควรมีสำหรับปัญหานี้ด้วย
psmears

@Sergiy Kolodyazhnyy: ฉันไม่ต้องการสะท้อนเดสก์ท็อปเพราะมันยุ่งกับงานนำเสนอ เมื่อฉันสลับกลับไปที่หน้าจอแยกกันสไลด์จะไม่พอดีกับหน้าจออีกต่อไป บางครั้งสไลด์ไปที่เดสก์ท็อปของฉัน tmux ทำงานได้ดีสำหรับฉัน
Jander

คำตอบ:


15

โซลูชันแบบพกพา

ใช้script! ตัวอย่างเช่น:

เทอร์มินัลส่วนบุคคล:

> script -f /tmp/lecture1.scrpt #use -F instead on MacOS
> ... #start doing things here!

ขั้วการนำเสนอ:

> #after this, terminal will continuously print whatever's written to personal terminal
> tail -F /tmp/lecture1.scrpt

มันทำงานอย่างไร

scriptทุกคำสั่งสำเนาเขียนไปยังหน้าจอขั้ว (รวมถึงสิ่งที่คุณพิมพ์!) ลงในไฟล์ก็จะใช้เวลาเป็นพารามิเตอร์ โดยปกติทุกอย่างจะถูกเขียนลงไฟล์หลังจากที่คุณจบสคริปต์ (โดยพิมพ์exit) อย่างไรก็ตาม-fตัวเลือกที่ทำให้scriptบัฟเฟอร์ของล้างหลังจากทุกการเขียน (บน MacOS นี้จะเป็น-Fหรือ-t 0) จากนั้นในเทอร์มินัลการนำเสนอคุณสามารถใช้tail -Fเพื่อดูเนื้อหาอย่างต่อเนื่องตามที่เขียน


สิ่งที่ควรทราบ

  • เนื่องจากเทอร์มินัลหนึ่งกำลังเขียนลงไฟล์และอีกอันกำลังอ่านสิ่งนี้สามารถทำได้ระหว่างผู้ใช้ที่แตกต่างกัน! ซึ่งหมายความว่าคุณสามารถมีบางคนที่มีสิทธิ์น้อยมากและตราบใดที่คุณวางไฟล์สคริปต์ในตำแหน่งที่พวกเขาสามารถอ่านได้คุณจะยังสามารถนำเสนอให้พวกเขาได้ (เช่น: หากคุณมีเซิร์ฟเวอร์ที่นักเรียนสามารถเข้าถึงได้คุณสามารถสร้างไฟล์. scrpt ที่สามารถอ่านได้สำหรับพวกเขาเท่านั้นเพื่อให้พวกเขาสามารถติดตามได้บนหน้าจอของตนเอง)

  • เมื่อพิจารณาถึงวิธีการนี้แล้วเทอร์มินัลหนึ่งกำลังขับรถและอีกอันหนึ่งกำลังรับชมอยู่

  • วิธีนี้ยังมีโบนัสเพิ่มทำให้ง่ายขึ้นสำหรับคุณที่จะหยุดการทำมิเรอร์ทำงานลับ ๆ และเริ่มสร้างความอัศจรรย์อีกครั้งโดยไม่ต้องออกจากอาคารส่วนตัวของคุณ สิ่งนี้สามารถทำได้ดังนี้:

เทอร์มินัลส่วนบุคคล:

> exit #end script session; stop writing to /tmp/lecture1.scrpt
> ... #do secret things not safe for student eyes!
> script -f -a /tmp/lecture1.scrpt #begin writing again with -a to append

สนุกยิ่งขึ้นด้วยscript!

วัตถุประสงค์ของscriptการบันทึกเซสชันเทอร์มินัลของคุณเพื่อให้สามารถเล่นได้ในภายหลัง (เราเพิ่งจะเป็นกรณีพิเศษของการเล่นตามการบันทึก) เพื่อช่วยในเรื่องนี้scriptมี-tตัวเลือกในการบันทึกเวลาพร้อมกับสิ่งที่เขียนไปยังหน้าจอ หากต้องการใช้ให้เริ่มเซสชันสคริปต์ของคุณด้วย:

> script -f -t 2>/tmp/lecture1.timing /tmp/lecture1.scrpt

และเล่นกลับ (พร้อมเวลา!) ด้วย:

> scriptreplay -t /tmp/lecture1.timing -s /tmp/lecture1.scrpt

มีนักเรียนที่ส่งอีเมลถึงคุณว่าเขาป่วยและไม่สามารถบรรยายได้ใช่ไหม หรือเพียงแค่ต้องการให้เนื้อหาการบรรยายแก่นักเรียนมากขึ้น หากคุณบันทึกเสียงของคุณในระหว่างการบรรยาย (และเริ่มต้นสคริปต์ในเวลาเดียวกันกับการบันทึก) นักเรียนของคุณสามารถเล่นเซสชันเทอร์มินัลด้วยเสียงของคุณและรับประสบการณ์การบรรยายเต็มรูปแบบ!

มีนักเรียนที่ชอบเล่นวิดีโอทั้งหมดที่ความเร็ว 2x หรือไม่? scriptreplayใช้ "ตัวหาร" ที่คูณความเร็วในการเล่นด้วย! เพียงแค่ส่งผ่าน-d 2เพื่อเล่นที่ความเร็ว 2x (โปรดทราบว่านี่เป็นค่าสองเท่าดังนั้นคุณสามารถทำ-d .5ความเร็วครึ่งหนึ่งได้!)


ว้าวน่าสนใจ! สิ่งที่น่าประหลาดใจคือสิ่งนี้ดูเหมือนว่าจะจัดการกับการเรียกดูข้อมูลย้อนหลังการลบสี ... อย่างไม่มีที่ติ tailจะไม่ได้คิดว่านี้คือเป็นไปได้ด้วย (ฉันคิดว่าtmuxยังดีกว่าในทางปฏิบัติเพราะมันไม่มีปัญหากับเซสชันการแก้ไขเช่น)
leftaroundabout

วิธีการที่น่าสนใจจริงๆ! มันสามารถจัดการกับการเปลี่ยนแปลงขนาดหน้าต่างในขณะที่tmuxและscreenไม่สามารถเท่าที่ฉันสามารถบอกได้
Jander

@leftaroundabout เกี่ยวกับเวทย์มนตร์ที่นี่เป็นจริงเพียงแค่ทำน้อยtailจริงๆ หากคุณดูไฟล์สคริปต์ที่มีลักษณะคล้ายกันvimหรือlessคุณจะเห็นว่ามันเพิ่มการหลบหลีกที่น่าเกลียดเพราะมันพยายามควบคุมการเลื่อนหน้าจอและการจัดวางอักขระ
scohe001

@leftaroundabout โดย "editor session" คุณหมายถึงเป็นvimอย่างไร เท่าที่ฉันสามารถบอกได้สิ่งนี้ดูเหมือนว่าจะทำงานได้ดี (ตราบใดที่เทอร์มินัลการนำเสนอใหญ่กว่าเทอร์มินัลส่วนตัว)
scohe001

35

หนึ่งในวิธีที่สง่างามคือการใช้สำหรับงานนี้:tmux sudo apt install tmuxนี่คือตัวอย่าง:

  • สร้างเซสชันที่เรียกว่าmy_session(ลบ-dเพื่อแนบระหว่างการสร้าง):

    tmux new-session -d -s my_session
    
  • เปิดหน้าต่างเทอร์มินัลใหม่หนึ่งหน้าต่างขึ้นไปและเชื่อมต่อกับเซสชันเดียวกัน:

    tmux attach -t my_session
    
  • หากต้องการแยกออกจากประเภทเซสชัน:

    tmux detach
    

    หรือกดCtrl+bแล้วปล่อยและกดCtrld

  • ในการส่งคำสั่งไปยังเซสชันโดยไม่ต้องแนบ:

    tmux send-keys -t my_session "echo Hello World!" ENTER  Enter
  • หมายเหตุexitคำสั่งที่ดำเนินการจากภายในจะปิดเซสชัน


27

ไม่สามารถคิดวิธีใด ๆ ในการบรรลุสิ่งที่คุณต้องการโดยตรง - บางทีคนอื่นสามารถทำได้ แต่ฉันสามารถคิดถึงวิธีแก้ปัญหา

ติดตั้งด้วยscreen sudo apt install screenเริ่มสองขั้ว ในหน้าแรกให้พิมพ์screenและกด enter ที่หน้าจอ nag ที่คุณได้รับ screen -xในหนึ่งวินาทีประเภท

พวกเขาจะแสดงเนื้อหาเดียวกันอย่างมีประสิทธิภาพ ไม่ใช่หน้าต่างเทอร์มินัลเดียวกัน แต่จะเป็นเนื้อหาเดียวกัน

หน้าจอสามารถใช้ลูกเล่นเพิ่มเติมได้เช่นกันเช่นหลายหน้าต่างที่คุณสามารถสลับไปมาได้ นี่คือการสอนด่วนเกี่ยวกับคุณสมบัติที่มีให้


ขอโทษฉันไม่สามารถเลือกเป็นสองคำตอบที่ถูกต้อง ...
Jander

1
นั่นเป็นสมบูรณ์ดี :) ฉันได้ upvoted คำตอบอื่น ๆ ที่ตัวเอง :)
vidarlo

4

นอกเหนือจากคำตอบของpa4080ด้านบนเพื่อใช้ tmux ฉันอยากจะแนะนำรุ่นเพิ่มเติม:

ลอง tmate มันมีอยู่ในแพ็คเกจ Ubuntu ด้วยเช่นกัน แม้ว่าจะสามารถใช้แทน tmux ได้ แต่ก็สามารถทำอะไรได้มากกว่า: ฉันสามารถทำซ้ำเซสชันเทอร์มินัลของคุณโดยใช้เซิร์ฟเวอร์สาธารณะ tmate ที่เข้าถึงได้ผ่าน ssh หรือ http (แชร์อย่างเดียวหรือเต็ม) เพื่อให้นักเรียนของคุณสามารถใช้เครื่องฉายภาพ Beamer หรือดูเทอร์มินัลเซสชันของคุณแบบอ่านอย่างเดียวโดยตรงในเบราว์เซอร์บนคอมพิวเตอร์ / แท็บเล็ตส่วนตัว ฯลฯ


tmateดูน่าสนใจ นี่คือตัวอย่างง่ายๆ: youtube.com/watch?v=is_VpIx3Z4M
pa4080
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.