# พื้นฐานเบื้องต้นของยูนิกซ์และลีนุกซ์

เอาล่ะ คุณอ่านข้อมูลของลีนุกซ์มาพอสมควรแล้ว และคุณก็ตื่นเต้นที่จะได้ใช้งานมัน คุณรู้สึกว่าอยากจะเข้าไปสำรวจโลกแห่งใหม่นี้เต็มที และมันก็ไม่สามารถห้ามคุณไม่ให้ซื้อลีนุกซ์จากดิสตริบิวเตอร์ดีๆซักชุดหนึ่งมาติดตั้ง ข้อมูลคำแนะนำคร่าวๆ เกี่ยวกับการติดตั้งคุณก็อ่านจนหมด จนจำได้แทบขึ้นใจแล้วทั้งภาษาไทยและภาษาอังกฤษ ทีนี้คุณก็ลงมือติดตั้งจริงๆ
และแล้วหลังจากความพยายามอันยาวนานของคุณ เครื่องพีซีของคุณก็เริ่มบูตลีนุกซ์ และต้อนรับคุณด้วยหน้าจอรับชื่อผู้ใช้และรหัสผ่าน จะสังเกตุเห็นว่าลักษณะคล้ายกับ เวลาต่อโมเด็มเข้าไปที่โฮสต์ของ ISP (Internet Service Provider) เมื่อเราต้องการจะใช้งานอินเทอร์เนต
คุณได้ใส่ชื่อผู้ใช้ ถ้าคุณเป็นคนติดตั้งเอง แน่นอนที่ว่าคุณจะต้องใส่ชื่อผู้ใช้เป็น root ซึ่งแสดงถึงความเป็น super user ซึ่งเป็นเจ้าของระบบและตามด้วยรหัสผ่านที่คุณได้ให้ไว้ในขั้นตอนการติดตั้ง

    Login    : root
    Password : ********

เมื่อคุณใส่รหัสผ่านได้ถูกต้อง ระบบจะอนุญาตให้คุณเข้ามาใช้งานในระบบได้ ซึ่งจะแสดงเครื่องหมายพร้อมพท์ เตรียมรับคำสั่ง ในกรณีที่ทำการล็อกอินเข้ามาด้วย super user เครื่องหมายพร้อมพท์จะแสดงเป็น "#" แต่ถ้าเข้ามาในฐานะผู้ใช้ปกติเครื่องหมายจะแสดงเป็น "$"
ทีนี้คุณก็สามารถเข้ามาในระบบแล้ว และก็น่าจะลองสั่งแสดงชื่อไฟล์ดูสักหน่อยโดยใช้คำสั่ง ls ซึ่งย่อมาจาก list directory

    # ls
    mbox

คำสั่งนี้จะคล้ายกับ DIR ในดอสและมันก็แสดงรายชื่อไฟล์ออกมา ซึ่งตอนนี้มีอยู่หนึ่งไฟล์คือ mbox
คำสั่งในยูนิกซ์จะแตกต่างจากดอส คือเป็นลักษณะที่เรียกว่า case-sensitive หมายความว่าตัวอักษรตัวใหญ่ และตัวอักษรตัวเล็กจะมีความแตกต่างกัน เช่น cat และ Cat จะมีความแตกต่างกัน ดังนั้นเราจะต้องระวังสะกดตัวอักษรให้ถูกต้องตามคำสั่งที่มีอยู่ในคู่มือด้วย
พักกันก่อน ตอนนี้คุณควรเรียนรู้คำสั่งที่สำคัญสองคำสั่ง คำสั่งแรก คือคำสั่งเมื่อคุณจะเลิกใช้งานระบบ ถ้าคุณต้องการพักการใช้งาน เพื่อเข้าไปใช้อีกครั้งโดยใช้ชื่อล็อกอินของผู้ใช้คนอื่น คุณต้องใช้คำสั่ง
logout
หรือ
exit
และแล้วคุณก็จะกลับออกมาสู่หน้าจอ ของการรอรับชื่อผู้ใช้และรหัสผ่านอีกครั้งหนึ่ง แต่ในกรณีที่คุณต้องการจะเลิกใช้งานเลย คุณจะปิดเครื่องเฉยๆเลยเหมือนกับการใช้งานดอสไม่ได้ คุณจะต้องสั่งให้ระบบทำการเก็บข้อมูลทุกสิ่งทุกอย่างจากหน่วยความจำลงไปเก็บไว้ในฮาร์ดดิสก์ทั้งหมด และบางทีอาจจะต้องมีการหยุดโปรแกรมที่รันทิ้งไว้ในหน่วยความจำบางงาน ไม่ต้องเป็นกังวลกับงานพวกนี้ คุณใช้แค่คำสั่งเดียวเท่านั้น แต่อย่าลืม คุณจำเป็นจะต้องเป็น root หรือเป็นผู้ใช้ที่มีฐานะเทียบเท่ากับ root

    # /sbin/shutdown -h now  	สั่งชัตดาวน์ (ยุติการทำงานระบบ) และหยุดเครื่อง
    # /sbin/shutdown -r now		สั่งชัตดาวน์ และให้ระบบทำการบูตใหม่

