ฉันกำลังมองหาวิธีที่จะหยุดการส่งออกไปยัง STDOUT เมื่อฉันรู้ว่าคำสั่งผิด ตัวอย่างเช่นถ้าฉันตั้งใจแมวไฟล์ที่มีขนาดใหญ่มาก โดยปกติแล้วจะหยุดในที่สุดหากคุณกดctrl+cแต่มันใช้เวลานาน
มีวิธีหยุดเอาต์พุตทันทีหรือไม่?
ฉันกำลังมองหาวิธีที่จะหยุดการส่งออกไปยัง STDOUT เมื่อฉันรู้ว่าคำสั่งผิด ตัวอย่างเช่นถ้าฉันตั้งใจแมวไฟล์ที่มีขนาดใหญ่มาก โดยปกติแล้วจะหยุดในที่สุดหากคุณกดctrl+cแต่มันใช้เวลานาน
มีวิธีหยุดเอาต์พุตทันทีหรือไม่?
คำตอบ:
คุณสามารถเรียกใช้ ctl-z เพื่อแบ็คกราวน์มันแล้วฆ่า PID
$ ctl z (เป็นพื้นหลัง)
$ kill -9 {pid} 'ของกระบวนการที่เพิ่งเกิดขึ้น'
บ่อยครั้งที่ข้อมูลถูกส่งไปยังจอแสดงผลแล้วและ "เวลานาน" เป็นเทอร์มินัลพยายามแสดงข้อมูล การทำอะไรกับงานจะไม่ช่วยได้ (เช่นCtrl+ ZหรือCtrl+ C) คุณจะต้องใช้เทอร์มินัลที่เร็วกว่าหรือสิ่งที่จะบัฟเฟอร์ข้อมูล
ฉันไพพ์เอาต์พุตขนาดใหญ่ผ่านless
และtail
ขึ้นอยู่กับว่าฉันต้องการดูด้านบนหรือด้านล่างของไฟล์เนื่องจากทั้งคู่อนุญาตให้ฉันควบคุมจำนวนข้อมูลที่ถูกส่งไปยังเทอร์มินัลอย่างง่ายดายและปิดโปรแกรมหากไม่ใช่สิ่งที่ฉันต้องการ
การสลับไปยังเทอร์มินัลอื่น (ผ่านCTRL+ F1ไปยังF6ในโหมดข้อความหรือเปิดหน้าต่างใหม่ในscreen
ทางCTRL+ A, C) หลังจากกดCTRL+ ZหรือCTRL+ Cจะทำให้เทอร์มินัลดั้งเดิมข้ามการพยายามทำ linefeeds ทั้งหมดและข้ามไปยังบรรทัดสุดท้ายโดยตรง ของการส่งออกในเวลาที่สั้นลง
tmux
หรือscreen
เป็นคำแนะนำเสมอ
คุณควรจะไปป์more
หรือless
cat large_file.txt | less
ณ จุดนี้คุณสามารถเลื่อนดูคำตอบและแยกย่อยด้วย a :q
คุณสามารถใช้grep
เพื่อเรียงลำดับคำตอบของคุณหากคุณกำลังมองหาข้อผิดพลาด / ปัญหาที่เฉพาะเจาะจง
http://www.westwind.com/reference/os-x/commandline/pipes.html
kill -9
ถึงไอเอ็นจีถ้ามันไม่จำเป็นจริงๆ?