แม้ว่าเราจะไม่ได้รับคำสั่ง แต่เพื่อนร่วมงานของฉันใช้ vi เพื่อดูไฟล์ข้อความขนาดใหญ่ (server.log 3.5 GB) สิ่งนี้เต็มไปด้วย / var / tmp และก่อให้เกิดปัญหาบางอย่างบนเซิร์ฟเวอร์
อะไรทำให้เกิดสิ่งนี้ ทำไมเราไม่ควรใช้ vi สำหรับไฟล์ขนาดใหญ่?
แม้ว่าเราจะไม่ได้รับคำสั่ง แต่เพื่อนร่วมงานของฉันใช้ vi เพื่อดูไฟล์ข้อความขนาดใหญ่ (server.log 3.5 GB) สิ่งนี้เต็มไปด้วย / var / tmp และก่อให้เกิดปัญหาบางอย่างบนเซิร์ฟเวอร์
อะไรทำให้เกิดสิ่งนี้ ทำไมเราไม่ควรใช้ vi สำหรับไฟล์ขนาดใหญ่?
คำตอบ:
ไดเร็กทอรีดีฟอลต์ (/ var / tmp) สำหรับบัฟเฟอร์การแก้ไข vi ต้องการพื้นที่เท่ากับประมาณสองเท่าของขนาดไฟล์ที่คุณใช้งานอยู่เนื่องจากvi ใช้บรรทัดเพิ่มเติมสำหรับการจัดการบัฟเฟอร์
หากไดเร็กทอรี / var / tmp มีพื้นที่ไม่เพียงพอสำหรับบัฟเฟอร์การแก้ไข (เช่นคุณกำลังทำงานกับไฟล์ขนาดใหญ่หรือระบบขาดพื้นที่
บางครั้งคุณอาจได้รับคุณจะได้รับข้อความแสดงข้อผิดพลาดดังต่อไปนี้
Not enough space in /var/tmp.
คุณสามารถอ่านวิธีการแก้ไขได้ที่นี่: http://kb.iu.edu/data/akqv.html
เสียงเรียกเข้าไม่ได้ถูกออกแบบมาสำหรับไฟล์ขนาดใหญ่ มีคุณสมบัติบางอย่างที่ช้าลงอย่างมากประสบการณ์ผู้ใช้ ตัวอย่างเช่นมันโหลดไฟล์ลงในหน่วยความจำซึ่งโดยทั่วไป จำกัด การแก้ไขไฟล์ที่เล็กกว่าขนาดหน่วยความจำของคุณ นอกจากนี้ฟีเจอร์ต่าง ๆ เช่นการเน้นไวยากรณ์, การสลับไฟล์และการเลิกทำนั้นไม่มีประสิทธิภาพมากกับไฟล์ขนาดใหญ่และทำให้ช้าลงมากยิ่งขึ้น ปัญหาอื่นคือvim
คาดว่าจะไม่ยาวเกินไป หากไฟล์มีอักขระขึ้นบรรทัดใหม่ไม่กี่ตัวvim
ใช้ไม่ได้
ที่มีการกล่าวว่ามีปลั๊กอินเช่นกลุ่ม-largefileว่าการตั้งค่าโดยเฉพาะอย่างยิ่งการเปลี่ยนแปลงที่จะมีประสิทธิภาพมากขึ้นด้วยไฟล์ขนาดใหญ่ แต่ในท้ายที่สุดvim
จะไม่เร็วเมื่อคุณโยนหลาย GiBs ที่มัน
บรรทัดล่างคือห้ามใช้vim
กับไฟล์ขนาดใหญ่ หากคุณต้องการดู (ตรงกันข้ามกับแก้ไข) less
ไฟล์ขนาดใหญ่ใช้งาน หากคุณต้องการค้นหารูปแบบ ues สแลชเพื่อเริ่มค้นหารูปแบบ:
/<pattern> # forward search
?<pattern> # backward search
หากคุณต้องการกรองเอาท์พุทใช้เครื่องหมายและ:
&<pattern>
shift-fจากนั้นเริ่มต้นการส่งออกอย่างต่อเนื่องโดยใช้ คุณสามารถออกจากการแสดงผลต่อเนื่องด้วยctrl-cและปรับแต่งหรือยกเลิกรูปแบบตัวกรองของคุณหรือเริ่มการค้นหา
เพื่อแก้ไขไฟล์ขนาดใหญ่ใช้เครื่องมือเช่นsed
พวกเขามีประสิทธิภาพและออกแบบมาเพื่อวัตถุประสงค์นี้มาก
vi
(หรือvim
สำหรับเรื่องนั้น) เป็นเรื่องที่ช้ามากสำหรับไฟล์ขนาดใหญ่และอาจใช้ไม่ได้หากไม่มีจำนวนบรรทัดมาก นอกจากนี้ไฟล์ต้องมีขนาดพอดีกับหน่วยความจำ ใช้less
สำหรับไฟล์ขนาดใหญ่มันเร็วกว่าและเพียงพอสำหรับการอ่าน / ดูไฟล์บันทึก