พารามิเตอร์ "now" ข้างหลังคือบอกให้กระทำคำสั่งในทันที ถ้าใส่ตัวเลขก็จะถือเป็นการ หน่วงเวลาก่อนจะกระทำคำสั่ง เมื่อชัตดาวน์เสร็จแล้วและถ้าเป็นการสั่งแบบหยุดเครื่อง คุณก็สามารถปิดสวิทช์เครื่องของคุณได้เลย
ในกรณีที่คุณเข้าใช้งานด้วย ชื่อทะเบียนผู้ใช้ธรรมดา และต้องการเปลี่ยนระดับ (permission) ไปเป็น root ก็ให้ใช้คำสั่ง

    $ su root (หรือ su เฉยๆ)
    password : ********

    # 			<--- สังเกตที่พร้อมพท์ '#' หมายความว่าคุณมีฐานะเทียบ
    			     เท่า root แล้ว

คราวนี้คุณก็สามารถสั่งชัตดาวน์ตามคำสั่งข้างบนได้
แล้วจะทำอะไรต่อ? ใจเย็นๆครับค่อยๆอ่านบทความต่อไป จะเป็นการแนะนำระบบคร่าวๆของยูนิกซ์และลีนุกซ์

### เชลล์ (Shell)

เนื่องจากลีนุกซ์ถูกพัฒนาขึ้นมาโดยอาศัยรูปแบบส่วนใหญ่มาจากยูนิกซ์ และผู้พัฒนาระยะ แรกๆก็เป็นผู้เชี่ยวชาญยูนิกซ์เป็นส่วนใหญ่ ดังนั้นหากเรียนรู้ยูนิกซ์เราก็จะรู้ลีนุกซ์ด้วยเช่นเดียวกัน
เมื่อเราทำการล็อกอินเข้ามาใช้งานในระบบ เราสามารถจะติดต่อกับเครื่องคอมพิวเตอร์โดยผ่านโปรแกรมที่เรียกว่า "เชลล์" โดยที่เชลล์จะทำหน้าที่ตีความคำสั่งที่ได้รับจากผู้ใช้ส่งต่อไปยังคอมพิวเตอร์ และรับผลลัพธ์จากคอมพิวเตอร์มาแสดงให้กับผู้ใช้อีกทีหนึ่ง นั่นคือเชลล์จะทำหน้าที่เป็นตัวกลางคอยประสานงานการใช้งานระหว่างผู้ใช้และคอมพิวเตอร์ ในดอสจะมีโปรแกรมอยู่ตัวหนึ่งที่ทำหน้าที่คล้ายกับเชลล์ ก็คือโปรแกรม COMMAND.COM แต่มีความซับซ้อนน้อยกว่าเชลล์ในยูนิกซ์มาก เราสามารถจะเขียนโปรแกรมให้ใช้งานกับเชลล์ได้ ซึ่งจะเรียกว่า เชลล์สคริปต์ (shell script) จะคล้ายกับ BATCH FILE บนดอสแต่มีประสิทธิภาพสูงกว่า
เชลล์บนยูนิกซ์จะมีที่นิยมใช้กันอยู่สองแบบคือ Bourne shells ซึ่งถูกเรียกตามผู้คิด คนแรกก็คือ Steven Bourne และเชลล์อีกแบบก็คือ C shells โดยผู้เขียนคนแรก ก็คือ Bill Joy (เป็นคนเขียน vi บนยูนิกซ์ด้วยเช่นกัน) ปัจจุบัน Bill Joy ทำงาน ให้กับบริษัท Sun Microsystems (เขาเป็นผู้ร่วมก่อตั้งบริษัทคนหนึ่งด้วย)
สำหรับเชลล์ที่นิยมใช้งานกันอยู่บนลีนุกซ์ก็คือ bash (Bourne Again Shell) ซึ่งเป็น เชลล์ที่พัฒนามาจาก Bourne shells โดย Free Software Foundation มีการเพิ่มความสามารถบางอย่างจาก Bourne shells และใส่คุณลักษณ์บางอย่างของ C shells เข้ามาด้วย
เมื่อคุณทำการล็อกอินได้สำเร็จ bash จะทำการแสดงพร้อมพต์ออกมารอรับคำสั่ง นั่นคือ คุณได้สั่งให้มีการใช้งานโปรแกรมแรกบนลีนุกซ์แล้ว นั่นก็คือโปรแกรม bash นั่นเอง
ข้อควรจำ :
สิ่งที่สำคัญอย่างหนึ่งสำหรับการทำงานบนระบบยูนิกซ์ (อันที่จริงก็จำเป็นสำหรับระบบ คอมพิวเตอร์ทั่วๆไปด้วย) ก็คือ หากคุณมีการจะทดลองแก้ไข หรือเปลี่ยนแปลงอะไร บางอย่างกับระบบของคุณ คุณจำเป็นจะต้องทำการสำรองข้อมูลเสียก่อน

