Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

วิธีดูเนื้อหาไฟล์ข้อความจากบรรทัดคำสั่ง Linux

คำถามว่า "คำสั่งไหนให้ดูเนื้อหาไฟล์ได้" เป็นหนึ่งในคำถามที่ผู้ใช้ Linux มือใหม่ถามบ่อยที่สุด เหมือนกับสิ่งส่วนใหญ่ในสภาพแวดล้อม Unix แบบดั้งเดิม มีหลายวิธีทำ และเคล็ดลับส่วนใหญ่นี้ใช้ได้กับ macOS (OS X) และ FreeBSD ด้วย

นั่นหมายความว่าเมื่อคุณเรียนรู้พื้นฐานการดูไฟล์จากบรรทัดคำสั่ง คุณจะหาทางเดินได้เกือบทุก Unix prompt ที่คุณพบ

วิธีที่ 1: ดูไฟล์ข้อความทั่วไป (Regular Text File)

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

ในกรณีนั้น ให้พิมพ์ more ตามด้วยชื่อไฟล์ จะแสดงแบ่งหน้า (page) ไม่ให้เห็นมากกว่าหน้าจอ จนกว่าคุณจะกด Space ทำให้มีเวลาอ่านมากขึ้น กด q เพื่อออก พิมพ์ more -d ตามด้วยชื่อไฟล์ จะได้บรรทัดคำแนะนำเล็กน้อย และกด h จะได้ help sheet เต็มรูปแบบ

วิธีดูเนื้อหาไฟล์ข้อความจากบรรทัดคำสั่ง Linux

ใช้คำสั่ง less ตามด้วยชื่อไฟล์ หากต้องการควบคุมเพิ่มเติม เช่น หลังใช้ less แล้ว สามารถเลื่อนไปมาในไฟล์ข้อความได้ด้วยปุ่มลูกศร, Page Up/Down และ key binding แบบ vi (k/j)

วิธีดูเนื้อหาไฟล์ข้อความจากบรรทัดคำสั่ง Linux

หากเคยใช้คำสั่ง man ดู manual page ของโปรแกรมบรรทัดคำสั่ง คุณรู้จัก less แล้วโดยไม่รู้ตัว เพราะ distribution ส่วนใหญ่ใช้ less ในการเลื่อน man pages ใครรู้จัก gestures ใน man pager ให้ลองใช้ใน less ได้ แต่จำไว้ว่ากด h ได้หน้าช่วยเหลือเสมอ

วิธีดูเนื้อหาไฟล์ข้อความจากบรรทัดคำสั่ง Linux

ผู้ใช้ vi/vim มืออาชีพอาจรู้สึกแปลกเล็กน้อย เพราะส่วนนี้เป็นส่วนหนึ่งของ quarter การเคลื่อนที่ h/j/k/l แต less ไม่ต้องการเลื่อนซ้ายขวา จึงจะคุ้นเคยเร็วพอ สามารถใช้ Ctrl+N หรือ Ctrl+E ไปหน้าต่อไปบรรทัดเดียว และ Ctrl+Y หรือ Ctrl+P กลับบรรทัดก่อน หากสังเกตหน้าช่วยเหลือ จะเขียนว่า CR ไปหน้าต่อไปบรรทัดเดียว หมายถึง Carriage Return คือปุ่ม Enter บนคีย์บอร์ด

พิมพ์ / นำหน้าคำใดๆ เพื่อค้นหาในเอกสาร แล้วพิมพ์ n ไปยังผลถัดไป หรือ Shift+N กลับผลก่อนหน้า

วิธีดูเนื้อหาไฟล์ข้อความจากบรรทัดคำสั่ง Linux

แม้จะไม่ยืดหยุ่นเท่า grep แต่อาจมีประโยชน์หากคุณกำลังดูไฟล์ใน less อยู่แล้วและต้องการหาบางอย่าง

วิธีที่ 2: ดูไฟล์พิเศษ (Special Files)

พิมพ์ less -f ตามด้วยชื่อไฟล์ เพื่อบังคับเปิด สามารถใช้ sudo less -f /dev/sdb1 เพื่อดูส่วนต้นของ boot record ของ partition ได้ แต่อย่างระมัดระวังมากเมื่อทำอะไรกับบัญชี sudo และ boot record

เราใช้เพื่อตรวจสอบ boot record ของการ์ด microSDHC ที่ฟอร์แมตจากแท็บเล็ต Android

วิธีดูเนื้อหาไฟล์ข้อความจากบรรทัดคำสั่ง Linux

สามารถเลื่อนดูไฟล์ได้เหมือนเดิม และกด q เพื่อออก หากมีไฟล์มาตรฐานแต่ encoding แปลกๆ ที่อยากสำรวจ ให้พิมพ์ od -c ตามด้วยชื่อไฟล์ สามารถเลื่อนดูในเทอร์มินัล หรือใช้ od -c fileName | grep less เพื่อ pipe ให้ less หากยาวเกินไป จะได้โอกาสดูหากไม่สามารถตรวจสอบด้วยโปรแกรมอื่นได้ รวมถึงโปรแกรมกราฟิกอล หากเรียก od โดยไม่มีสวิตช์ จะพิมพ์ไฟล์เป็น stream ของตัวเลข octal เป็นทางเลือกสุดท้าย

วิธีที่ 3: ดูเนื้อหาไฟล์ที่บีบอัด (Compressed Files)

บางครั้งมีไฟล์ข้อความที่บีบอัด (zipped) สามารถอ่านได้โดยไม่ต้องแตกก่อน คุณอาจคุ้นเคยกับรูปแบบ ZIP แบบดั้งเดิมจากระบบนิเวศ MS-DOS ซึ่ง archive และ compress พร้อมกัน หากมีไฟล์ข้อความใน ZIP archive ต้อง inflate ก่อนอ่าน แต่演算法บีบอัดแบบ Unix-based อนุญาตให้บีบอัดไฟล์ที่เดิม (in-place)

หากมีไฟล์ข้อความบีบอัดชื่อ smallerFile.gz ให้ใช้ zcat smallerFile.gz เพื่อดูเนื้อหาจากบรรทัดคำสั่ง อาจอยากพิมพ์ zmore หรือ zless แทน zcat ซึ่งทำงานเหมือน more และ less แต่รองรับไฟล์ข้อความที่บีบอัดด้วยโปรแกรม gzip

Distribution เยอะขึ้นเริ่มใช้รูปแบบ xz ดังนั้นหากมีไฟล์ข้อความบีบอัดด้วยรูปแบบนี้ ให้เติม xz นำหน้าคำสั่งดูไฟล์ ใช้ xzcat, xzless, xzmore แทน cat, less, more เช่นกันมี bzcat, bzless, bzmore สำหรับมาตรฐาน bzip2

โปรดทราบ: ไม่สามารถอ่านไฟล์ข้อความได้ด้วยวิธีนี้ หากไฟล์ถูกใส่ใน tar หรือ cpio archive ก่อนแล้วค่อยบีบอัด ดังนั้นอ่าน smallerFile.gz ได้ปกติ แต่อ่าน smallerFile.tar.gz หรือ smallerFile.tgz ไม่ได้ด้วยวิธีเดียวกัน