ในระบบยูนิกซ์ทำการเก็บข้อมูลโดยใช้ ไฟล์ และ ไดเรกทอรี เข้ามาช่วย โดยจะมีลักษณะเป็นรูปแบบของ heirachy หรือโครงสร้างแบบต้นไม้ หากคุณค้นเคยกับดอสมาก่อน จะเห็นว่ามีรูปแบบการเก็บข้อมูลที่คล้ายกัน เพียงแต่การใช้งานจะแตกต่างกันบ้าง
ไดเรกทอรีจะเปรียบเสมือนแฟ้ม ที่สามารถเก็บไฟล์ต่างๆ (เหมือนกับกระดาษ) ในไดเรกทอรีลำดับบนๆ ก็เหมือนกับแฟ้มขนาดใหญ่ ซึ่งนอกจากจะเก็บไฟล์ได้แล้วก็ยังสามารถเก็บไดเรกทอรีอื่นๆได้ด้วย
ไดเรกทอรีลำดับบนสุดจะถูกเรียกว่า ไดเรกทอรีราก (root directory) ซึ่งจะประกอบไปด้วยไฟล์และไดเรกทอรีต่างๆ ในไดเรกทอรีที่ย่อยลงมาก็อาจจะประกอบไปด้วยไฟล์และไดเรกทอรีไปเรื่อยๆ
ในไฟล์แต่ละไฟล์จะต้องมีชื่ออยู่ จะมีชื่ออยู่สองแบบที่ใช้อ้างถึงไฟล์ได้ คือชื่อแบบยาว และชื่อแบบสั้น ตัวอย่างชื่อแบบสั้นก็คือ "note" และถ้าจะอ้างถึงชื่อแบบยาว ก็อาจจะอ้างได้เป็น "/home/mary/note"
ให้สังเกตุชื่อยาวของไฟล์นี้ ตัวอักษรซ้ายสุดคือ "/" ซึ่งจะระบุถึงไดเรกทอรีราก ซึ่งเป็นไดเรกทอรีลำดับบนสุด ในไดเรกทอรีรากนี้จะมีไดเรกทอรี "home" บรรจุอยู่และภายใต้ไดเรกทอรี "home" ก็จะมีไดเรกทอรี "mary" ไฟล์ "note" ของเราก็จะอยู่ภายใต้ไดเรกทอรี "mary" นั่นเอง
สรุปคือ ในการอ้างถึงชื่อแบบยาว ชื่อทั้งหมดก่อนหน้าชื่อไฟล์ (คือ "/home/mary") จะ
เป็นชื่อของไดเรกทอรี ส่วนชื่อ "note" จึงจะเป็นชื่อของไฟล์จริงๆ
ดังที่ได้แนะนำแล้วในตอนต้นของบทความ คุณสามารถจะใช้คำสั่ง "ls" เพื่อจะดูไฟล์ต่างๆ ได้ ถ้าหากคุณใช้คำสั่ง "ls" ในไดเรกทอรีที่ไม่มีไฟล์ คุณจะไม่เห็นผลลัพธ์ใดๆ (ตรง ข้ามกับดอสที่จะบอกว่า No file found) วิธีนี้เป็นรูปแบบของยูนิกซ์ที่บอกคุณให้ทราบว่าไม่มีไฟล์อะไรอยู่ในไดเรกทอรีนี้
ในการใช้งานยูนิกซ์จะมีคำพูดวลีหนึ่งคือ "No news is good news" นั่นคือระบบยูนิกซ์ จะมีการแจ้งข้อความออกมาให้น้อยที่สุด และถ้ามีการแจ้งมาแล้ว หมายความว่าอาจมีปัญหา บางอย่างเกิดขึ้นจากโครงสร้างของไดเรกทอรีข้างบนคุณอาจสงสัยว่า ในระบบยูนิกซ์มีไดเรกทอรีตั้งมากมาย และก็น่าจะมีไฟล์เป็นจำนวนมากด้วย ทำไมเมื่อสั่งแสดงผลด้วย ls ถึงปรากฏผลลัพธ์ออกมา เป็นไฟล์เพียงไม่กี่ไฟล์ ทั้งนี้ก็เนื่องจากคำสั่ง ls จะทำการแสดงชื่อของไฟล์และไดเรกทอรี ที่มีอยู่ในไดเรกทอรีที่คุณอยู่ใน
ขณะนั้น หรือ ไดเรกทอรีปัจจุบัน (current directory) คุณสามารถจะระบุให้แสดงชื่อของไฟล์ที่มีอยู่ในไดเรกทอรีอื่นก็ได้เช่น
# ls /
bin etc lost+found opt sbin var
boot home mnt proc tmp
dev lib net root usr
คำสั่งนี้จะเป็นการแสดงชื่อของไฟล์และไดเรกทอรีที่มีอยู่ในไดเรกทอรีรากออกมาหากต้องการให้มันแสดงด้วยว่าชื่อไหนเป็นไฟล์ ชื่อไหนเป็นไดเรกทอรี หรือเป็นไฟล์ ชนิดพิเศษ คุณจะต้องระบุตัวเลือก (option) เพิ่มเติมคือ option "-F" ตัวอย่าง
# ls -F /
bin/ etc/ lost+found/ opt/ sbin/ var/
boot/ home/ mnt/ proc/ tmp/
dev/ lib/ net/ root/ usr/
ให้ทดลองใช้คำสั่ง ls กับไดเรกทอรีอื่นๆดู โดยทั่วไปแล้วยูนิกซ์ส่วนใหญ่ จะต้องมีการระบุ option ด้วย ซึ่งถ้าคุณใช้ man ดูคุณอาจจะวเห็น รูปแบบของการใช้งานคำสั่งคล้ายๆกับดังต่อไปนี้
ls [-arF] [directory]
นี่คือ รูปแบบ (template) ของคำสั่ง คุณจะสังเกตุเห็นเครื่องหมาย "[" และ "]" สิ่งที่ระบุไว้ในเครื่องหมายก้ามปูดังกล่าว หมายความว่าเป็น option เราอาจจะใส่หรือ ไม่ใส่ไว้ก็ได้
การปฏิบัติการกับไฟล์
ในระบบยูนิกซ์เป็นระบบที่เกี่ยวข้องกับผู้ใช้หลายคน ดังนั้นระบบยูนิกซ์จึงมีการกำหนดเกี่ยวกับเรื่องสิทธิ์ที่จะเข้าถึงแฟ้มข้อมูล (file permission) ในระบบได้ ซึ่งคุณสามารถจะขอดู permission ของไฟล์ได้จากคำสั่ง
$ ls -l
drwxr-xr-x 2 root root 1024 Nov 17 21:49 axhome
drwxr-xr-x 2 root root 1024 Dec 28 13:57 backup
-rw------- 1 root root 6 Mar 31 23:26 dead.letter
-rw------- 1 root root 3075 Apr 15 03:49 mbox
จะเห็นคอลัมน์แรก ซึ่งจะเป็นคอลัมน์ที่ระบุเกี่ยวกับเรื่อง permission ของไฟล์
type คือชนิดของไฟล์ ถ้าหากไม่ระบุ (-) จะหมายความว่าเป็นไฟล์ปกติ แต่ถ้าหากเป็น (d) จะหมายความว่าเป็นไดเรกทอรี และถ้าเป็น (b) จะหมายถึงเป็น device file แบบ block หากเป็น (c) หมายถึง device file แบบ character นอกจากนั้นยัง มีรูปแบบชนิดอื่นๆอีกuser permission จะระบุระดับการอนุญาตให้เข้าถึงไฟล์ในระดับผู้ใช้ (ตัวเอง)
r จะหมายถึง "อ่านไฟล์ได้" (readable)
w จะหมายถึง "เขียนไฟล์ได้" (writable)
x จะหมายถึง "สามารถเรียกใช้งานได้ หรือรันได้" (executable)
group permission จะระบุระดับการอนุญาตให้เข้าถึงไฟล์ในระดับกลุ่มผู้ใช้ (group) ซึ่งจะมีรูปแบบเหมือนกับ user permission
other permission จะระบุระดับการอนุญาตให้เข้าถึงไฟล์ในระดับผู้ใช้รายอื่นๆ ที่ไม ได้อยู่กลุ่มเดียวกัน รูปแบบก็จะเหมือนกันกับ user permission
ในระบบยูนิกซ์จะมีไฟล์ที่มองไม่เห็นอยู่ด้วย (hidden file) ซึ่งไฟล์เหล่านี้เมื่อ ใช้คำสั่ง ls ธรรมดา จะไม่สามารถมองเห็นได้ เราจะต้องใช้ option -a ดังตัวอย่าง
# ls -a
. .saves-622-daffy.kaiwal.com~
.. .seyon
.FVWM95-errors .tcshrc
.Xauthority .tin
.Xclients .xboing-scores
.Xclients,bkp .xfm
.Xdefaults .xsession
.bash_history .xsession-errors
.bash_logout axhome
.bash_profile backup
.bashrc dead.letter
.cshrc mbox
hidden file เหล่านี้จะถูกนำหน้าด้วย จุด "." ซึ่งถ้าเราไม่ใช้ option -a ก็จะ มองไม่เห็นไฟล์เหล่านั้น โดยทั่วไปมักจะใช้ไฟล์แบบนี้เพื่อเก็บข้อมูลเฉพาะของรูปแบบ การทำงานของผู้ใช้ (user environment) เช่น .bash_profile , .xsession เป็นต้น
COPY
เราสามารถทำการสำเนาแฟ้มข้อมูล (หรืออาจจะเป็นไดเรกทอรีด้วยก็ได้) โดยใช้คำสั่ง
cp file1 file2
คำสัjงข้างบนจะทำการสำเนาแฟ้มข้อมูล (copy) จาก file ไปเป็นชื่อ file2
REMOVE
หากต้องการทำการลบแฟ้มข้อมูล (หรืออาจจะเป็นไดเรกทอรี) ก็สามารถใช้คำสั่ง
rm filename
MOVE
เราสามารถใช้คำสั่ง mv เพื่อทำการย้ายแฟ้มจากไดเรกทอรีหนึ่ง ไปสู่อีกไดเรกทอรีหนึ่ง
mv filename directory
คำสั่งข้างบนจะทำการย้ายแฟ้มชื่อ filename จากไดเรกทอรีปัจจุบัน ไปสู่ไดเรกทอรีที่ ชื่อ directory นอกจากนี้เราสามารถใช้คำสั่ง mv เพื่อใช้ทำการเปลี่ยนชื่อไฟล์ได้
mv file1 file2
คำสั่งนี้จะทำการเปลี่ยนชื่อจาก file1 ไปเป็นชื่อ file2
ไม่มีความคิดเห็น:
แสดงความคิดเห็น