วันเสาร์ที่ 9 มีนาคม พ.ศ. 2556

Unix คืออะไร

Unix คืออะไร ?

อุปกรณ์ที่เป็นส่วนประกอบของคอมพิวเตอร์ก็มีมากมายหลายชิ้นแต่เคยสงสัยกันบ้างหรือเปล่าว่าเจ้าคอมพิวเตอร์ รู้จักอุปกรณ์เหล่านี้ได้อย่างไรและติดต่อรับส่งข้อมูลกับอุปกรณ์เหล่านี้ได้อย่ างไรการท่ จะทำให้คอมพิวเตอร์ใช้อุปกรณ์ เหล่านี้ร่วมกันทำงานได้ก็จะต้องมีอะไรสักอย่างหนึ่งมาดูแลควบคุมใช่ไหม?สิ่งที่ทำหน้าที่ควบคุมการทำงานของ อุปกรณ์ทั้งหมดที่รวมอยู่ในเครื่องคอมพิวเตอร์ก็คือ"ระบบปฏิบัติการ"(Operating System) หรือที่เราเรียกกันสั้นๆ ว่ า โอเอส (OS)เจ้าตัวระบบปฏิบัติการที่ว่านี้ไม่ได้ทำหน้าที่ ควบคุมการทำงานของอุปกรณ์ต่างๆเท่านั้นแต่มันยังมีหน้าที่ รับคำสั่งที่ป้อนจากผู้ใช้มาแปลเพื่อสั่งให้เครื่อง คอมพิวเตอร์ทำงานตามที่เราต้องการอีกด้วยในปัจจุบันมีระบบปฏิบัติการ มากมายหลายชนิดหลายระบบให้เลือกใช้ตามความต้องการของแต่ละบุคคล หรือ หน่วยงานเช่น ดอส (DOS) วินโดว์ส (WINDOWS)โอเอส/ทู (OS/2) ยูนิกซ์ (UNIX) เป็นต้น


ยูนิกซ์ คืออะไร

ยูนิกซ์เป็นระบบปฏิบัติการประเภทหนึ่ง ที่เป็นเทคโนโลยีแบบเปิด (open system)ซี่งเป็นแนวคิดที่ผู้ใช้ไม่ต้อง ผูกติด กับระบบใดระบบหนึ่งหรืออุปกรณ์ยี่ห้อเดียวกัน นอกจากนี้ยูนิกซ์ยังถูกออกแบบมาเพื่อตอบสนองการใช้งานใน ลักษณะให้มีผู้ใช้ได้หลายคน ในเวลาเดียวกัน เรียกว่า มัลติยูสเซอร์ (multiusers)และสามารถทำงานได้หลายๆงานใน เวลาเดียว กันในลักษณะที่เรียกว่ามัลติทาสกิ้ง (multitasking)
การเข้าใช้งานยูนิกซ์

การที่ผู้ใช้จะขอใช้บริการบนระบบยูนิกซ์ได้นั้นจะต้องได้รับอนุญาตจากผู้ดูแลระบบหรือที่เรียกว่าซิสเตมแอดมินิสเตรเตอร์ (System Administrator) ก่อน หลังจากนั้นผู้ใช้จะได้รับรายชื่อผ ู้ใช้หรือล๊อกอินเนม (login name) และรหัสผ่าน (password) มา แต่บางระบบ จะมีรายชื่ออิสระเพื่อให้ผู้ใช้ชั่วคราว โดยอาจมีล๊อกอินเนมเป็น guest,demo หรือ fieldซึ่งจะไม่ต้องใช้รหัสผ่าน การเข้าใช้ระบบเราเรีนกว่า ล๊อกอิน (login) โดยทั่วไปเมื่อระบบพร้อมที่จะให้บริการจะปรากฏข้อความว่า login:หรือข้อความใน ลักษณะที่คล้ายๆ กันรวมเรียกว่า พรอมต์ล๊อกอิน (Prompt log in)เมื่อปรากฏหรอมต์แล้วก็ให้พิมพ์ล๊อกอินเนมของผู้ใช ตามด้วย การกดปุ่มจากนั้นระบบจะสอบถามรหัสผ่าน ก็พิมพ์รหัสที่ถูกต้องลงไปตามด้วยปุ่มซึ่งรหัสผ่านที่พิมพ์ลงไปจะไม่ถูกแสดงผลออก ทางจอภาพเมื่อรหัสผ่านถูกต้องก็จะปรากฏเครื่องหมาย $ ซึ่งเป็นเครื่องหมายเตรียมพร้อมของระบบ
รูปที่ 1 แสดงการขอเข้าใช้ระบบยูนิกซ์

