ฉันจะดูประวัติของฉันในหน้าจอบน Linux ได้อย่างไร


54

ฉันกำลังเรียกใช้สคริปต์ข้ามคืนจากบรรทัดคำสั่ง (ภายในหน้าจอบนอินสแตนซ์ Linux EC2) และข้อผิดพลาดบางอย่างที่ฉันไม่ได้ติดตามเกิดขึ้น ฉันต้องการ "เลื่อนขึ้น" หรือดูประวัติเพิ่มเติมในหน้าจอ แต่ดูเหมือนไม่พบคำสั่งใด ๆ ที่ใช้งานได้

ฉันต้องเห็นผลลัพธ์บนหน้าจอ "ไกลขึ้น" กว่าที่ฉันสามารถทำได้บนหน้าจอปัจจุบันของฉัน CTRL + a ควรทำให้ฉันอยู่ในโหมดเลื่อนภายในหน้าจอ แต่มันไม่ทำงาน


history | less, more? หรือคุณกำลังถามวิธีการเก็บประวัติเพิ่มเติมหรือไม่

historyจะเก็บคำสั่งเท่านั้นที่ถูกไล่ออกในเชลล์ เขาถามเกี่ยวกับการบันทึกสิ่งต่าง ๆ มากขึ้น

<Shift>+ <PgUp>เป็นเพียงตัวเลือกเดียว และมันก็มีข้อ จำกัด เช่นกัน (ที่มากที่สุด 500 บรรทัดล่าสุดฉันเดา)
ssapkota

ฉันต้องเห็นผลลัพธ์บนหน้าจอ "ไกลขึ้น" กว่าที่ฉันสามารถทำได้บนหน้าจอปัจจุบันของฉัน CTRL + a ควรทำให้ฉันอยู่ในโหมดเลื่อนภายในหน้าจอ แต่มันไม่ทำงานสำหรับฉัน
ต. Brian Jones

1
เพียงแค่Ctrl-aเป็นscreen's หลบหนี ลำดับคีย์ทั้งหมดเพื่อเข้าสู่โหมด scrollback จะCtrl-a [เป็น opyate พูดว่า Ctrl-a ESCใช้ได้กับฉันฉันจำไม่ได้ว่าอันไหนเป็นมาตรฐาน / ใช้กันทั่วไป
ninjalj

คำตอบ:


32

เมื่อคุณเริ่มหน้าจอคุณสามารถระบุขนาดของบัฟเฟอร์การเลื่อนด้วย -h ดังนั้นคุณสามารถเพิ่มได้จากค่าเริ่มต้นของ 100 บรรทัด อย่างไรก็ตามด้วยหน้าจอที่กำลังทำงานอยู่เมื่อข้อมูลได้ทิ้งบัฟเฟอร์ไปแล้วมันจะหายไป


3
นี่เป็นเพียงความผิดธรรมดา คำตอบโดย @opyate ให้บริการโซลูชั่น
nirvana-msu

6
@ nirvana-msu การใช้ ^ a เพื่อเข้าสู่โหมด scrollback ช่วยให้คุณสามารถเลื่อนหน้าบัฟเฟอร์การเลื่อนหน้าได้ หากข้อมูลหายไปจากบัฟเฟอร์การเลื่อนแล้วจะหายไป คุณสามารถเพิ่มขนาดของ bufer นั้นเมื่อเริ่มต้น คุณคิดว่าคำตอบของฉันเกี่ยวกับอะไรไม่ถูกต้อง? ฉันพูดเกี่ยวกับการเพิ่มขนาดของบัฟเฟอร์การเลื่อนกลับ opyate ให้รายละเอียดเกี่ยวกับวิธีการใช้
William Pursell

