มีวิธีการบันทึกสิ่งที่พิมพ์บนจอแสดงผลด้วยหน้าจอ gnu หรือไม่?


9

ฉันชอบที่จะบันทึกทุกสิ่งที่ฉันทำในบรรทัดคำสั่งตัวอย่างเช่นเมื่อฉันอัพเกรดบางสิ่งบางอย่างและต้องการอ่านว่าการอัปเกรดเป็นอย่างไรและอื่น ๆ

โดยปกติแล้วด้วย Mac OSX และ Terminal คุณสามารถเลื่อนกลับได้มากเท่าที่คุณต้องการและบันทึกด้วย Cmd-S แต่เมื่อฉันใช้ SSH โดยใช้หน้าจอ gnu ฉันไม่สามารถเลื่อนกลับจากเทอร์มินัลโดยตรง

ฉันจะบันทึกลงในดิสก์ทุกสิ่งที่เกิดขึ้นในเซสชันหน้าจอได้อย่างไร อาจจะเป็นค่าเริ่มต้น (ทุกเซสชันสร้างไฟล์ไปยังดิสก์โดยอัตโนมัติ ... )

ขอบคุณ!

คำตอบ:


7

screenมีคุณสมบัติในการเข้าสู่ระบบเป็น เริ่มต้นเมื่อคุณเริ่มต้นscreenด้วยการทำscreen -L(หรือจากภายในscreen) หรือยังจากภายในscreenคุณสามารถกด-Ctrla : H

หากคุณต้องการเข้าสู่ระบบเป็นค่าเริ่มต้นเพิ่มบรรทัดต่อไปนี้ใน~/.screenrcไฟล์ของคุณ:

deflog on

คุณอาจต้องการตั้งชื่อไฟล์โดยใช้สิ่งที่ชอบ:

logfile /tmp/screenlog.%n

1
หนึ่งอาจไม่ควรเก็บไว้ใน / tmp ตามปกติจะได้รับการทำความสะอาดเมื่อรีบูต (เช่นเนื่องจากความล้มเหลวของพลังงาน)
maxelost

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


2

ตัวเลือก 1: ค้นหาคำสั่งสคริปต์ "ผู้ชายสคริปต์"

"สคริปต์สร้าง typescript ของทุกสิ่งที่พิมพ์บนเครื่องเทอร์มินัลของคุณมันมีประโยชน์สำหรับนักเรียนที่ต้องการบันทึก hardcopy ของเซสชันแบบโต้ตอบเพื่อพิสูจน์การกำหนดเนื่องจากไฟล์ typescript สามารถพิมพ์ออกมาในภายหลังด้วย lpr"

โดยทั่วไปพิมพ์ "script" (ไม่มีเครื่องหมายอัญประกาศ) - ทำงานของคุณและพิมพ์ exit หนึ่งครั้งเพื่อสิ้นสุดเซสชัน

ตัวเลือกที่ 2: ใช้โหมด "สำเนาถาวร" ของหน้าจอ 'Crtl-a' แล้ว 'h' นี่จะบันทึกเซสชันปัจจุบันไปยังไฟล์

หมายเหตุ: หน้าจอ GNU มีความสามารถในการเลื่อน ใช้ 'crtl-]' (วงเล็บเหลี่ยมด้านขวา) เพื่อเข้าสู่โหมดการคัดลอกจากนั้น 'ctrl-b' และ 'ctrl-f' เพื่อย้ายหน้าและลงหน้าในแต่ละครั้ง


1

คุณจะต้องการใช้ 'ล็อก' Ctrl-a Hการดำเนินงานมักจะถูกผูกไว้กับ นี่เป็นการเปิดไฟล์ใหม่ที่ชื่อว่า screenlog Nโดยที่Nคือหมายเลขหน้าต่าง หากไฟล์มีอยู่แล้วเอาต์พุตจะถูกผนวกเข้ากับไฟล์ เอาต์พุตทั้งหมดในหน้าต่างนั้นถูกบันทึกลงในหน้าจอล็อก ไม่มีไฟล์จนกว่าคุณจะปิดใช้งานโดยกดCtrl-a Hอีกครั้ง Ctrl-a :logนอกจากนี้คุณยังจะได้รับฟังก์ชั่นนี้กับ คุณสามารถเปลี่ยนชื่อโดยใช้logfile {filename}คำสั่ง ไฟล์ที่ได้รับอยู่ในไดเรกทอรีที่หน้าจอเริ่มต้นครั้งแรก แต่ที่สามารถเปลี่ยนแปลงได้ด้วยคำสั่ง logfile chdir [{directory}]หรือกับ

โปรดทราบว่านี่ไม่เหมือนกับ hardcopy หรือ scroll buffer นี่เป็นฟังก์ชั่นเดียวกับโปรแกรมสคริปต์ (1) แต่เชื่อมโยงกับหน้าต่างเดียวและไม่เรียกโปรแกรมใหม่

หากคุณต้องการบันทึกเนื้อหาทั้งหมดของบัฟเฟอร์การเลื่อนให้ใช้Ctrl-a ] g <space> G <space> Ctrl-a :writebuf วิธีนี้จะบันทึกบัฟเฟอร์การเลื่อนลงในไฟล์ / tmp / screen-exchange หากคุณต้องการบันทึกเพียงบางส่วนให้เปลี่ยน 'g' และ 'G' เป็นปุ่มเคลื่อนไหวอื่น ๆ

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