หมายเหตุ : ระบบปฏิบัติการยูนิกซ์จะถือความแตกต่างกันระหว่างตัวอักษรตัวเล็ก กับตัวอักษรตัวใหญ่ด้วย เช่น FILE1, File1,file1 จะไม่เหมือนกัน ดังนั้นการใส่รหัสผ่าน จะต้องเช็คให้ดี ๆ
คำสั่งพื้นฐานในการจัดการเกี่ยวกับไฟล์ในยูนิกซ์

$ ls [-altCF] [directory …]
เป็นการแสดงชื่อไฟล์ที่มีอยู่ในไดเรกทอรี่ที่ระบุ ถ้าไม่ระบุจะแสดงสิ่งที่อยู่ในรากปัจจุบัน) โดยแสดงในรูป แบบที่มีมากกว่า 1 ชื่อต่อ 1 บรรทัด คล้ายกับคำสั่ง DIR/W ระบบปฏิบัติการดอสพารามิเตอร์บางส่วนของคำสั่งเป็น ดังนี้ 
a    แสดงชื่อไฟล์ที่ซ่อนไว้
l    แสดงรายชื่อแบบยาว
t    เรียงลำดับไฟล์ตามลำดับเวลาที่มีการแก้ไขล่าสุด
C    แสดงชื่อไฟล์มากกว่าหนึ่งชื่อในแต่ละบรรทัดแต่ถูกคั่นด้วย tab
F    แสดงฃื่อรากตามด้วยเครื่องหมาย /และชื่อไฟล์ที่ทำงานได้ด้วยเครื่องหมาย *รายละเอียดของไฟล์


แสดง<wbr>คำ<wbr>สั่ง ls -al
รูปที่ 2 แสดงการใช้คำสั่ง ls

จากรูปที่ 2 จะเห็นถึงการแสดงผลของคำสั่ง ls ที่มีพารามิเตอร์ -al คือแสดงผลในแบบยาว รวมถึงไฟล์ซ่อนด้วย ซึ่งจะเห็นรายละเอียดต่าง ๆ ของไฟล์และมีบางส่วนที่ควรรู้คือ
  • คอลัมน์แรก ตัวอักษร 10 ตัวบอกประเภทของไฟล์และบอกถึงสิทธิการใช้งานไฟล์นั้น
    _ r w x r w x r w x
    อักษรตัวแรก บอกประเภทของไฟล์ สัญลักษณ์ที่ควรรู้มี 2 ตัวคือ
         "-" เป็นไฟล์ทั่วไป
         "d" เป็นไดเรกทอรี่
         "l" เป็นลิงค์ไฟล์ (ใช้การเรียกไฟล์ที่ไม่ได้อยู่ในไดเรกทอรี่ที่เราอยู่) 
    อักษร 3 ตัวกลุ่มที่ 1 บอกถึงสิทธิในการใช้ไฟล์นั้นๆของเจ้าของไฟล์หรือผู้สร้างไฟล์ (owner)
    อักษร 3 ตัวกลุ่มที่ 2 บอกถึงสิทธิในการใช้ไฟล์นั้นๆ ของกลุ่มเจ้าของไฟล์ (group)
    อักษร 3 ตัวกลุ่มที่ 3 บอกถึงสิทธิในการใช้ไฟล์นั้นๆ ของบุคคลอื่น ๆ (other) โดยที่สัญลักษณ์ของอักษรแต่ละกลุ่มจะเหมือนกันดังนี้
      • ตำแหน่งที่ 1 ของกลุ่ม "r" หมายถึงสามารถอ่านได้
      • ตำแหน่งที่ 2 ของกลุ่ม "w" หมายถึงสามารถแก้ไขได้
      • ตำแหน่งที่ 3 ของกลุ่ม "x" หมายถึงสามารถเอ็กซีคิวต์ได้ (เปิดไฟล์นั้นได้)
  • คอลัมน์ที่ 2 เป็นหมายเลขบอกถึง ไดเรกทอรี่ย่อยที่อยู่ภายใน ไฟล์ หรือไดเรกทอรี่นั้นๆถ้าเป็นไฟล์คอลัมน์นนั้นจะ เป็นหมายเลข 1 เสมอ
  • คอลัมน์ที่ 3 แสดงชื่อเจ้าของไฟล์ (owner)
  • คอลัมน์ที่ 4 แสดงชื่อของกลุ่มที่เป็นเจ้าของไฟล์ (group)
  • คอลัมน์ที่ 5 แสดงขนาดของไฟล์
  • คอลัมน์ที่ 6 แสดงวันเวลาที่แก้ไขไฟล์ล่าสุด
  • คอลัมน์สุดท้าย แสดงชื่อไฟล์ โดยถ้าเป็นไฟล์ซ่อนจะมี "."(จุด)อยู่หน้าไฟล์นั้น
