เรื่องคำสั่ง Linux มีจำนวนมากที่ใช้รันงานต่างๆ และหากต้องการแสดงรายการเนื้อหาในไดเรกทอรีเหมือนไฟล์แมเนจอร์ มีคำสั่งนิดหน่อย มาดูกัน
ls
คำสั่ง Linux ที่พบบ่อยที่สุดสำหรับแสดงรายการเนื้อหาไดเรกทอรีคือ ls โดยค่าเริ่มต้น ls แสดงรายการในคอลัมน์ ใช้สีต่างกันแสดงไฟล์และไดเรกทอรี
ไดเรกทอรีที่สร้างโดยผู้ใช้ มีชื่อแสดงในเครื่องหมายคำพูดเดี่ยว ไดเรกทอรีที่สร้างโดยระบบ แสดงชื่อโดยตรง สีที่ใช้แสดงชื่อไฟล์ ไดเรกทอรี และสคริป्ट ขึ้นกับ visual theme ของเทอร์มินัล
ls แค่แสดงรายการไดเรกทอรีปัจจุบัน หากต้องการดูไดเรกทอรีอื่น ใส่ file path ในคำสั่ง:
ls /add/file/path/here
เพิ่ม flag -a แสดงไฟล์ซ่อน:
ls -a
หรือ flag -l และ -h แสดงแบบ long-list และ human readable:
ls -lh
dir
dir เหมือน ls แสดงรายการในคอลัมน์ หากชื่อมีอักขระพิเศษ เช่น space อักขระเหล่านั้นจะมี backslash นำหน้า flag ทั้งหมดที่พัฒนาสำหรับ ls ทำให้พร้อมใช้กับ dir ด้วย
dir พฤติกรรมคล้ายคำสั่ง:
ls -C -b
โดยที่
-C : แสดงผลลัพธ์ในคอลัมน์-b : นำหน้าอักขระพิเศษด้วย backslash
vdir
คำสั่งถัดไปแสดงเนื้อหาในไดเรกทอรีคือ vdir
คำสั่งนี้ให้ long listing ของเนื้อหาไดเรกทอรี อักขระพิเศษในชื่อนำหน้าด้วย backslash ใน long listing แสดงรายละเอียดเกี่ยวกับสิทธิ์ ลิงก์เจ้าของ กลุ่มเจ้าของ ขนาดไฟล์ เวลาแก้ไขล่าสุด และชื่อไฟล์/ไดเรกทอรี
vdir พฤติกรรมคล้าย:
ls -l -b
โดยที่
-l : long listing ของเนื้อหาไดเรกทอรี-b : นำหน้าอักขระพิเศษด้วย backslash
ทำไมต้องมี "dir" และ "vdir" เมื่อ "ls" ทำได้เหมือนกัน?
Shell commands บ่อยครั้งใช้เป็นส่วนของสคริปท์ ผลลัพธ์อาจแสดงบนหน้าจอเทอร์มินัล redirect ไปไฟล์ หรือ pipe เป็น input ให้คำสั่งอื่น ในบางสถานการณ์ ls ไม่ทำงานคาดหวังเนื่องจากปัญหาประสิทธิภาพระหว่างรันสคริปท์ นักพัฒนา Linux จึงสร้างคำสั่งสลับสองตัวที่ให้ output เหมือน ls แต่ไม่เจอปัญหาประสิทธิภาพเหล่านั้น
นอกจากนี้ บางคนถือว่า dir เป็น Linux equivalent ของคำสั่ง DOS "dir" ซึ่งก็แสดงรายการไดเรกทอรี แต่การสมมตินี้ไม่ถูกต้อง
Fun Fact
ใน output ของ ls ไฟล์และโฟลเดอร์มีสี (color-coded) ใน output ของ dir และ vdir ใช้สีเดียวกันตลอด หากสงสัยว่าทำไม เหตุผลอยู่ในไฟล์ .bashrc ใน "~/.bashrc" ไฟล์ซ่อนใน home directory มี alias สำหรับ "ls" กำหนดไว้ดังภาพ
โดยที่ ls เทียบเท่า ls --color=auto alias เหมือนกันสำหรับ "dir" และ "vdir" ถูก comment ไว้ คุณสามารถ uncomment เพื่อดู output แบบมีสี คำสั่งด้านล่างทำงานเหมือนกัน:
dir --color
เรื่องคำสั่ง Linux มักมีมากกว่าหนึ่งทางทำสิ่งเดียวกัน อย่าลืมดูคำสั่งที่ใช้บ่อยสำหรับผู้ใช้ใหม่