คำสั่งของ Unix ระบบแฟ้ม ---------- ระบบแฟ้มในระบบปฏิบัติการ Unix ประกอบด้วยแฟ้มและไดเรกทอรี ซึ่งมีการจัดตำแหน่งตามลำดับชั้น (hierachy) เป็นโครงสร้างแบบต้นไม้ ชนิด multiway tree การระบุแฟ้มและไดเรกทอรีจึงต้องกำหนดเส้นทางในโครงสร้างไปยังแฟ้มหรือไดเรกทอรที่ต้องการ เส้นทาง (path) ไปยังแฟ้มและไดเรกทอรีใช้ "/" (forward slash) ในการคั่นชื่อต่างๆ ที่ใช้ในเส้นทาง เช่น / "root" - ไดเรกทอรีเริ่มต้นของระบบแฟ้ม /usr usr เป็นไดเรกทอรีย่อยใน root directory /usr/bin bin เป็นไดเรกทอรีย่อยใน usr ซึ่งเป็นไดเรกทอรีย่อยใน root /usr/bin/vi vi เป็นแฟ้มโปรแกรมในไดเรกทอรี bin การเปลี่ยนตำแหน่งในระบบแฟ้ม ---------------------------------- pwd แสดง "present working directory" หรือไดเรกทอรีที่กำหลังทำงานอยู่ในปัจจุบัน การอ้างถึงชื่อแฟ้มในไดเรกทอรี นี้สามารถใช้ชื่อแฟ้มได้โดยตรง ไม่จำเป็นต้องระบุเส้นทาง cd กำหนดให้ไดเรกทอรีปัจจุบันเป็น home directory หรือไดเรกทอรีแรกทีระบบกำหนดให้เมื่อผู้ใช้ login เข้าสู่ระบบ และเป็นไดเรกทอรีสำหรับทำงานที่อยู่บนสุดของผู้ใช้นั้น cd /usr/bin เปลี่ยนไดเรกทอรีปัจจุบัน จากไดเรกทอรีที่เคยใช้งานอยู่เดิมเป็น /usr/bin cd /886326 เปลี่ยนไดเรกทอรีปัจจุบันเป็น 886326 ซึ่งเป็นไดเรกทอรีย่อยที่อยู่ในไดเรกทอรีเดิม cd .. เปลี่ยนไดเรกทอรีปัจจุบันให้เป็นไดเรกทอรีที่อยู่สูงขึ้นไปหนึ่งระดับ หรือเปลี่ยนไดเรกทอรีปัจจุบันเป็น parent directory cd $WORK เปลี่ยนไดเรกทอรีปัจจุบันให้เป็นไดเรกทอรีที่มีเส้นทางอยู่ในตัวแปร WORK ซึ่งเป็นตัวแปรของระบบ (System variable หรือ Environment variable) cd student เปลี่ยนไดเรกทอรีปัจจุบันให้เป็นไดเรกทอรี student ซึ่งเป็นไดเรกทอรีย่อยใน home directory ของผู้ใช้นั้น แสดงรายการที่อยู่ในไดเรกทอรี --------------------------------- ls แสดงรายชื่อ "แฟ้ม" และไดเรกทอรีย่อยที่มีอยู่ในไดเรกทอรีปัจจุบัน ls -l แสดงรายชื่อแฟ้มพร้อมด้วยรายละเอียด เรียกว่า long format ls -a แสดงรายชื่อแฟ้มทั้งหมด รวมทั้งแฟ้มซ่อน (hidden file) ซึ่งเป็นแฟ้มที่อักษรตัวแรกเป็นเครื่องหมายจุด แฟ้มซ่อนส่วนใหญ่ อยู่ใน home directory และเป็นแฟ้มสำหรับกำหนดและปรับแต่งการทำงานของโปรแกรม มีชื่อเรียกโดยทั่วไปว่า configuration file และมีชื่อเรียกเฉพาะใน Unix ว่า Run Control (rc) เช่น - .exrc เป็นแฟ้มกำหนดการทำงานของโปรแกรม vi ซึ่งเป็นโปรแกรม editor ชนิดทำงานเต็มหน้าจอ (Visual editor) โดยพัฒนาต่อมาจากโปรแกรม ex ซึ่งเป็นโปรแกรม editor ที่ทำงานได้ทีละบรรทัด (Line editor) และยังคงใช้แฟ้ม กำหนดการทำงานชื่อเดียวกับโปรแกรม ex คือ .exrc หรือ ex run control - .bash_rc แฟ้มกำหนดการทำงานของโปรแกรม bash (Bourne again shell) ซึ่งเป็น command line interface ในระบบ ปฏิบัติการ Linux ls -ld * แสดงรายชื่อแฟ้มและรายชื่อไดเรกทอรีย่อยในแบบ long format ในกรณีที่ไม่กำหนด option "d" จะแสดงรายชื่อแฟ้มใน ไดเรกทอรีย่อยเหล่านั้นด้วย กล่าวอีกนัยหนึ่งคือ optoin "d" กำหนดให้แสดงไดเรกทอรีเช่นดเดียวกับแฟ้ม การเปลี่ยนสิทธิและการเปลี่ยนคุณสมบัติของแฟ้ม ---------------------------------------------------- chmod 755 <ชื่อแฟ้ม> เปลี่ยนสิทธิในการใช้งานแฟ้มจากเดิมเป็น rwx สำหรับเจ้าของ (owner), r-x สำหรับผู้ใช้ที่อยู่ในกลุ่มเดียวกับเจ้าของ (group) และผู้ใช้อื่นในระบบ (other); 7 = 111 = rwx, 5 = 101 = r-x chgrp <ชื่อกลุ่ม> <ชื่อแฟ้ม> เปลี่ยนกลุ่มของ "แฟ้ม" จากเดิม เป็น "กลุ่ม" ที่กำหนด chown <ชื่อผู้ใช้> <ชื่อแฟ้ม> เปลี่ยนเจ้าของ "แฟ้ม" จากเดิมเป็น "ผู้ใช้" ที่ระบุชื่อ chown -R <ชื่อผู้ใช้> <ชื่อแฟ้ม> เปลี่ยนเจ้าของ "แฟ้ม" จากเดิมเป็น "ผู้ใช้" ที่ระบุชื่อแบบ Recursive จากจุดที่กำหนดลงไปตาม Directory tree จนกว่าจะหมด คำสั่งในกลุ่มนี้ผู้ที่จะเปลี่ยนแปลงสิทธิ เปลี่ยนเจ้าของ และเปลี่ยนกลุ่ม ต้องเป็นเจ้าของแฟ้มหรือไดเรกทอรีที่ต้องการดำเนินการ หรือเป็น ผู้ดูแลระบบ (ผู้ใช้ root) การย้าย เปลี่ยนชื่อ และการคัดลอกแฟ้ม ------------------------------------------ cp <ชื่อแฟ้มต้นฉบับ> <ชื่อแฟ้มปลายทาง> คัดลอกแฟ้มต้นฉบับ (source) ไปยังแฟ้มปลายทาง (destination) mv <ชื่อแฟ้มเดิม> <ชื่อแฟ้มใหม่> "เปลี่ยน" ชื่อแฟ้มจากชื่อแฟ้มเดิมเป็นชื่อแฟ้มใหม่ mv <ชื่อแฟ้ม> <ชื่อไดเรกทอรี> "ย้าย" แฟ้มที่กำหนดจากที่เดิมไปยังไดเรกทอรีที่กำหนด เช่น mv myfile mydir ย้าย myfile ซึ่งเป็นแฟ้มในไดเรกทอรีปัจจุบัน ไปยัง mydir ซึ่งเป็นไดเรกทอรีย่อยของไดเรกทอรีปัจจุบัน rm <ชื่อแฟ้ม1> [<ชื่อแฟ้ม2>, ... ] นำแฟ้มที่กำหนดออกจากระบบแฟ้ม (remove) หรือ "ลบ" (delete) แฟ้มที่กำหนด สามารถลบแฟ้มที่กำหนดชื่อได้หลายแฟ้มในคำสั่งเดียว rm -r <ชื่อไดเรกทอรี1> [<ชื่อไดเรกทอรี2>, ... ] ลบแฟ้มทั้งหมดในไดเรกทอรีและลบไดเรกทอรีแบบ recursive ขอระมัดระวังให้มากในการใช้งาน mkdir <ชื่อไดเรกทอรี1> [<ชื่อไดเรกทอรี2>, ... ] สร้างไดเรกทอรีที่กำหนด ไดเรกทอรีที่จะสร้างต้องเป็นไดเรกทอรีใหม่ ยังไม่เคยมีในตำแหน่งปัจจุบัน หากมีไดเรกทอรีที่กำหนด อยู่แล้วระบบจะแสดงข่าวสารแสดงความผิดพลาดว่าไม่สามารถสร้างไดเรกทอรีได้ mkdir -p <ชื่อไดเรกทอรี> สร้างไดเรกทอรีที่กำหนด หากยังไม่มีไดเรกทอรีที่กำหนดจะทำการสร้างไดเรกทอรีนั้นให้ ในกรณีที่มีไดเรกทอรีที่กำหนดอยู่แล้ว จะไม่มีการแสดงข่าวสารแสดงความผิดพลาด rmdir <ชื่อไดเรกทอรี1> [<ชื่อไดเรกทอรี2>, ... ] "ลบ" ไดเรกทอรีว่าง ในกรณีที่เป็นไดเรกทอรีที่ยังคงมีแฟ้มอยู่จะไม่สามารถลบไดเรกทอรีนั้นได้ ต้องทำการลบแฟ้มทั้งหมดก่อน จึงจะทำการลบไดเรกทอรีนั้นได้ การใช้คำสั่ง rmdir ผู้ใช้ต้องอยู่ในระดับที่อยู่เหนือไดเรกทอรีที่ต้องการลบนั้น การดูข้อมูลในแฟ้ม -------------------- cat <ชื่อแฟ้ม> แสดงข้อมูลในแฟ้มออกทางจอภาพ โดยมองเห็นข้อมูลแต่ละไบต์เป็นรหัส ascii more <ชื่อแฟ้ม> แสดงข้อมูลในแฟ้มออกเพียงเต็มจอภาพ และหยุดรอให้ผู้ใช้สั่่งการโดยการกดแป้น สำหรับเลื่อนลงครั้งละบรรทัด, สำหรับเลื่อนลงครั้งละหนึ่งจอภาพ, และ อักษร q สำหรับเลิกทำงาน (quit) less <ชื่อแฟ้ม> ทำงานแบบเดียวกับ more แต่ผู้ใช้สามารถกดแป้น สำหรับเลื่อนขึ้นได้ด้วย head <ชื่อแฟ้ม> แสดง 10 บรรทัดแรกของแฟ้ม head -n<ชื่อแฟ้ม> แสดง n บรรทัดแรกของแฟ้ม tail <ชื่อแฟ้ม> แสดง 10 บรรทัดสุดท้ายของแฟ้ม tail -n<ชื่อแฟ้ม> แสดง n บรรทัดสุดท้ายของแฟ้ม สำหรับผู้เขียนโปรแกรม ------------------------- cat -n <ชื่อแฟ้ม> แสดงข้อมูลในแฟ้มออกทางจอภาพ โดยแสดงหมายเลขบรรทัดนำหน้าแต่ละบรรทัด cat -n <ชื่อแฟ้ม> | more แสดงข้อมูลในแฟ้มออกทางจอภาพ โดยแสดงหมายเลขบรรทัดนำหน้าแต่ละบรรทัด และเมื่อแสดงข้อมูลเต็มหน้าจอแล้ว จะหยุดรอการสั่งการจากผู้ใช้ โดยการกดแป้นเช่นเดียวกับคำสั่ง more