$ pwd
คือคำสั่งที่ใช้เช็คว่าไดเรกทอรี่ปัจจุบันอยู่ที่ตำแหน่งใดแต่ก่อนที่เราจะมาดูรายละเอียดอื่นเรามารู้จักคำว่าไดเรกทอรี่ กันก่อนดีกว่า ไดเรกทอรี่(directory) เนื่องจากไฟล์โปรแกรม หรือข้อมูลต่าง ๆ มีเป็นจำนวนมากทำให้ยากต่อการค้นหาจึงต้องมี การจัดระบบหมวดหมู่ของไฟล์ เป็นไดเรกทอรี่โดยไดเรกทอรี่ก็เปรียบเสมือน  กล่องใบหนึ่งโดยไดเรกทอรี่ราก (root directoty) ก็เปรียบเสมือนกล่องใบใหญ่ที่สุดซึ่งจะสามารถนำกล่องใบเล็กๆซ้อนเข้าไปและนำไฟล์ซึ่งเปรียบเสมือนหนังสือจัดเก็บเป็นหมวด หมู่ภายใน กล่องเล็กๆเหล่านั้น และภายในกล่องเล็กๆนั้นก็อาจจะมีกล่องและหนังสือที่เล็กกว่าอยู่ภายในอีกด้วยเหตุนี้ไฟล์จะถูกจัด ไว้เป็นหมวดหมู่ง่ายต่อการค้นหาทีนี้เมื่อเราต้องการจะหาหนังสือสักเล่มที่อยู่ภายในกล่องนั้นเราก็ต้องรู้ว่าหนังสือเล่มนั้นอยู่ในกล่อง ไหนและกล่องที่ใส่หนังสือนั้นอยู่ภายในกล่องอื่นๆอีกหรือไม่เราเรียกเส้นทางที่อยู่ของแต่ละไฟล์ว่า "พาท" (path)


การ<wbr>ใช้<wbr>คำ<wbr>สั่ง pwd
รูปที่ 3 แสดงการทำงานของคำสั่ง pwd

จากผลลัพธ์ที่ได้จะเห็นได้ว่า user (muntana) อยู่ใน directory ของ cpc ซึ่งเป็น subdirectory ของ home และ directory homeก็จะอยู่ภายใต้ root จะสังเกตว่า เมื่อล็อกอินเข้ามาใหม่ และใช้คำสั่ง pwd จะแสดงพาทที่ตัวเองอยู่ซึ่งไม่ใช่ไดเรกทอรี่ ราก (ไม่เหมือนบนดอสหรือวินโดว์สที่เริ่มจากไดเรกทอรี่ราก) เพราะว่าในระบบยูนิกซ์จะมีโฮมไดเรกทอรี่ (home directoty) ซึ่งกำหนดโดยผู้ดูแลระบบและเราไม่สามารถเปลี่ยนได้
หมายเหตุ เมื่อใช้คำสั่ง ls -a จะปรากฎไฟล์แปลก ๆ ขึ้นมา 2 ตัวคือ "." และ ".."
ไฟล์   "." หมายถึงไดเรกทอรี่ที่เราอยู่ปัจจุบัน
 ไฟล์ ".." หมายถึงไดเรกทอรี่ที่อยู่ก่อนหน้านี้ 1 ชั้น 