### การใช้คำสั่งบนลีนุกซ์

คำสั่งแรกก็คือ cat ให้ทดลองพิมพ์คำว่า cat ที่พร้อมพต์แล้วกดปุ่ม Enter
$ cat
จะปรากฎเคอร์เซอร์รอรับคำสั่งในบรรทัดถัดมา ให้ทดลองพิมพ์ประโยคลงไปสักหนึ่งบรรทัด กดปุ่ม Enter แล้วตรวจผลที่เกิดขึ้น
$ cat
This is a cat
This is a cat
จะสังเกตุเห็นว่า เมื่อเราพิมพ์ประโยคใดลงไป cat จะพิมพ์ประโยคที่เราพิมพ์นั้นออกมาที่หน้าจอภาพ หากต้องการจะออกจากโปรแกรม cat ให้กดปุ่ม Ctrl-d ซึ่งจะหมายถึง การส่งสัญลักษณ์ end-of-file (EOF) ไปให้กับโปรแกรม นั่นหมายความว่าเรา (หรืออาจเป็นโปรแกรมอื่นๆ) ได้บอกกับโปรแกรม cat ให้ทราบว่า จบการอ่านข้อมูลแล้ว โปรแกรม cat จะรับทราบและหยุดการทำงาน โปรแกรมลักษณะเดียวกับ cat นี้มีมากบนยูนิกซ์ และโดยมากมักจะมีขนาดเล็กและมีจุดมุ่งหมายในการใช้งานจำเพาะ ซึ่งมักจะเรียกว่า utility program และโดยมากเราสามารถกดปุ่ม Ctrl-d เพื่อทำการเลิกใช้งาน utility program เหล่านั้นได้ ให้ทดลองใช้งานโปรแกรม sort แล้วสังเกตุผลลัพธ์ที่เกิดขึ้นว่า มันทำงานอย่างไร
หากคุณทดลองเรียกใช้งานโปรแกรม sort แล้ว และลองพิมพ์ข้อมูลลงไปสองบรรทัด และจบการทำงานของโปรแกรมด้วยการกด Ctrl-d คุณจะเห็นว่ามันจะทำการพิมพ์ผลลัพธ์ออกมาสองบรรทัดซึ่งเป็นข้อมูลที่คุณพิมพ์เข้าไป แต่พิมพ์ออกมาในลักษณะที่เรียงลำดับกัน

