Introduction to Unix I
1. แนะนำให้เห็นความสำคัญของระบบ Unix
2. เข้าใจลักษณะพื้นฐานของระบบ Unix
3. สามารถใช้คำสั่งพื้นฐานในระบบ Unix ได้
ตอนที่ 3: การพิมพ์คำสั่งในระบบ Unix (Typing Unix Commands)
ตอนที่ 4: คำสั่งเพื่อใช้งานในขั้นแรก (Commands to Use Right Away)
ตอนที่ 5: ระบบความช่วยเหลือของ Unix (Unix Help)
ตอนที่ 6: ระบบแฟ้มข้อมูลของ Unix (The Unix File System)ตอนที่ 7: การทำงานกับไดเร็คทอรี่ (Working with Directories)
ตอนที่ 8: การทำงานกับแฟ้มข้อมูล (Working with Files)
ตอนที่ 9: การเปลี่ยนทิศทางของ Input และ Output (I/O redirection)ระบบปฏิบัติการ Unix เป็นระบบที่ได้มีการพัฒนาการมาประมาณ 30 ปีแล้วเริ่มจากห้องปฏิบัติการทางคอมพิวเตอร์ Bell Labs โดย Ken Thomson และ Dennis Ritchie จนปัจจุบันกลายเป็นระบบปฏิบัติการที่มีผู้นิยมใช้กันอย่างกว้างขวาง ตั้งแต่เครื่องขนาดเล็ก (Micro-computer) ซึ่งมี resource จำกัด จนถึงเครื่องขนาดใหญ่ (Main frame) และ Supercomputer การเติบโตของ Unix มีอัตราสูงและรวดเร็ว ทั้งนี้เพราะความสามารถ ความคล่องตัวง่ายในการใช้ และเครื่องมือต่างๆมากมายที่ระบบ Unix มีให้
ระบบ Unix ได้สร้างขึ้นมาในช่วงปลายทศวรรษ 1960 เพื่อให้ทำงานกับคอมพิวเตอร์ขนาดใหญ่ เป้าหมายของการออกแบบที่วางไว้กว้าง และคำสั่งที่ออกแบบมาก็จะไม่ใช่เพื่อแก้ปัญหาทุกกรณี คำสั่งต่าง ๆ จะออกแบบให้ทำงานใดงานหนึ่งซึ่งเป็นงานเล็ก ๆ เพียงงานเดียว ซึ่งทำให้ทำงานได้ดีและเร็ว ตัวอย่างเช่น คำสั่งเพื่อแสดงข้อมูลในแฟ้ม จะไม่ทำเกี่ยวกับการจัดหน้า หรือการพิมพ์ออกทางเครื่องพิมพ์จะมีคำสั่งที่ทำหน้าที่ย่อย ๆ เหล่านี้อีกต่างหาก
การยึดมั่นในหลักการนี้ก่อให้เกิดลักษณะเด่น คือ ประการแรก งานใหม่ ๆ สามารถทำได้ด้วยคำสั่งอื่นๆ ที่มีอยู่แล้วได้ โดยอาศัยแนวคิดเรื่อง standard input and output และ command pipelines ประการที่สอง การพัฒนาคำสั่งใหม่ ๆ และงานอื่น ๆ ทำได้ง่าย ประการที่สาม ทำให้ระบบ Unix มีคำสั่งที่เป็น utility มากมายกว่าระบบปฏิบัติการอื่นๆ
ลักษณะเด่นหลายประการใน Unix เช่น การจัดโครงสร้างแฟ้มข้อมูลแบบ hierarchy (tree) แนวคิดเกี่ยวกับ I/O redirectional และการทำ pipe process ได้เป็นที่ยอมรับและใช้ในระบบปฏิบัติการอื่น ๆ ด้วย การเรียนรู้เกี่ยวกับ Unix จึงเป็นพื้นฐานของการเรียนรู้ระบบปฏิบัติการสมัยใหม่ นอกจากนี้การที่ Unix เป็นระบบปฏิบัติการที่มีใช้อย่างกว้างขวางในเครื่องทุกระดับ การเรียนรู้เกี่ยวกับ Unix จึงมีประโยชน์มาก
Unix ตระกูลหลัก ๆ ได้แก่ System V ซึ่งเป็นระบบ Unix ที่พัฒนาขึ้นใน Bell Labs และ Berkeley Unix ซึ่งมีชื่ออย่างเป็นทางการว่า BSD (มาจากคำเต็มว่า Berkeley Software Distribution) ในวงการวิจัยและการศึกษาส่วนใหญ่จะใช้ระบบ Unix ซึ่งใช้ระบบหนึ่งในสองระบบนี้หรือทั้งสองระบบเป็นพื้นฐาน
ตารางต่อไปนี้ แสดงถึงชื่อของระบบ Unix ที่พบเห็นได้ทั่วไป
ชื่อของระบบ Unix | บริษัท |
AIX | IBM |
Dynix | Sequent |
HP/UX | Hewlett-Packard (HP) |
Linux | หาได้ฟรีบน Internet |
Nextstep | Next |
SCO Unix | Santa Cruz Operation |
Solaris | Sun Microsystems |
SunOS | Sun Microsystems |
System V UNIX | PC บางชนิด |
Ultrix | Digital Equipment Corp. (DEC) |
คำถาม
1. จงยกตัวอย่าง applications ที่ใช้ในระบบ Unix มาให้มากที่สุด
2. จงยกตัวอย่าง applications ที่มีในระบบ Unix แต่ไม่มีในระบบ Windows มาอย่างน้อย 3 ชื่อ Application เหล่านี้มักจะใช้ในงานด้านไหนบ้าง
ระบบ Unix ถือว่าอักษรตัวเล็กและตัวใหญ่แตกต่างกัน ดังนั้นจะต้องใส่ให้ถูกต้อง
Login: s4XXXXXX |
พิมพ์ ID และกด Enter |
Password: |
พิมพ์ password แล้วกด Enter (จะไม่มีอะไรแสดงออกมา) |
$ | Prompt ของ Unix (อาจแสดงเป็นอย่างอื่นที่คล้ายกัน) |
วิธีการทดลอง
เปิดเครื่อง terminal รอจนกระทั่งมีคำว่า “Login:” ปรากฎขึ้น
· ใส่ Login ID แล้วกด Enter
· ใส่ Password แล้วกด Enter
จะปรากฎเครื่องหมาย prompt ของ UnixUser Interface ของ Unix เรียกว่า Shell ซึ่งจะทำหน้าที่ 4 อย่างซ้ำไปเรื่อย ๆ ดังรูปข้างล่าง
Unix มีอักษรควบคุมหรือ Control Characters เพื่อทำงานเฉพาะอย่างอยู่หลายตัว ที่สำคัญได้แก่
การลบตัวอักษร |
Control Characters ที่มีประโยชน์อื่น ๆ |
||
DELETE | ลบตัวอักษรตัวสุดท้าย |
^C | จบการทำงานของคำสั่ง |
^H | ลบตัวอักษรตัวสุดท้าย (^H หมายถึง ให้กด Ctrl และปุ่ม H พร้อมกัน) | ^S | หยุด Output (เช่น การแสดงผล) ชั่วคราว |
^W | ลบคำสุดท้าย |
^Q | แสดง Output ต่อ |
^U | ลบบรรทัดสุดท้าย |
วิธีการทดลอง
· date· cal 3 1997· who· ls –a· man cal (ให้กดแป้น spacebar เพื่อแสดงผลต่อไป และ ^C เพื่อออก)
· clear2. พิมพ์คำสั่ง cd /home เพื่อไปยังไดเร็คทอรี่ home (ซึ่งเป็นไดเร็คทอรี่แม่ของไดเร็คทอรี่ของผู้ใช้ในระบบ), พิมพ์คำสั่ง ls –al แล้วกด ^S ก่อนที่จะแสดงผลเสร็จ รอสักครู่หนึ่งแล้ว กด ^Q
การตั้งรหัสผ่าน
ใช้คำสั่ง passwd แล้วระบบจะถามรหัสผ่านปัจจุบัน แล้วให้ใส่รหัสผ่านใหม่ 2 ครั้ง
ข้อแนะนำเกี่ยวกับรหัสผ่าน
· ห้ามบอกรหัสผ่านของคุณแก่ใคร ในระบบเครือข่ายคอมพิวเตอร์ สิ่งเดียวที่ชี้ได้ว่าคุณเป็นใครคือ account หากคนอื่นใช้ account ของคุณไปทำจารกรรมใด ๆ คุณจะต้องรับโทษโดยอ้างไม่ได้ว่าไม่ได้เป็นผู้ทำ · อย่าเขียนรหัสผ่านเอาไว้ หรือหากเขียนเอาไว้ ให้เก็บไว้ในที่ลับและไม่ควรเขียน password ตรง ๆ ให้เขียนคำที่เตือนให้นึกถึง password ก็พอ· รหัสผ่านที่ดี จะต้องยาวกว่า 8 ตัวอักษร โดยประกอบด้วยอักษรตัวเล็กและตัวใหญ่, ตัวเลข, และสัญลักษณ์ต่าง ๆ (เช่น #, $) ปนกัน วิธีหนึ่งที่อาจใช้สร้าง password สำหรับคนไทย คือ ใช้แป้นพิมพ์พิมพ์เป็นคำภาษาไทยแทน (แต่ห้ามใช้คำ ๆ เดียว เพราะเขาอาจใส่ทุกคำในพจนานุกรมเข้าไปเพื่อแกะรหัสผ่านได้)คำสั่งเกี่ยวกับวันที่
· date เพื่อบอกวันที่และเวลา· cal เพื่อแสดงปฏิทิน ตัวอย่างการใช้ เช่น cal 1997, cal 3, cal 7 1962, cal 9 1752คำสั่งเกี่ยวกับตัวเราและระบบ
· uptime เวลาที่ระบบทำงาน (Machine’s ‘up’ time)
· hostname ชื่อของเครื่องแม่ข่าย
· whoami ชื่อของเรา
· quota โควตาของเรา อีกคำสั่งหนึ่ง คือ quota –v ??? (ใช้ทำอะไร)
เครื่องคิดเลข
· xcalc ต้องใช้ X-Windows
· expr ใช้คำนวณขั้นพื้นฐานได้ เช่น expr 3 + 5 + 7
· bc
3 + 5 + 7 พิมพ์เข้าไป
15 Output
^D เพื่อออกจากโปรแกรม
· bc –l เพื่อใช้ Maths library
scale=3 ตั้งจำนวนทศนิยมให้เป็น 3
150/60
l(30) เรียกฟังก์ชันเพื่อหาค่า natural log ของ 30
^D
· bc
obase=2 ตั้งค่าเลขฐานของ output
ibase=16 ตั้งค่าเลขฐานของ input
FFC1
^D
เกมส์
เกมส์ส่วนใหญ่อยู่ในไดเร็คทอรี่ /usr/game การเรียกเกมส์เหล่านี้ขึ้นมา จะต้องเปลี่ยนไดเร็คทอรี่ไปที่นั่น (ซึ่งจะกล่าวถึงต่อไป) หรือใส่ /usr/game นำหน้าคำสั่งที่ต้องการเรียก เช่น
/usr/game/fortune
เกมส์หลายเกมส์ในระบบ Unix เป็นเกมส์ที่มีกราฟิกสวยงาม เล่นได้หลายคน เช่น doom, acm แต่จะต้องใช้ X-Windows ในการรัน
สำหรับเกมส์ที่อยู่ได้ fivedots ได้แก่
fortune | คำคม |
gnuchess | หมากรุก |
hangman | แฮงแมน |
acm | จำลองการบิน |
Maelstrom | เกม Asteriod |
Gnugo | เกมโกะ |
วิธีการทดลอง
2. ใช้คำสั่งของ Unix เพื่อค้นดูว่าคุณเกิดวันอะไร (จันทร์, อังคาร, หรืออื่น ๆ)
3. คุณมี disk quota อยู่เท่าไร
4. ให้หาค่า p ออกมาโดยมีทศนิยม 12 หลัก (คำใบ้: p/4 = arctan(1) ซึ่งก็คือ function a() ในโปรแกรม bc)
5. ให้รันโปรแกรม fortune ดูหลาย ๆ ครั้ง
man gnuchess
man man
apropos game
apropos help
· man –k [ชื่อหัวเรื่อง] เหมือนกับ apropos
· which [คำสั่ง] บอกที่อยู่ของคำสั่งนั้น ตัวอย่างเช่น
which gnuchess
which ls
· locate [ข้อความ] ใช้หาไฟล์ที่มีข้อความหนึ่ง ๆ อยู่ในชื่อไฟล์หรือ path ของไฟล์ ตัวอย่างเช่น
locate .cgi
locate ad
· การแสดงผลลัพธ์ที่ออกมาอาจจะยาวมาก เราทำให้โปรแกรมแสดงผลออกมาทีละหน้าจอโดยใช้ |more ตามหลังคำสั่ง แล้วให้กด spacebar เพื่อแสดงผลต่อ และ ^C เพื่อหยุด ตัวอย่างเช่น
locate .cgi|more
apropos print|more
หนังสือ Unix ที่แนะนำ
· A Student’s Guide to UNIX, Harley Hahn, McGraw-Hill, 1993.· A Practical Guide to the UNIX System, Mark G. Sobell, Benjamin-Cummings,วิธีการทดลอง
1. ให้ดู manual pages ของโปรแกรม bc และ fortune2. คำสั่งใดบ้างที่เกี่ยวข้องกับคำว่า game3. เกมส์ใน fivedots อยู่ที่ใดรูปแสดงระบบไฟล์/ไดเร็คทอรี่ของ Unix (ซึ่งทำให้ง่ายลงแล้ว)
ไดเร็คทอรี่ระบบที่สำคัญ เช่น
· / root directory
· /bin เก็บคำสั่งของ Unix
· /etc ไฟล์ข้อมูลของระบบ เช่น /etc/passwd
· /dev ไฟล์ที่ใช้แทน I/O Devices
รูปแสดง home directory ของผู้ใช้
PathnamePathname คือ เส้นทางของ directory ที่ใช้แสดงถึงตำแหน่งของ directory มีอยู่ 2 ชนิด คือ absolute pathname กับ relative pathnameAbsolute Pathname (เส้นทางแบบสัมบูร
ไม่มีความเห็น