เช่น ถ้าเราอยู่ที่ตำแหน่ง /home/cpc/muntana
ไฟล์ "." หมายถึง /home/cpc/muntana
 ไฟล์ ".." หมายถึง /home/cpc
$ cd [ชื่อพาท]
เป็นการเปลี่ยนไดเรกทอรี่ไป เป็นไดเรกทอรี่ที่ต้องการ โดยในการใช้คำสั่งนี้ต้องคามด้วยชื่อพาท เช่น เมื่อเราอยู่ในพาท /data1/home/cpc/muntana และเมื่อเช็คดูแล้วว่ามีไดเรกทอรี่ชื่อ mail จากนั้นพิมพ์ $ cd mail  หมายความว่าเป็นการเข้าไปใน กล่องที่ชื่อ mail จากตำแหน่ง ปัจจุบัน  เพราะฉนั้นตอนนี้เราจะอยู่ใน พาท /data1/home/cpc/muntana/mail ซึ่งวิธีที่กล่าวมาเป็น การอ้างอิงสัมพันธ์กับตำแหน่งปัจจุบันแต่เรามีอีกวิธีหนึ่งคือการอ้างอิงโดยตรง ทำได้โดยการพิมพ์


 การ<wbr>ใช้<wbr>คำ<wbr>สั่ง cd
รูปที่ 4 แสดงการใช้คำสั่ง cd

            ซึ่งการอ้างอิงแบบนี้มีประโยชน์เมื่อมีการอ้างถึงไดเรกทอรี่ที่ไม่อยู่ติดกันจะสะดวกกว่าในกรณีที่เราต้องการออกจากไดเรกทอรีที่เรา อยู่ไปหนึ่งชั้นให้ใช้คำสั่ง  $ cd ..   ในกรณีที่เราต้องการกลับไปยังไดเรกทอรี่รากโดยตรงก็ใช้คำสั่ง $ cd /
หมายเหตุ  ถ้าใช้คำสั่ง $ cd โดยไม่มีพาทต่อท้ายจะเป็นการกลับมายังโฮมไดเรกทอรี่ที่กล่าวมาเเล้วข้างต้น
$ mkdir [ชื่อไดเรกทอรี่]
คือคำสั่งที่ใช้ในการสร้างไดเรกทอรี่ใหม่ขึ้น โดยอ้างอิงพาทเช่นเดียวกับคำสั่ง cd เช่น $ mkdir test  แล้วใช้คำสั่ง ls เพื่อเช็คดูจะพบไดเรกทอรี่ ชื่อ test
$ rmdir [ชื่อไดเรกทอรี่]
คือการลบไดเรกทอรี่ที่มีอยู่แต่ไดเรกทอรี่ที่ลบจะต้องไม่มีไฟล์หรือไดเรกทอรี่ย่อยอยู่ภายในนั้น
$ rm [ชื่อไฟล์]
คือการลบไฟล์ที่อ้างถึง
$ cat [ชื่อไฟล์]
เป็นการแสดงข้อความในไฟล์ที่เป็นเท็กซ์ไฟล์ (Text Files : ไฟล์ตัวอักษร) แสดงบนจอภาพ
$ mv [ชื่อไฟล์ต้นทาง] [ชื่อไฟล์ปลายทาง]
คือการย้ายไฟล์ (move) จากพาทใดๆที่อ้างอิงถึงไปยังพาทปลายทาง เช่น ถ้าเรามีไฟล์ชื่อ dead.letterอยู่ที่โฮม ไดเรกทอรี่และ เราต้องการย้ายมันไปที่ไดเรกทอรี่ mail ซึ่งอยู่ภายในโฮมไดเรกทอรี่ของเราเอง ทำได้โดยสั่ง                
$ mv /data1/home/cpc/muntana/temp /data1/home/cpc/muntana/mail                
หรือ       $ mv temp /home/cpc/muntana/mail                
หรือ       $ mv temp mail                
หรือ       $ mv temp ./mail                
หรือ       อาจจะอ้างแบบอื่นตามรูปแบบการอ้างอิงพาทก็ย่อมได้


