วิธีรับและคัดลอกเอาต์พุตที่ยาวเกินไปอย่างสมบูรณ์ในเทอร์มินัล


8

ในเทอร์มินัลคำสั่งมีเอาต์พุตยาวเกินไป แต่เมื่อฉันเลื่อนกลับฉันเห็นว่ามันถูกตัดทอนและแสดงเฉพาะส่วนสุดท้ายเท่านั้น ใน Gnome-Terminal และ Konsole ฉันมีปัญหานี้ ใน xterm ไม่มีปัญหาดังกล่าว แต่ฉันไม่สามารถคัดลอกผลลัพธ์ใน xterm

ฉันจะได้รับผลลัพธ์ที่สมบูรณ์ได้อย่างไร


คำตอบ:


5

ฉันรู้ในเทอร์มินัล xfce4 มีตัวเลือกเพื่อเพิ่มจำนวนบรรทัดที่แสดง:

ป้อนคำอธิบายรูปภาพที่นี่

สำหรับ Ubuntu Terminal ป้อนคำอธิบายรูปภาพที่นี่

นอกเหนือจากนั้นมีสิ่งที่ @ Zelda64fan พูด


+1 Pipe และteeไม่ดีที่สุดเนื่องจากไม่ทำงานในบางกรณีเช่นใช้เวลาในHROOT 3NVIORTNM3NT
22lk94k943 เท่านั้น

9

คุณสามารถที่จะส่งออกไปยังแฟ้ม: command > file.txt(ในกรณีที่commandเป็นคำสั่งที่คุณต้องการในการทำงานและfile.txtเป็นไฟล์ที่คุณต้องการที่จะบันทึกลง) gedit file.txtและจากนั้นดูมันด้วย


8

ใช้ xclip

cat long.output | xclip -sel clip

หากไม่ได้ติดตั้งคุณสามารถทำได้

sudo apt-get install xclip

อันนี้เป็นรายการโปรดส่วนตัวสำหรับเทอร์มินัล GUI ด้วย TTY มันจะไม่ทำงานโชคไม่ดีที่การเปลี่ยนเส้นทางไปยังไฟล์เท่านั้นจะช่วยได้
Sergiy Kolodyazhnyy

5

command | lessหากคุณไม่จำเป็นต้องมีการส่งออกทั้งหมดคุณสามารถท่อมันผ่านน้อย: สิ่งนี้จะช่วยให้คุณไม่ต้องลบไฟล์เมื่อคุณตรวจสอบผลลัพธ์แล้ว


lessเอาต์พุตค่อนข้างยากที่จะคัดลอก
Sparhawk

2

ใน xterm การคัดลอกอัตโนมัติที่เลือกควรเป็นค่าเริ่มต้น ลองคลิกสามครั้งจากนั้นใช้ปุ่มกลางของเมาส์ (หรือปุ่มที่สามจำลอง) เพื่อวาง

สิ่งเดียวกันควรทำงานกับเทอร์มินัลอื่น ๆ แต่คุณต้องคัดลอกและวางด้วยตนเอง

มีหลายวิธีในการทำเช่นนี้ ฉันชอบที่จะใช้scriptในบางกรณี พิมพ์ 'script' จากบรรทัดคำสั่งเพื่อเริ่มต้นก่อนที่คุณจะเริ่มคำสั่งจากบรรทัดคำสั่งจากนั้นกด Ctrl-D เพื่อหยุด หากคุณไม่ได้ระบุชื่อไฟล์การจับภาพ 'typescript' จะเป็นค่าเริ่มต้น ทุกสิ่งที่พิมพ์ไปที่หน้าจอควรถูกบันทึกในไฟล์


2

บันทึกเอาต์พุตคอนโซลเป็นไฟล์:

  1. tee คำสั่ง

คำสั่งtee - อ่านจากอินพุตมาตรฐานและเขียนไปยังเอาต์พุตและไฟล์มาตรฐาน

มันจะสร้างไฟล์และบันทึกโดยอัตโนมัติเอาต์พุตทั้งหมดของ cmd ps -axลงในไฟล์ที่มีชื่อเหมือนprocesses_infoในโฟลเดอร์เดียวกันกับที่ cmd ทำงาน

user@admin:~$ ps -ax | tee processes_info
  1. script คำสั่ง

คำสั่งสคริปต์ - สร้าง typescript ของเทอร์มินัลเซสชัน

user@admin:~$ script my_console_output.txt

สิ่งนี้จะสร้างไฟล์ที่ชื่อว่าเป็นmy_console_output.txtและจะเปิด subshell และบันทึกข้อมูลทั้งหมดผ่านเซสชันนี้ หลังจากนี้สคริปต์เริ่มต้นและสิ่งที่คอนโซลการส่งออกจะได้รับการเก็บไว้ในแฟ้มmy_console_output.txt; เว้นแต่และจนกว่าสคริปต์จะจบลงเมื่อเชลล์ที่มีเครื่องหมายแยกออก (เช่นเมื่อผู้ใช้พิมพ์exitหรือเมื่อCTRLDพิมพ์)

user@admin:~$ script -c "ps ax" processes_info.txt
  • มันเริ่มต้นสคริปต์;
  • สร้างไฟล์processes_info.txt;
  • เก็บเอาต์พุตคอนโซลลงในไฟล์
  • จบ (ปิด) สคริปต์

    ตัวอย่างอื่น ๆ :

    script -c 'echo "Hello, World!"' hello.txt
    

script -c "rails runner -e development lib/scripts/my_script.rb" report.txtช่วยฉันในการจับภาพเอาต์พุตที่ยาวมาก ๆ ของสคริปต์ของ Rails ให้เป็นไฟล์ได้อย่างง่ายดาย ฉันพยายามใช้การเปลี่ยนเส้นทางไปยังไฟล์ แต่เขียนเฉพาะตอนท้ายสคริปต์ ที่ไม่ได้ช่วยฉันเพราะฉันมีคำสั่งแบบโต้ตอบในสคริปต์ของฉัน จากนั้นฉันก็ใช้เพียงแค่scriptของฉันแล้ววิ่งrails runnerในเซสชั่นสคริปต์ แต่มันไม่ได้เขียนทุกอย่าง จากนั้นฉันก็พบสิ่งนี้script -c "runner command here" output_fileและบันทึกผลลัพธ์ทั้งหมดตามที่ต้องการ สิ่งนี้อยู่ใน Ubuntu 14.04 LTS
Jignesh Gohel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.