2
โอเคแม้ว่าคำถามไม่ได้เกี่ยวกับการขยายบัฟเฟอร์แบบเลื่อน ผู้เขียนอยากจะดูประวัติการมากกว่าสิ่งที่แสดงให้เห็นได้ตามปกติในคอนโซลและคุณสามารถCtrl+a+[ดูประวัติการขึ้นโดยใช้ คำตอบของคุณทำให้ดูเหมือนเป็นไปไม่ได้ซึ่งทำให้เข้าใจผิด
nirvana-msu

สิ่งนี้ไม่ทำงานบน mac คำตอบอื่น ๆ ไม่ทำงาน
เบ็น

76

สมมติว่าคุณยังไม่ได้เรียงลำดับ escape คุณสามารถกดCtrl-a [เพื่อเข้าสู่โหมด scrollback จากนั้นใช้ Page-UP / Page-Down หรือ Ctrl-b / Ctrl-f ตามปกติเพื่อขึ้นและลง

จากGentoo wiki บนการใช้งานหน้าจอ


7
และ ESC เพื่อออกจากโหมด scrollback IIRC
ninjalj

ตอนนี้ wiki gentoo คือ: wiki.gentoo.org/wiki/Screen
Rmatt

ดูโพสต์นี้สำหรับวิธีการ (เรียงลำดับ) เลื่อนการทำงานของเมาส์ ชื่อโพสต์บอกว่าเป็น tmux แต่มันก็ครอบคลุมหน้าจอด้วย
JonnyRaa

2
Ctrl+ A, Escเข้าสู่โหมดคัดลอก / สโครลย้อนกลับ
Serge Stroobandt

7

คุณยังสามารถเรียกใช้คำสั่งของคุณในscriptคำสั่งซึ่งจะบันทึกผลลัพธ์ไปยังดิสก์ หรือคุณสามารถ: command 2>&1 | tee /tmp/cmd.outเพื่อบันทึกผลลัพธ์สำหรับการตรวจสอบในอนาคตที่คุณต้องการประวัติเอาท์พุทขนาดไม่ จำกัด (ในทางปฏิบัติ)


นี่คือสิ่งที่ฉันใช้สำหรับงานของฉัน ใช้งานได้ดี ขอบคุณ
ต. Brian Jones

6

ฉันต้องเห็นผลลัพธ์บนหน้าจอ "ไกลขึ้น" กว่าที่ฉันสามารถทำได้บนหน้าจอปัจจุบันของฉัน CTRL + a ควรทำให้ฉันอยู่ในโหมดเลื่อนภายในหน้าจอ แต่มันไม่ทำงาน

นอกเหนือจากคำตอบอื่น ๆ แล้วฉันจะชี้ให้เห็นว่าคุณอาจเพิ่ม~/.screenrcไฟล์ของคุณ:

defscrollback 100000
termcapinfo xterm ti@:te@

ที่อยู่:


ไม่ทำงานบน Mac ไม่มีคำตอบใดทำงานที่นี่ ฉันยังคงเห็นขนาดของหน้าต่างเทอร์มินัล ขึ้นไปอีกเป็นเพียงscreenคำสั่งและสิ่งที่ฉันทำก่อนหน้าจอ ฉันยังลองscreen -hผลลัพธ์เดียวกัน ความคิดใด ๆ
เบ็น

@Ben ขอโทษไม่มีความคิดฉันลองบน Ubuntu เท่านั้น
Franck Dernoncourt

1
อ่ามันใช้ได้กับcontrol+ aแล้วESCจากนั้นฉันก็สามารถเลื่อนภายในข้อความด้วยเคอร์เซอร์ได้ สิ่งที่ใช้ไม่ได้คือเลื่อนด้วยเมาส์โดยใช้แถบเลื่อน Mac Terminal ที่ด้านข้าง ขอบคุณ!
เบ็น

5

คุณยังสามารถเปลี่ยนขนาดประวัติย้อนกลับในหน้าจอที่รันด้วยลำดับCTRL-a :(เข้าสู่โหมดบรรทัดคำสั่งหน้าจอ) จากนั้นscrollback 10000ถ้าคุณต้องการบัฟเฟอร์ประวัติศาสตร์ 10k การเปลี่ยนแปลงจะมีผลทันที

ระวังการใช้หน่วยความจำหากคุณใช้หลายหน้าจอที่มีบัฟเฟอร์ยาวมาก

อย่างไรก็ตามเช่น @William Pursell กล่าวว่าด้วยหน้าจอที่กำลังทำงานอยู่เมื่อข้อมูลออกจากบัฟเฟอร์มันจะหายไป


0

ขึ้นอยู่กับโปรแกรมเทอร์มินัลที่คุณใช้งานโดยทั่วไปคุณสามารถเปลี่ยน Scrolling Buffer ภายใต้การตั้งค่า ฉันรู้ว่าxtermคุณต้องเปิดใช้งานการเลื่อนก่อนจากนั้นคุณสามารถตั้งค่าบัฟเฟอร์ให้ไม่มีที่สิ้นสุด

ทางออกที่ดีที่สุดของคุณสำหรับสคริปต์การบันทึกคือการส่งเอาต์พุตมาตรฐานไปยังไฟล์อีกครั้ง:

ScriptName >> OutputFile.txt

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

แก้ไข: นี่อยู่ใกล้กับโซลูชันท่อด้านบนอย่างไรก็ตามการเปลี่ยนเส้นทางอินพุตมาตรฐานอาจมีประโยชน์ในกรณีอื่นเช่นกัน:

grep linux stackoverflow.txt > linuxquestions.txt

หรือ

cat linuxquestions.txt | grep buffersize > bufferquestions.txt

โปรดทราบว่าscreen(1)ไม่อนุญาตให้มีการเลื่อนหน้าจอเทอร์มินัล นั่นเป็นคุณสมบัติหลักอย่างใดอย่างหนึ่งและเป็นหนึ่งในข้อเสียเปรียบหลัก
sarnold

@sarnold เป็นไปได้ที่จะอนุญาตการเลื่อนหน้าจอดูsuperuser.com/a/1336554/116475
Franck Dernoncourt

0

เมื่อใช้macOS Terminalฉันไม่สามารถใช้แถบเลื่อนด้านข้างเพื่อดูประวัติข้อความได้

ผมสามารถที่จะเลื่อนเคอร์เซอร์ภายในข้อความที่ใช้และ หลังจากที่ผมตีCRTL+ แล้วaESC

และฉันต้องเพิ่มสิ่งนี้เพื่อ~/.screenrcเปิดใช้งานการเลื่อนเมาส์จากภายในหน้าต่าง (ยังไม่ได้อยู่กับตัวเลื่อน):

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