การ<wbr>ใช้<wbr>คำ<wbr>สั่ง mv
รูปที่ 5 แสดงการใช้คำสั่ง mv

$ more
เป็นการแสดงข้อความในไฟล์ทีละหน้าจอแล้วหยุดรอจนกว่าผู้ใช้จะกดคีย์ช่องว่าง (space bar)จึงจะแสดงข้อมูลหน้า ถัดไปหรือกด Enter เพื่อแสดงข้อมูลบรรทัดถัดไปทีละบรรทัด และในขณะที่อยู่ภายในคำสั่ง more จะมีคำสั่งย่อยอีก 2 คำสั่ง คือ
               q ออกจากการทำงาน
               h ขอให้แสดงข้อความช่วยเหลือ (help)
$ cp [ชื่อไฟล์ต้นฉบับ] [ชื่อไฟล์สำเนา]
เป็นคำสั่งคัดลอก (copy) ข้อมูลจากไฟล์หนึ่ง ไปยังปลายทางที่ต้องการโดยใช้การอ้างอิงพาทลักษณะเดียวกับคำสั่ง mv การอ้างอิงชื่อไฟล์นอกจากการพิมพ์ชื่อไฟล์เต็มๆ โดยตรงแล้วยังมีการอ้างอิงถึงชื่อไฟล์โดยใช้สัญลักษณ์พิเศษอีก 2 ตัว คือ "*" และ "?"
 ? ใช้อ้างอิงแทนตัวอักษร สัญลักษณ์พิเศษ หรือ ตัวเลขใดๆ 1 ตัวอักษร เช่นเมื่อเราจะอ้างอิงถึงไฟล์ unix ? หมายถึง ไฟล์ทุก ไฟล์ที่ชื่อขึ้นต้นด้วย unix และตามด้วยตัวอะไรก็ได้อีก 1 ตัว อาจจะเป็น unixa unixx unix_ หรือ unix1 เป็นต้น
 * ใช้อ้างอิงแทนตัวอักษร สัญลักษณ์พิเศษ หรือ ตัวเลขใดๆ กี่ตัวอักษรก็ได้ เช่น เมื่อเรา อ้างอิงถึงไฟล์ unix* จะหมายถึง ไฟล์ทุกไฟล์ที่ขึ้นต้นด้วย unix โดยจะต่อท้ายด้วยตัวอะไรก็ได้กี่ตัวก็ได้ ซึ่งอาจจะเป็น unix_tue unix1234 เป็นต้น
เราสามารถนำการอ้างอิงชื่อไฟล์ข้างต้นไปใช้กับคำสั่ง ls mv cp rm ได้ เช่น
ls -al .p* หมายถึง การขอดูรายชื่อไฟล์ทุกไฟล์ที่ขึ้นต้นด้วย .p (คือเป็นไฟล์ซ่อนที่ขึ้นต้นด้วย p )
cp .pine_debug? . /mail หมายถึง การคัดลอกไฟล์ทุกไฟล์ที่ขึ้นต้นด้วย .pine_debug และตามด้วยตัวอักษรใดๆ 1 ตัว ไปยังไดเรกทอรี่ mail
คำสั่งในการตรวจสอบและติดต่อกับผู้ใช้ที่กำลังอยู่ในระบบ

$ who am i
เป็นการแสดงข้อมูลการเข้าระบบของตัวเอง
$ who
เป็นการแสดงชื่อผู้ที่ใช้ขณะนี้อยู่ในระบบที่เรากำลังใช้งานอยู่


การ<wbr>ใช้<wbr>คำ<wbr>สั่ง who
รูปที่ 6 แสดงการทำงานของคำสั่งในการตรวจสอบผู้ที่กำลังอยู่ในระบบ

$ finger [@ชื่อโฮสต์ที่ต้องการทราบ]
เป็นคำสั่งแสดงรายชื่อของผู้ใช้ที่ติดต่ออยู่กับโฮสต์ต่างๆ ตามที่ต้องการ เช่นเราต้องการทราบว่าโฮสต์ของมหาวิทยาลัยเกษตรศษสตร์ที่ชื่อ std มีใครใช้อยู่บ้าง ก็จะใช้คำสั่ง $ finger @std.cpc.ku.ac.th แสดงดังรูปที่ 7

