โครงสร้างการทำงานของลินุกซ์จะคล้ายๆกับยูนิกซ์คือจะเป็นการดำเนินการกับไฟล์ โดยไฟล์ต่างๆจะถูกเก็บเป็นโครงสร้างต้นไม้ที่มีโหนดเริ่มต้นคือ root หรือมักจะเขียนว่า / ระบบปฏิบัติลินุกซ์จะมองสิ่งต่างๆเป็นไฟล์หรือเป็นเหมือนไฟล์ (file-like object) และเราสามารถใช้ซอฟต์แวร์เดียวกันในทำงานกับไฟล์และสิ่งที่เป็นเหมือนไฟล์ 

     ก่อนที่เราจะไปดูว่ามีคำสั่งอะไรบ้างที่เราสามารถใช้ค้นหาไฟล์ในลินุกซ์ เรามาทำความรู้จักกับการอ้างอิงพาธในลินุกซ์กันก่อน (พาธ-path- คือเส้นทางในการเข้าถึงไดเร็คทอรี่หรือไฟล์) การอ้างอิงพาธหมายถึงการบอกว่าไดเร็ตทอรี่นี้อยู่ที่ไหนจากไดเร็คทอรี่ตั้งต้นที่กำหนด (เหมือนเราบอกว่าร้านข้าวมันไก่อยู่เลยเซ่เว่นไปอีก 2 คูหานั่นเอง) ในลินุกซ์มีการอ้างอิงพาธอยู่ 2 แบบคือ การอ้างอิงจาก root หรือที่เรียกว่า Absolute Path ซึ่งหมายถึงการระบุพาธเต็มๆของไดเร็คทอรี่ซึ่งจะต้องตั้งต้นจาก root ดังนั้นการเขียนพาธจะขึ้นต้นด้วยเครื่องหมาย / เสมอ และการอ้างอิงจากไดเร็คทอรี่ที่เราอยู่ในปัจจุบัน (present working directory )หรือที่เรียกว่า Relative Path ซึ่งการเขียนพาธจะต้องไม่ตั้งต้นด้วยเครื่องหมาย / ตัวอย่างเช่น ถ้าเราอยู่ที่ไดเร็คทอรี่ Music  และต้องการไปที่ไดเร็คทอรี่ .bashrc ดังภาพ

ภาพแสดงการระบุพาธ

     ในกรณีที่เราใช้การอ้างอิงจาก root เราจะใช้คำสั่ง cd ตามด้วยการเขียนพาธแบบ absolute path คือ /home/fred/.bashrc ได้เป็น cd /home/fred/.bashrc (cd ย่อมาจาก change directory หมายถึงการเปลี่ยนไปไดเร็คทอรี่อื่น) 

     ในกรณีที่เราใช้การอ้างอิงจากไดเร็คทอรี่ที่เราอยู่ในปัจจุบัน เราจะใช้คำสั่ง  cd ตามด้วยการเขียนพาธแบบ relative path คือ  ../../fred/.bashrc  ได้เป็น cd ../../fred/.bashrc ลองจินตนาการดูเหมือนเราเดินไปตามทางเริ่มจาก .. คือถอยไปที่ sue, .. คือถอยไปที่ home, fred คือลงมาที่ fred, และ .bashrc คือลงมาที่ .bashrc

คำสั่ง echo 

     เป็นคำสั่งที่ใช้แสดงข้อความโดยมีรูปแบบการใช้งานคือ echo ตามด้วยสิ่งที่เราจะดูข้อความ เช่น เราใช้ echo $HOME เพื่อดูค่าของตัวแปรระบบ $HOME ซึ่งเก็บค่า home ไดเร็คทอรี่ของเรา เราสามารถใช้งาน echo ในการแสดงข้อความบนหน้าจอ เช่น echo  “Please enter target path” ซึ่งจะมีประโยชน์ในการสื่อสารกับผู้ใช้งานเวลาที่เราพัฒนาสคริปขึ้นมาใช้งาน หรือเราอาจจะใช้ echo ในการเขียนข้อความลงในไฟล์ เช่น echo “Add this is text to file” > filename หรือ เขียนข้อความต่อท้ายในไฟล์ที่มีอยู่แล้ว เช่น echo “Append this text to file”>> existingfile หากเราต้องการให้ข้อความขึ้นบรรทัดใหม่ เราสามารถใช้ออปชั่น -e\n หากเราต้องการย่อหน้าข้อความด้วย tab เราใช้ ออปชั่น -e\t

ภาพแสดงการใช้คำสั่ง echo

คำสั่ง pwd 

     เป็นคำสั่งที่ใช้แสดงไดเร็คทอรี่ที่เราอยู่ปัจจุบัน (pwd ย่อมาจาก present working directory) 

ภาพแสดงการใช้คำสั่ง pwd

คำสั่ง cd 

     เป็นคำสั่งที่ใช้ในการเปลี่ยนไดเร็คทอรี่ รูปแบบการใช้งานเช่น cd .. คือไปที่ parent directory ของตำแหน่งปัจจุบัน ถ้าใช้ cd / คือไปที่ root  ใช้ cd ~ หรือ cd คือไปที่ไดเร็คทอรี่ home ใช้ cd – คือไปที่ไดเร็คทอรี่ก่อนหน้า หรือระบุพาธที่ต้องการไปโดยใช้การอ้างอิงในแบบ absolute path หรือ relative path จากตัวอย่างจะใช้คำสั่ง pwd เพื่อบอกว่าตอนนี้เราอยู่ที่ไหน และใช้คำสั่ง cd ในแบบต่างๆ

ภาพแสดงการใช้คำสั่ง cd

คำสั่ง tree

     เป็นคำสั่งที่ใช้แสดงโครงสร้างการจัดเก็บของไดเร็คทอรี่และไฟล์ภายใต้ไดเร็คทอรี่ปัจจุบันที่เราอยู่ หรือใช้คำสั่ง tree -d ถ้าต้องการเห็นแค่ไดเร็คทอรี่ (ถ้าเรียกไปแล้วและดูท่าทางว่ามันยังวิ่งแสดงอยู่ไม่หยุด เราสามารถกด ctrl+c เพื่อหยุดการทำงานของมันได้)

ภาพแสดงการใช้คำสั่ง tree

คำสั่ง ls

     เป็นคำสั่งให้แสดงไดเร็คทอรี่และไฟล์ภายใต้ไดเร็คทอรี่ปัจจุบันที่เราอยู่ ถ้าต้องการแสดงตัวที่ถูกซ่อนไว้ด้วยให้ใช้คำสั่ง ls -a

ภาพแสดงการใช้คำสั่ง ls

คำสั่ง which และ whereis

     เป็นคำสั่งที่ใช้ในการค้นหาซอฟต์แวร์ที่ต้องการใช้งาน ซึ่งโดยปรกติซอฟต์แวร์ต่างๆที่ติดตั้งบนลินุกซ์จะอยู่ที่ไดเร็คทอรี่ /bin หรือ /usr/bin หรือ /sbin หรือ /usr/sbin หรือ ภายใต้ไดเร็คทอรี่ /opt ขึ้นอยู่กับว่าเป็นดิสทริบิวชั่นอะไร หากเราต้องการหาว่าโปรแกรมที่เราต้องการเรียกใช้งานอยู่ที่ไดเร็คทอรี่ไหน ให้ใช้คำสั่ง which หรือ whereis ซึ่งคำสั่ง whereis จะแสดงไดเร็คทอรี่ของคู่มือด้วย

ภาพแสดงการใช้คำสั่ง which และ whereis