บทที่ 03
รู้จัก Path, Directory (pwd)
ย้อนกลับไปในอดีตสมัยที่คอมพิวเตอร์ยังไม่มี GUI การจะจัดเก็บไฟล์ต่างๆ ให้เป็นระเบียบเรียบร้อยเราจะจัดเก็บเอาไว้ใน Directory เดียวกัน ต่อมาเมื่อ GUI เข้ามาแทนที่ รูปไอคอนตัวแทน Directory แสดงเป็นรูปแฟ้มเก็บเอกสาร เพื่อให้สอดคล้องกับรูปไอคอนจึงเปลี่ยนชื่อให้เป็น Folder จนถึงปัจจุบัน ดังนั้นการที่จะบอกว่า Directory ก็คือ Folder ก็ไม่ผิดแต่อย่างใด
ย่อหน้าที่แล้วอธิบายเพื่อให้คนที่ยังไม่เคยได้ยินคำว่า Directory ได้เข้าใจและไม่สับสนครับ
จริงๆ แล้วเรากำลังทำงานอยู่บน Unix ซึ่งใช้ ระบบไฟล์ (File System) เป็นแบบ โครงสร้างระดับชั้น (Hierarchical Directory Structure) หมายความว่า file หรือ directory จะต้องถูกเก็บอยู่ใน Directory ใดๆ ที่อยู่ในชั้นเหนือกว่าไปเรื่อยๆ โดยจะมี directory หนึ่งที่อยู่เหนือสุดๆ (ชั้นบนสุด) เรียกว่า Root Directory
และด้วยคุณสมบัติอีกอย่างของ Unix ที่เป็น Single Root ทำให้ไม่ว่าเครื่องคุณจะมี Disk หลายลูกหรือแบ่ง Partition เป็นหลายส่วน ระบบก็จะมองส่ิงเหล่านี้เป็นเพียง Directory หนึ่งของระบบเท่านั้นเองครับ ต่างกับ Windows ที่เป็นแบบ Multiple Root ที่แบ่ง Disk หรือ Partition ด้วย C: D: E: ฯลฯ
ทีนี้มาว่ากันเรื่อง Path
ให้คุณนึกถึง File Explorer ของ Windows หรือ Finder ของ Mac OS นะครับ วิธีการที่จะท่องไปใน Folder ต่างๆ เราใช้วิธีการคลิกเข้าไปในแต่ละ Folder และลงไปในระดับ Folder ย่อยๆ ไปเรื่อยๆ จนเจอ File หรือ Folder ที่ต้องการ แต่สำหรับใน Shell เราสามารถที่จะอ้างอิง Path ได้ตรงๆ เลย โดยใช้ / เป็นตัวแบ่งระดับชั้น(Directory) เช่น
/usr/local/src เป็น path ของ directory src อยู่ภายใต้ directory local อยู่ภายใต้ directory usr และอยู่ภายใต้ directory root อีกทีหนึ่ง
แบบฝึกหัด
1 $ whoami
2 korakot
3
4 $ pwd
5 /home/korakot
เช่นเคยครับ ผลลัพธ์ของคำสั่งของแต่ละคนจะไม่เหมือนกัน ถ้าผมสั่งคำสั่งนี้บน Mac OS X ผลลัพธ์จะเป็น /Users/korakot ให้คุณจำเอาไว้ว่านี้คือ Full Path ของ Home Directory ของคุณครับ
บทนี้เรียนรู้อะไร?
- ได้เรียนรู้พื้นฐานของ Unix File System
- ได้เรียนรู้คำสั่ง pwd (print working directory) เป็นคำสั่งที่แสดง Full Path ของ Directory ที่เรากำลังทำงานอยู่
- เราแทน Root Directory ด้วยเครื่องหมาย / เดี่ยวๆ
- เรารู้จัก Home Directory ของเราแล้ว โดย Linux คือ /home/ชื่อursername บน Mac OS จะเป็น /Users/ชื่อusername