การ<wbr>ใช้<wbr>คำ<wbr>สั่ง finger
รูปที่ 7 แสดงการใช้คำสั่ง finger
 
 จากรูปที่ 7 จากคำสั่ง finger จะแสดงให้เห็นเป็นคอลัมน์ ดังนี้
คอลัมน์แรกจะแสดงรายชื่อล็อกอิน (Login Name)
คอลัมน์ที่สองจะแสดงชื่อเต็มของบุคคลนั้น
คอลัมน์ที่สามจะแสดงถึงพอร์ตที่เครื่องคมพิวเตอร์ติดต่อเข้ามา และถ้าสังเกตให้ดีจะเห็นว่าบางพอร์ตจะมีเครื่องหมาย * อยู่ข้างหน้าคอลัมน์นี้ซึ่งแสดงว่า บุคคลนั้นไม่รับการติดต่อจากบุคคลอื่น
คอลัมน์ที่สี่จะแสดงให้เห็นถึงเวลาที่บุคคลนั้นไม่มีการโต้ตอบกับเครื่องเลย (idle)
คอลัมน์ที่ห้าจะแสดงถึงเวลาที่บุคคลนั้นล็อกอิน (login) เข้ามาที่เครื่องนี้
คอลัมน์สุดท้ายจะแสดงถึงชื่อเครื่องที่ใช้เชื่อมเข้ามาในระบบ อาจจะล็อกอินเข้ามาจาก Modem หรือจากเครื่องอื่น ๆ
ในกรณีที่ใช้คำสั่ง finger โดยไม่ใส่ชื่อโฮสต์ จะหมายถึง เป็นการขอดูรายชื่อผู้ใช้โฮสต์ที่ผู้ใช้ทำการล็อกอินเข้าไป (คล้ายคำสั่ง who)
$ talk [ชื่อแอคเคาท์@ชื่อโฮสต์ที่บุคคลนั้นใช้งานอยู่]
เป็นคำสั่งที่ใช้ในการขอสนทนากับบุคคลที่ต้องการแต่มีข้อแม้ว่าบุคคลนั้นจะต้องไม่มีเครื่องหมาย "*" อยู่หน้าคอลัมน์ที่ 3 โดย รูปแบบของการคุย จะแบ่งหน้าจอออกเป็น 2 ส่วน บน ล่าง โดยส่วนบน คือตัวเรา และส่วนล่างคือบุคคลที่เราติดต่อเข้าไปการ ออกจาก talk ทำได้โดยกดปุ่ม Ctrl+C
$ write [ชื่อแอคเคาท์)
เป็นคำสั่งที่ใช้ในการส่งข้อความไปยังบุคลที่ต้องการแต่บุคคลนั้นต้องใช้งานอยู่ภายในโฮสต์เดียวกัน และไม่มีเครื่องหมาย "*" หน้าคอลัมน์ ที่ 3 จึงจะสามารถส่งข้อความไปได้ เมื่อใช้คำสั่ง write ไปแล้ว เคอร์เซอร์จะขึ้นบรรทัดใหม่จากนั้นก็พิมพ์ข้อความ ที่ต้องการได้ข้อความที่พิมพ์จะถูก ส่งไปหลังการกด Enter การออกจาก write ทำเช่นเดียวกับการออกจาก talk คือ กดปุ่ม Ctrl+C
$ mesg [n,y]
เป็นคำสั่งที่ใช้ในการกำหนดว่าเราจะรับการติดต่อจากบุคคลอื่นหรือไม่ คือถ้าใช้คำสั่ง
$ mesg n จะเป็นการกำหนดให้ตัวเองไม่รับการติดต่อจากบุคคลอื่น คือบุคคลอื่นจะไม่สามารถ talk หรือ write เข้ามาได้ และตัวเองก็จะไม่สามารถ talk หรือ write ไปหา ผู้อื่นได้เช่นกัน (แต่การส่งและรับ mail ยังทำได้ตามปกติ)
$ mesg y จะเป็นการกำหนดให้ตัวเองรับการติดต่อจากบุลคลอื่น

ไม่มีความคิดเห็น:

แสดงความคิดเห็น