โครงสร้างการทำงานของลินุกซ์จะคล้ายๆกับยูนิกซ์คือจะเป็นการดำเนินการกับไฟล์ โดยไฟล์ต่างๆจะถูกเก็บเป็นโครงสร้างต้นไม้ที่มีโหนดเริ่มต้นคือ 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