### ขอความช่วยเหลือจากระบบ

ระบบยูนิกซ์จะมีระบบให้ความช่วยเหลือ ซึ่งเป็นเอกสารที่อธิบายความหมายและการใช้งาน คำสั่งต่างๆให้ทราบอย่างคร่าวๆ ซึ่งจะคล้ายกับ help ในดอส แต่ในยูนิกซ์คุณจะต้องใช้
คำสั่ง man ซึ่งย่อมาจาก manual
ตัวอย่าง ถ้าคุณต้องการจะทราบรายละเอียดเกี่ยวกับคำสั่ง cat ให้คุณใช้คำสั่งดังนี้

    $ man cat
    CAT(1)                                                     CAT(1)

    NAME
           cat - concatenate files and print on the standard output

    SYNOPSIS
           cat     [-benstuvAET]    [--number]    [--number-nonblank]
           [--squeeze-blank]    [--show-nonprinting]    [--show-ends]
           [--show-tabs]  [--show-all] [--help] [--version] [file...]

    DESCRIPTION
           This documentation is no longer being maintained  and  may
           be inaccurate or incomplete.  The Texinfo documentation is
           now the authoritative source.

           This manual page documents the GNU version  of  cat.   cat
           writes  the  contents  of each given file, or the standard
           input if none are given or when a file named `-' is given,
           to the standard output.

       OPTIONS
           -b, --number-nonblank

คำสั่งนี้จะแสดงรายละเอียดเกี่ยวกับคำสั่ง man มาหนึ่งหน้า ซึ่งบางทีคุณอาจจะไม่เข้าใจทั้งหมด ทั้งนี้เราจะต้องมีความรู้ของยูนิกซ์บางอย่างก่อน และโชคร้ายที่ไม่มีคำอธิบายคำสั่งบนยูนิกซ์ออกมาเป็นภาษาไทย เนื่องจากยังไม่มีผู้คิดจะทำ
ในด้านล่างของคำอธิบาย จะมีเครื่องหมาย ":" หรือ "-more-,Line1" หรือที่คล้ายกัน ซึ่งเป็นเครื่องหมายพร้อมพต์ของโปรแกรม more หรือ page (แล้วแต่กรณี) จุดประสงค์คือ เนื่องจากคำอธิบายคำสั่งของยูนิกซ์นั้น อาจมีความยาวมากกว่าหนึ่งหน้า ดังนั้นการใช้ more หรือ page เข้ามาช่วย จะทำให้เราสามารถหยุดอ่านเอกสารในแต่ละหน้าได้ทัน คุณสามารถกดปุ่ม spacebar เพื่อสั่งให้เปิดคำอธิบายในหน้าถัดไป หรือกดปุ่ม q เพื่อออกจากระบบให้ความช่วยเหลือ
หากคุณต้องการค้นหาหัวข้อเกี่ยวกับคำ (keyword) ที่คุณสนใจ ตัวอย่างเช่นคุณอาจสนใจ คำว่า "ps" หรือ "Postscript" และคุณต้องการคำอธิบายเพิ่มเติม คุณสามารถใช้ man เข้ามาช่วยในกรณีนี้ได้โดยใช้คำสั่ง
man -k ps
และ
man -k Postscript
man จะทำการแสดงหัวข้อที่เกี่ยวข้องกับที่เราต้องการค้นหาออกมา วิธีนี้จะมีประโยชน ในกรณีที่คุณไปเจอ keyword หรือคำที่คุณไม่ทราบความหมายต่างๆ

### โครงสร้างของระบบไฟล์และไดเรกทอรี

ในระบบยูนิกซ์ทำการเก็บข้อมูลโดยใช้ ไฟล์ และ ไดเรกทอรี เข้ามาช่วย โดยจะมีลักษณะเป็นรูปแบบของ 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 เราอาจจะใส่หรือ ไม่ใส่ไว้ก็ได้

### การปฏิบัติการกับไดเรกทอรี

หากคุณต้องการอยากจะทราบว่าคุณกำลังอยู่ ณ ไดเรกทอรีไหนในขณะนี้ คุณสามารถใช้คำสั่ง
pwd
เพื่อให้แสดงชื่อของไดเรกทอรีที่คุณกำลังอยู่ในขณะนั้นออกมาได้ (current directory) pwd ย่อมาจากคำว่า print work directory
และถ้าคุณต้องการย้ายเปลี่ยนไปอยู่ไดเรกทอรีอื่น คุณสามารถใช้คำสั่ง cd ได้ คำสั่ง นี้โดยมีรูปแบบคือ
cd [directory]
โดยถ้าหากคุณสั่ง cd เฉยๆ จะหมายความว่า คุณต้องการจะกลับไปที่ไดเรกทอรีแรกสุดที่ คุณเข้ามาหลังจากทำการล็อกอิน (home directory)
ในทุกไดเรกทอรีจะมีรูปแบบที่ใช้การอ้างถึง ไดเรกทอรีที่อยู่ลำดับเหนือขึ้นไป และ ไดเรกทอรีที่หมายถึงไดเรกทอรีตนเอง คือ
cd .. หมายถึงต้องการย้ายไปอยู่ไดเรกทอรีที่อยู่ลำดับเหนือขึ้นไปและ cd . หมายถึงระบุไดเรกทอรีตนเอง (current directory)
ดังนั้นการอ้างชื่อของไฟล์ note ข้างบนนอกจากจะอ้างด้วยชื่อเต็มและชื่อแบบสั้นแล้ว ยังสามารถอ้างได้อีกแบบ (ในกรณีที่ไดเรกทอรีปัจจุบันเป็น "/home/mary") คือ
./note
และถ้าหากคุณต้องการสร้างไดเรกทอรีใหม่ คุณสามารถใช้คำสั่ง
mkdir [directory]
หากต้องการลบไดเรกทอรี ก็ให้ใช้คำสั่ง
rm [directory]

### การปฏิบัติการกับไฟล์

ในระบบยูนิกซ์เป็นระบบที่เกี่ยวข้องกับผู้ใช้หลายคน ดังนั้นระบบยูนิกซ์จึงมีการกำหนดเกี่ยวกับเรื่องสิทธิ์ที่จะเข้าถึงแฟ้มข้อมูล (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
คำสั่งข้างบนจะทำการสำเนาแฟ้มข้อมูล (copy) จาก file ไปเป็นชื่อ file2

### REMOVE

หากต้องการทำการลบแฟ้มข้อมูล (หรืออาจจะเป็นไดเรกทอรี) ก็สามารถใช้คำสั่ง
rm filename

### MOVE

เราสามารถใช้คำสั่ง mv เพื่อทำการย้ายแฟ้มจากไดเรกทอรีหนึ่ง ไปสู่อีกไดเรกทอรีหนึ่ง
mv filename directory
คำสั่งข้างบนจะทำการย้ายแฟ้มชื่อ filename จากไดเรกทอรีปัจจุบัน ไปสู่ไดเรกทอรีที่ ชื่อ directory นอกจากนี้เราสามารถใช้คำสั่ง mv เพื่อใช้ทำการเปลี่ยนชื่อไฟล์ได้
mv file1 file2
คำสั่งนี้จะทำการเปลี่ยนชื่อจาก file1 ไปเป็นชื่อ file2

HTML developed by Kaiwal Development Team (kaiwal@geocities.com)