Red Hat Linux
(http://www.redhat.com/)บริษัท เรดแฮ็ท เกิดขึ้นจากการรวมตัวของกลุ่มโปรแกรมเมอร์ ในแถบนอร์ธ-แคโลไลนาในสหรัฐอเมริกา โดยมีเป้าหมายที่จะสร้างดิสตริบิวชั่นของ Linux ที่มีการติดตั้งและการใช้งานให้ง่ายที่สุดเท่าที่เป็นไปได้แนวคิดพื้นฐานของเรดแฮ็ทคือเรื่องของ แพ็กเกจ (package) ซึ่งเป็นชุดของโปรแกรม ที่สามารถทำการติดตั้งเพิ่มเข้าและถอดออกได้ โดยที่ผู้ใช้ไม่ต้องทำการคอมไพล์โปรแกรมใหม่ หรือไม่ต้องทราบรายละเอียดแต่อย่างใด (โดยปกติแล้วการติดตั้งซอฟต์แวร์ในระบบ UNIX และ Linux จะต้องขยายไฟล์ที่ถูกบีบอัดไว้ออกมาก่อน แล้วคอมไพล์ตัวโปรแกรม Linux ใหม่พร้อมกับโปรแกรมเหล่านั้น จึงจะสามารถติดตั้งซอฟต์แวร์นั้น เพิ่มลงไปในระบบได้)ดังนั้น Red Hat จึงได้พัฒนาโปรแกรม RPM (RPM Package Manager) ขึ้นมาสำหรับติดตั้ง ถอดถอน และบริหารชุดของแพ็กเกจดังกล่าว โดยไม่ต้องเสียเวลาคอมไพล์ใหม่ (ซึ่ง RPM ในเวอร์ชันแรกๆจะพัฒนาด้วยภาษา Perl แต่ในเวอร์ชันต่อๆมาจะพัฒนาด้วยภาษา C ทำให้มีประสิทธิภาพสูงขึ้น) และนอกจาก RPM แล้วทางบริษัท Red Hat ก็ยังได้พัฒนาโปรแกรมติดตั้งที่เรียกว่า GLINT (Graphical Linux INstallation Tool) ซึ่งมีลักษณะการใช้งานเป็นแบบกราฟิกขึ้น จึงทำให้สามารถใช้งานได้ง่ายขึ้นกว่าเดิมมากRed Hat Linux เวอร์ชันแรกได้ออกจำหน่ายเมื่อช่วงฤดูร้อนของปี ค.ศ. 1994 และด้วยคุณสมบัติเด่นของ RPM จึงส่งผลให้ Red Hat Linux ได้รับความนิยมเพิ่มมากขึ้นอย่างรวดเร็ว จนกลายเป็นดิสตริบิวชั่นที่ได้รับความนิยมสูงสุดในปัจจุบัน โดยเฉพาะอย่างยิ่งสำหรับการใช้งานในเชิงธุรกิจ ขณะที่ RPM ก็ได้รับการยอมรับ และนำไปใช้เป็นเครื่องมือมาตรฐาน ในการบริหารแพ็กเกจบนระบบ UNIX อื่นๆนอกเหนือจาก Linux ด้วยSuse(http://www.suse.com/)
SuSE
เป็นลีนุกซ์สัญชาติเยอรมัน ได้รับความนิยมเป็นอันดับหนึ่งในเยอรมันและยุโรปการติดตั้ง SuSE นั้น มีโปรแกรมที่จัดการการติดตั้งชื่อ YaST2 ซึ่งทำให้การติดตั้งได้ง่ายมากภาษาในการติดตั้งยังไม่มีภาษาไทยDebian (http://www.debian.org/)โครงการ Debian นั้นเริ่มเมื่อปี 1993 โดยนายเอียน เมอร์ดอค คำว่า Debian ก็มาจากชื่อของเค้า เอียน ( -ian ) กับชื่อแฟนของเค้า เด็บบาร่า (deb-) เอามารวมกันก็เป็น Debian นี่ถือได้ว่าเป็นลินุกซ์สำหรับแฮคเกอร์โดยแท้จริง Debian มีจุดแข็งอยู่ตรงระบบการลงโปรแกรมที่เรียกได้ว่าดีมากๆ เรียกว่า APT ที่ใช้งานได้ง่ายกว่า RPM ของเรดแฮทมาก และจะสะดวกมากขึ้นอีกถ้าเรามีเน็ตแรงๆ อยู่ด้วย เนื่องจากว่า APT จะทำการอัพเดทโปรแกรมให้เราอัตโนมัติ เช่น ต้องการลง Mozilla แค่สั่ง apt-get mozilla แล้วก็รออย่างเดียว Mozilla ก็จะพร้อมใช้งานทันที แต่ว่าส่วนอื่นๆ ของ
Debian
ยังไม่เป็นมิตรกับผู้ใช้หน้าใหม่เช่นกัน เลยมีบริษัทหัวใสจำนวนมาก ได้นำ Debian ดั้งเดิมมาดัดแปลงให้เหมาะกับผู้ใช้หน้าใหม่มากขึ้น แล้วนำมาขาย เช่น Xandros และ LindowsMandrake Linux ติดขอบเทคโนโลยีMandrake Linux ปัจจุบันเปลี่ยนเป็นชื่อ Mandriva Linux เป็นลีนุกซ์ดิสโทรที่มีบุคลิกที่สุดสำอาง เริ่มพัฒนามาพร้อมๆ กับ Red Hat Linux แต่มีแนวทางเป็นของตนเอง และไม่คิดตามหลังใคร มิหนำซ้ำยังหาญกล้านำเทคโนโลยีใหม่ๆ มารวมไว้ก่อนดิสโทรอื่นเสมอๆ จนทำให้มีหมายเลขเวอร์ชั่นหนีห่างจาก Red Hat ชนิดไม่เห็นฝุ่น ความที่เน้น Cutting-Edge Technology เช่นนี้มากจนเกินไป จนลืมให้ความสำคัญกับการดำเนินกิจการจึงทำให้ขาดทุนและเกือบต้องเลิกกิจการไป หลังจากได้รับการบริจาคเงินช่วยเหลือและต่อมารวมกิจการกับ Connectiva Linux จนเป็น
Mandriva Linux
แล้ว ลีนุกซ์ดิสโทรนี้ก็ยังคงมีลักษณะที่เน้นการนำเสนอเทคโนโลยีล้ำหน้าคู่แข่งเสมอมา ถ้าคุณชอบความล้ำสมัย มีสีสรร และรูปลักษณ์สวยหมดจด Mandriva Linux นี่แหละ..ใช่เลย
วันพุธที่ 10 ธันวาคม พ.ศ. 2551
วันพุธที่ 19 พฤศจิกายน พ.ศ. 2551
คำสั่งอื่น
1.Atตั้งเวลารันกลุ่มคำสั่ง
2.Cpio
3.bc - คำสั่งเรียกใช้โปรแกรมคำนวณเลขของระบบ Unix,Linux
4.basename-
5. last - ใช้แสดงรายชื่อผู้ login เข้ามาล่าสุด
6.crontab - ตั้งเวลาสั่งงานคอมพิวเตอร์ crontabตั้งเวลารันคำสั่งเป็นรอบเวลาที่กำหนด
7.dd - ลบบรรทัดปัจจุบันทั้งบรรทัด
8.du - แสดงการเนื้อที่ใช้งาน ของแต่ละ directory โดยละเอียด duเป็นการดูเนื้อที่ว่างบนไดเรคทรอรี่ที่ใช้อยู่
9. dirname-
10.ln-
11.env - แสดงค่า environment ปัจจุบัน
12. eject
13.-exec-
14.free - แสดงหน่วยความจำที่เหลืออยู่บนระบบ14.freeเป็นการแสดงสถานะของเมมโมรี่ และเนื้อที่ว่างบนเมมโมรี่ ทั้งกายภาพ ที่ใช้ ใน swap, และบัฟเฟอร์
15.groups-
16.hostnameแสดง/กำหนดชื่อโฮสต์16.hostname - คำสั่งแสดงชื่อเครื่องที่ใช้อยู่
17.lp-
18.mount - เป็นคำสั่งเชื่อมต่ออุปกรณ์เข้ากับระบบ
19.mt-
20.nice-
21.nohup-
22.netstat - แสดงสถานะของเครือข่ายว่ามีโปรแกรมใดเปิดให้บริการ
23.Od
24.Pr25.df - เป็นการตรวจสอบการใช้พื่นที่บนฮาร์ดดิสก์
26.Printf27.Df
25. Dfรายงานขนาดดิสก์ที่เหลืออยู่
28.Printenv29.Pg
30.Quota
31.Rlogin
2.Cpio
3.bc - คำสั่งเรียกใช้โปรแกรมคำนวณเลขของระบบ Unix,Linux
4.basename-
5. last - ใช้แสดงรายชื่อผู้ login เข้ามาล่าสุด
6.crontab - ตั้งเวลาสั่งงานคอมพิวเตอร์ crontabตั้งเวลารันคำสั่งเป็นรอบเวลาที่กำหนด
7.dd - ลบบรรทัดปัจจุบันทั้งบรรทัด
8.du - แสดงการเนื้อที่ใช้งาน ของแต่ละ directory โดยละเอียด duเป็นการดูเนื้อที่ว่างบนไดเรคทรอรี่ที่ใช้อยู่
9. dirname-
10.ln-
11.env - แสดงค่า environment ปัจจุบัน
12. eject
13.-exec-
14.free - แสดงหน่วยความจำที่เหลืออยู่บนระบบ14.freeเป็นการแสดงสถานะของเมมโมรี่ และเนื้อที่ว่างบนเมมโมรี่ ทั้งกายภาพ ที่ใช้ ใน swap, และบัฟเฟอร์
15.groups-
16.hostnameแสดง/กำหนดชื่อโฮสต์16.hostname - คำสั่งแสดงชื่อเครื่องที่ใช้อยู่
17.lp-
18.mount - เป็นคำสั่งเชื่อมต่ออุปกรณ์เข้ากับระบบ
19.mt-
20.nice-
21.nohup-
22.netstat - แสดงสถานะของเครือข่ายว่ามีโปรแกรมใดเปิดให้บริการ
23.Od
24.Pr25.df - เป็นการตรวจสอบการใช้พื่นที่บนฮาร์ดดิสก์
26.Printf27.Df
25. Dfรายงานขนาดดิสก์ที่เหลืออยู่
28.Printenv29.Pg
30.Quota
31.Rlogin
คำสั่งเกี่ยวกับการติดต่อสื่อสาร
1. คำสั่ง telnetเป็นคำสั่งที่เปลี่ยน host ที่ใช้อยู่ไปยัง host อื่น (ใน Windows 98 ก็มี)รูปแบบ $ telnet hostnameเช่น c:\> telnet comsci.rid.ac.th เปลี่ยนไปใช้ host ชื่อ comsci.rid.ac.th $ telnet 202.28.54.182 เปลี่ยนไปใช้ host ที่มี IP = 202.28.54.182$ telnet 0 telnet เข้า host ที่ใช้อยู่นะขณะนั้นเมื่อเข้าไปได้แล้วก็จะต้องใส่ login และ password และเข้าสู่ระบบยูนิกส์นั้นเอง
2. คำสั่ง ftpftp เป็นคำสั่งที่ใช้ถ่ายโอนไฟล์ข้อมูลจากที่หนึ่ง ไปยังอีกที่หนึ่ง โดยการติดต่อกับ host ที่เป็น ftp นั้นจะต้องมี user name และมี password ที่สร้างขึ้นไว้แล้ว แต่ก็มี ftp host ที่เป็น public อยู่ไม่น้อยเช่นกัน ดังนั้นจะมี user name ที่เป็น publicเช่นกัน คือ user ที่ชื่อว่า anonymous ส่วน password ของ user anonymous นี้จะใช้เป็น E-mail ของผู้ที่จะ connect เข้าไปและโปรแกรมส่วนใหญ่ก็จะอยู่ใน directory ชื่อ pubรูปแบบ $ ftp hostnameคำสั่ง ftp จะมีคำสั่งย่อยที่สำคัญๆ ได้แก่ftp> help ใช้เมื่อต้องการดูคำสั่งที่มีอยู่ใในคำสั่ง ftpftp> open hostname ใช้เมื่อต้องการ connect ไปยัง host ที่ต้องการftp> close ใช้เมื่อต้องการ disconnect ออกจาก host ที่ใช้งานอยู่ftp> bye หรือ quit ใช้เมื่อต้องการออกจากคำสั่ง ftpftp> ls หรีอ dir ใช้แสดงชื่อไฟล์ที่มีอยู่ใน current directory ของ host นั้นftp> get ใช้โอนไฟล์ทีละไฟล์จาก host ปลายทางมายัง localhost หรือเครื่องของเรานั้นเองftp> mget ใช้โอนไฟล์ทีละหลายๆไฟล์จาก host ปลายทางมายัง localhostftp> put ใช้โอนไฟล์ทีละไฟล์จาก localhost ไปเก็บยัง host ปลายทางftp> mput ใช้โอนไฟล์ทีละหลายๆไฟล์จาก localhost ไปเก็บยัง host ปลายทางftp> cd ใช้เปลี่ยน directoryftp> delete และ mdelete ใช้ลบไฟล์
3. lynxโปรแกรมเว็บบราวเซอร์แบบ text
4. mesgเปิด/ปิดการรับข้อความจากคำสั่ง write
5. pingทดสอบการตอบสนองของโฮสต์ปลายทาง
6. writeคำสั่งส่งข้อความไปยังจอภาพอื่น
2. คำสั่ง ftpftp เป็นคำสั่งที่ใช้ถ่ายโอนไฟล์ข้อมูลจากที่หนึ่ง ไปยังอีกที่หนึ่ง โดยการติดต่อกับ host ที่เป็น ftp นั้นจะต้องมี user name และมี password ที่สร้างขึ้นไว้แล้ว แต่ก็มี ftp host ที่เป็น public อยู่ไม่น้อยเช่นกัน ดังนั้นจะมี user name ที่เป็น publicเช่นกัน คือ user ที่ชื่อว่า anonymous ส่วน password ของ user anonymous นี้จะใช้เป็น E-mail ของผู้ที่จะ connect เข้าไปและโปรแกรมส่วนใหญ่ก็จะอยู่ใน directory ชื่อ pubรูปแบบ $ ftp hostnameคำสั่ง ftp จะมีคำสั่งย่อยที่สำคัญๆ ได้แก่ftp> help ใช้เมื่อต้องการดูคำสั่งที่มีอยู่ใในคำสั่ง ftpftp> open hostname ใช้เมื่อต้องการ connect ไปยัง host ที่ต้องการftp> close ใช้เมื่อต้องการ disconnect ออกจาก host ที่ใช้งานอยู่ftp> bye หรือ quit ใช้เมื่อต้องการออกจากคำสั่ง ftpftp> ls หรีอ dir ใช้แสดงชื่อไฟล์ที่มีอยู่ใน current directory ของ host นั้นftp> get ใช้โอนไฟล์ทีละไฟล์จาก host ปลายทางมายัง localhost หรือเครื่องของเรานั้นเองftp> mget ใช้โอนไฟล์ทีละหลายๆไฟล์จาก host ปลายทางมายัง localhostftp> put ใช้โอนไฟล์ทีละไฟล์จาก localhost ไปเก็บยัง host ปลายทางftp> mput ใช้โอนไฟล์ทีละหลายๆไฟล์จาก localhost ไปเก็บยัง host ปลายทางftp> cd ใช้เปลี่ยน directoryftp> delete และ mdelete ใช้ลบไฟล์
3. lynxโปรแกรมเว็บบราวเซอร์แบบ text
4. mesgเปิด/ปิดการรับข้อความจากคำสั่ง write
5. pingทดสอบการตอบสนองของโฮสต์ปลายทาง
6. writeคำสั่งส่งข้อความไปยังจอภาพอื่น
คำสั่งสำรองข้อมูล
1. คำสั่ง tarทำหน้าที่ขยายไฟล์แอพพลิเคชั่นและชุดแพคเกจรูปแบบการใช้งาน tar <พารามิเตอร์> <ไฟล์>ตัวอย่าง tar -xvf test.tarจัดเก็บไฟล์ให้รวมกันไว้ที่เดียว
2. คำสั่ง gzipทำหน้าที่บีบอัดไฟล์รูปแบบการใช้งานgzip <พารามิเตอร์> <ไฟล์ > <พารามิเตอร์>ตัวอย่างการใช้gzip star.txt star.zip filename.tar.gz ใช้ unzip ไฟล์ผลที่ได้จะเป็น filename.tar
3. คำสั่งgunzip คือขยายไฟล์ที่บีบไว้รูปแบบการใช้งานgunzip <พารามิเตอร์> <ไฟล์ > <พารามิเตอร์>ตัวอย่างการใช้งานgunzip star.zip
2. คำสั่ง gzipทำหน้าที่บีบอัดไฟล์รูปแบบการใช้งานgzip <พารามิเตอร์> <ไฟล์ > <พารามิเตอร์>ตัวอย่างการใช้gzip star.txt star.zip filename.tar.gz ใช้ unzip ไฟล์ผลที่ได้จะเป็น filename.tar
3. คำสั่งgunzip คือขยายไฟล์ที่บีบไว้รูปแบบการใช้งานgunzip <พารามิเตอร์> <ไฟล์ > <พารามิเตอร์>ตัวอย่างการใช้งานgunzip star.zip
คำสั่งเกี่ยวกับการจัดการโปรเซส
1. Ps - การดูสถานะของ Process ต่างบนระบบแสดงโปรเซสทั้งหมดรูปแบบการใช้งาน ps[option]... โดย option ที่มักใช้กันใน ps คือ -l แสดงผลลัพธ์เป็น Long Format-f แสดงผลลัพธ์เป็น Full Format-a แสดง Proces ทั้งหมดที่มี TTY ตรงกับ TTY ของผู้ใช้งาน-x แสดง Process ทั้งหมด
2. Kill - คำสั่ง kill ของระบบ Unix,Linux (เป็นคำสั่งสำหรับยกเลิก Process) ส่งรหัสควบคุมไปยังโปรเซส รูบแบบการใช้งาน kill [option] (process ID) ตัวอย่าง ps -A ดูหมายเลขที่ช่อง PIDของProcess ที่ต้องการลบ Kill -9 nnn แทนnnnด้วยหมายเลขPID -9 คือบังคับฆ่าให้ตาย
3. Fg - โดยส่วนมากใช้คำสั่ง fg เพื่อที่นำ การทำงานของ process ที่หยุดลงไปกลับคืนมาทำงานต่อ (ซึ่งก็คือเหมือนคำสั่ง Ctrl-Z ) โดยส่ง signal ให้แก่ process ว่า CONT signal
4. Bg -
5. Jobs - คำสั่ง jobs ของระบบ Unix,Linux (เป็นคำสั่งสำหรับกำหนดควบคุม การรับส่งผ่านข้อมูลของ Firewall) รูบแบบการใช้งาน jobsตัวอย่าง #sleep 20 & jobs
URL
http://itsa.skc.rmuti.ac.th/main/modules/newbb/viewtopic.php?forum=5&post_id=37&menumode=1http://www.itdestination.com/resources/linux-command/
2. Kill - คำสั่ง kill ของระบบ Unix,Linux (เป็นคำสั่งสำหรับยกเลิก Process) ส่งรหัสควบคุมไปยังโปรเซส รูบแบบการใช้งาน kill [option] (process ID) ตัวอย่าง ps -A ดูหมายเลขที่ช่อง PIDของProcess ที่ต้องการลบ Kill -9 nnn แทนnnnด้วยหมายเลขPID -9 คือบังคับฆ่าให้ตาย
3. Fg - โดยส่วนมากใช้คำสั่ง fg เพื่อที่นำ การทำงานของ process ที่หยุดลงไปกลับคืนมาทำงานต่อ (ซึ่งก็คือเหมือนคำสั่ง Ctrl-Z ) โดยส่ง signal ให้แก่ process ว่า CONT signal
4. Bg -
5. Jobs - คำสั่ง jobs ของระบบ Unix,Linux (เป็นคำสั่งสำหรับกำหนดควบคุม การรับส่งผ่านข้อมูลของ Firewall) รูบแบบการใช้งาน jobsตัวอย่าง #sleep 20 & jobs
URL
http://itsa.skc.rmuti.ac.th/main/modules/newbb/viewtopic.php?forum=5&post_id=37&menumode=1http://www.itdestination.com/resources/linux-command/
คำสั่งเกี่ยวกับการจัดการไฟล์
1. คำสั่ง ls มีค่าเหมือนกับ คำสั่ง dir ของ dosรูปแบบ $ ls [-option] [file]option ที่สำคัญl แสดงแบบไฟล์ละบรรทัด แสดง permission , เจ้าของไฟล์ , ชนิด , ขนาด , เวลาที่สร้างa แสดงไฟล์ที่ซ่อนไว้ ( dir /ah)p แสดงไฟล์โดยมี / ต่อท้าย directoryF แสดงไฟล์โดยมีสัญญลักษณ์ชนิดของไฟล์ต่อท้ายไฟล์คือ/ = directory* = execute file @= link fileld แสดงเฉพาะ directory (dir /ad)R แสดงไฟล์ที่อยู่ใน directory ด้วย (dir /s)เช่น$ ls$ ls -la2.คำสั่งcd
2. คำสั่ง cd ใช้สำหรับการเปลี่ยนไดเร็คทอรี่รูปแบบ: cd การเคลื่อนย้ายพื้นที่ในการใช้งาน ทำได้โดยใช้คำสั่ง cd ตามด้วยชื่อไดเร็คทอรี่ที่เป็นจุดหมายปลายทาง โดยจะเขียนชื่อของไดเร็คทอรี่แบบสัมบูรณ์ หรือแบบสัมพันธ์ก็ได้ เช่นตัวอย่าง: เคลื่อนไปไดเร็คทอรี่ bin ซึ่งอยู่ภายใต้ไดเร็คทอรีปัจจุบัน$ cd binตัวอย่าง: แสดงการใช้เส้นทางแบบสัมบูรณ์ระบุจุดหมายปลายทาง$ cd /rootตัวอย่าง: กลับไปยัง Home ไดเร็คทอรี่$ cdตัวอย่าง: การแสดงว่าขณะนี้เราทำงานอยู่ที่ไดเร็คทอรี่ใด$ pwd/home/train1ในตัวอย่างนี้คงจะเห็นว่า ถ้าใช้คำสั่ง cd เฉย ๆ คือการระบุให้กลับไปยังไดเร็คทอรีบ้าน อันได้แก่ ไดเร็คทอรีแรกที่เข้ามาเมื่อเริ่มเข้าสู่ระบบ ซึ่งสามารถเปลี่ยนค่าของไดเร็คทอรีบ้านได้ด้วยการเปลี่ยนค่าของตัวแปรเชลล์ที่ชื่อ HOME ส่วน “..” คือสัญลักษณ์ที่แสดงถึงไดเร็คทอรี “พ่อ” อันได้แก่ ชั้นที่อยู่ข้างบนชั้นปัจจุบัน
3. คำสั่ง pwd แสดง directory ที่เราอยู่ปัจจุบัน$ pwdbobby@comsci:~$ pwd/home/bobby4.คำสั่งfileบนระบบ DOS/Windows นั้น ประเภทของแฟ้มข้อมูลจะถูกระบุด้วยนามสกุล แต่ใน UNIX จะไม่มีนามสกุลเพื่อใช้ระบุประเภทของแฟ้มข้อมูล ดังนั้นการหาประเภทของแฟ้มข้อมูลจะดูจาก Context ภายในของแฟ้ม ซึ่ง
4. คำสั่ง file จะทำการอ่าน Content และบอกประเภทของแฟ้มข้อมูลนั้นๆ รูปแบบคำสั่ง file [option]... file ตัวอย่าง file /bin/sh file report1.doc
5. คำสั่ง mvใช้ move หรือเปลี่ยนชื่อไฟล์รูปแบบ $ mv [-if] file_source file_targetความหมายของ option เช่นเดียวกับ cp$ mv index.html main.html เปลี่ยนชื่อไฟล์ index.html เป็น main.html
6. คำสั่ง mkdir ใช้สำหรับสร้างไดเร็คทอรี่รูปแบบ: mkdir ตัวอย่าง: การสร้างไดเร็คทอรี่ชื่อ mydir อยู่ในไดเร็คทอรี่ปัจจุบัน$ mkdir mydir
7. คำสั่ง rm คำสั่งสำหรับการลบไฟล์รูปแบบ: rm [option] option คือทางเลือกที่จะใช้กับคำสั่ง rm โดยจะยกตัวอย่างที่ใช้บ่อยๆ ได้แก่-r คือ การสั่งให้ลบไดเร็คทอรี่และไฟล์ภายใต้ไดเร็คทอรี่ (recursive)-f คือ การสั่งยืนยันการลบ (force) จะไม่ขึ้น prompt ถามยืนยันการลบfile_name คือ ชื่อไฟล์ที่ต้องการลบdirectory_name คือ ชื่อไดเร็คทอรี่ที่ต้องการลบตัวอย่าง การลบมากกว่า 1 ไฟล์$ rm oldbills oldnotes badjokesตัวอย่าง การลบไดเร็คทอรี่และไฟล์ภายใต้ไดเร็คทอรี่$ rm -r ./binตัวอย่าง การลบแบบยืนยันการลบ$ rm –f oldbills oldnotes badjokes
8.. คำสั่ง rmdirคำสั่ง rmdir เป็นคำสั่งสำหรับการลบไดเร็คทอรี่รูปแบบ: rmdir directory_name คือ ชื่อไดเร็คทอรี่ที่ต้องการลบตัวอย่าง: การลบไดเร็คทอรี่ essays$ rmdir essays9. Chown -
9. คำสั่งChange Ownerของระบบ Unix,Linux (เป็นการเปลี่ยนเจ้าของไฟล์)รูบแบบการใช้งาน chown [ซื่อเจ้าของไฟล์] (ชื่อFile)ตัวอย่าง chown user1 filename คือเปลี่ยนเจ้าของไฟล์ชื่อ filename เป็นUser1 chown -R user1.root dirname คือเปลี่ยนทั้งเจ้าของไฟล์และกลุ่มไปพร้อมกันทุกไฟล์ใน Sub dirname.
10. คำสั่งChgrp คำสั่งChange Groupของระบบ Unix,Linux (เป็นการเปลี่ยนกลุ่มเจ้าของไฟล์)รูบแบบการใช้งาน chgrp [-chfRv] (Group) (File)ตัวอย่าง chgrp root /root/* เปลี่ยนGroupให้กับไฟล์ทุกไฟล์ในไดเรคทอรี่ /rootให้เป็น Group root
2. คำสั่ง cd ใช้สำหรับการเปลี่ยนไดเร็คทอรี่รูปแบบ: cd การเคลื่อนย้ายพื้นที่ในการใช้งาน ทำได้โดยใช้คำสั่ง cd ตามด้วยชื่อไดเร็คทอรี่ที่เป็นจุดหมายปลายทาง โดยจะเขียนชื่อของไดเร็คทอรี่แบบสัมบูรณ์ หรือแบบสัมพันธ์ก็ได้ เช่นตัวอย่าง: เคลื่อนไปไดเร็คทอรี่ bin ซึ่งอยู่ภายใต้ไดเร็คทอรีปัจจุบัน$ cd binตัวอย่าง: แสดงการใช้เส้นทางแบบสัมบูรณ์ระบุจุดหมายปลายทาง$ cd /rootตัวอย่าง: กลับไปยัง Home ไดเร็คทอรี่$ cdตัวอย่าง: การแสดงว่าขณะนี้เราทำงานอยู่ที่ไดเร็คทอรี่ใด$ pwd/home/train1ในตัวอย่างนี้คงจะเห็นว่า ถ้าใช้คำสั่ง cd เฉย ๆ คือการระบุให้กลับไปยังไดเร็คทอรีบ้าน อันได้แก่ ไดเร็คทอรีแรกที่เข้ามาเมื่อเริ่มเข้าสู่ระบบ ซึ่งสามารถเปลี่ยนค่าของไดเร็คทอรีบ้านได้ด้วยการเปลี่ยนค่าของตัวแปรเชลล์ที่ชื่อ HOME ส่วน “..” คือสัญลักษณ์ที่แสดงถึงไดเร็คทอรี “พ่อ” อันได้แก่ ชั้นที่อยู่ข้างบนชั้นปัจจุบัน
3. คำสั่ง pwd แสดง directory ที่เราอยู่ปัจจุบัน$ pwdbobby@comsci:~$ pwd/home/bobby4.คำสั่งfileบนระบบ DOS/Windows นั้น ประเภทของแฟ้มข้อมูลจะถูกระบุด้วยนามสกุล แต่ใน UNIX จะไม่มีนามสกุลเพื่อใช้ระบุประเภทของแฟ้มข้อมูล ดังนั้นการหาประเภทของแฟ้มข้อมูลจะดูจาก Context ภายในของแฟ้ม ซึ่ง
4. คำสั่ง file จะทำการอ่าน Content และบอกประเภทของแฟ้มข้อมูลนั้นๆ รูปแบบคำสั่ง file [option]... file ตัวอย่าง file /bin/sh file report1.doc
5. คำสั่ง mvใช้ move หรือเปลี่ยนชื่อไฟล์รูปแบบ $ mv [-if] file_source file_targetความหมายของ option เช่นเดียวกับ cp$ mv index.html main.html เปลี่ยนชื่อไฟล์ index.html เป็น main.html
6. คำสั่ง mkdir ใช้สำหรับสร้างไดเร็คทอรี่รูปแบบ: mkdir ตัวอย่าง: การสร้างไดเร็คทอรี่ชื่อ mydir อยู่ในไดเร็คทอรี่ปัจจุบัน$ mkdir mydir
7. คำสั่ง rm คำสั่งสำหรับการลบไฟล์รูปแบบ: rm [option] option คือทางเลือกที่จะใช้กับคำสั่ง rm โดยจะยกตัวอย่างที่ใช้บ่อยๆ ได้แก่-r คือ การสั่งให้ลบไดเร็คทอรี่และไฟล์ภายใต้ไดเร็คทอรี่ (recursive)-f คือ การสั่งยืนยันการลบ (force) จะไม่ขึ้น prompt ถามยืนยันการลบfile_name คือ ชื่อไฟล์ที่ต้องการลบdirectory_name คือ ชื่อไดเร็คทอรี่ที่ต้องการลบตัวอย่าง การลบมากกว่า 1 ไฟล์$ rm oldbills oldnotes badjokesตัวอย่าง การลบไดเร็คทอรี่และไฟล์ภายใต้ไดเร็คทอรี่$ rm -r ./binตัวอย่าง การลบแบบยืนยันการลบ$ rm –f oldbills oldnotes badjokes
8.. คำสั่ง rmdirคำสั่ง rmdir เป็นคำสั่งสำหรับการลบไดเร็คทอรี่รูปแบบ: rmdir directory_name คือ ชื่อไดเร็คทอรี่ที่ต้องการลบตัวอย่าง: การลบไดเร็คทอรี่ essays$ rmdir essays9. Chown -
9. คำสั่งChange Ownerของระบบ Unix,Linux (เป็นการเปลี่ยนเจ้าของไฟล์)รูบแบบการใช้งาน chown [ซื่อเจ้าของไฟล์] (ชื่อFile)ตัวอย่าง chown user1 filename คือเปลี่ยนเจ้าของไฟล์ชื่อ filename เป็นUser1 chown -R user1.root dirname คือเปลี่ยนทั้งเจ้าของไฟล์และกลุ่มไปพร้อมกันทุกไฟล์ใน Sub dirname.
10. คำสั่งChgrp คำสั่งChange Groupของระบบ Unix,Linux (เป็นการเปลี่ยนกลุ่มเจ้าของไฟล์)รูบแบบการใช้งาน chgrp [-chfRv] (Group) (File)ตัวอย่าง chgrp root /root/* เปลี่ยนGroupให้กับไฟล์ทุกไฟล์ในไดเรคทอรี่ /rootให้เป็น Group root
วันพฤหัสบดีที่ 30 ตุลาคม พ.ศ. 2551
VMWARE
VMWAREคืออะไร
VMware เป็นโปรแกรมที่ใช้ในการทำ Virtual disk สำหรับการติดตั้งหลายระบบปฏิบัติการบนฮาร์ดดิสก์ตัวเดียวกัน ปัจุบันมีโปรแกรมที่ใช้ทำ Virtual disk อีกหลายตัวอาทิ Virtual PC
VMWARE มีประโยชน์อย่างไร
- ติดตั้งหลาย OS ไว้บนฮาร์ดดิสก์ตัวเดียวกัน ระบบจะมอง OS อีกตัวเพียงโฟลเดอร์ตัวหนึ่งเท่านั้น
- สามารถสลับหน้าต่างๆ OS ด้วยคีย์ลัด ไม่ต้องทำการบู๊ตเครื่องใหม่- เหมาะสำหรับท่านที่นำเสนองานหลายระบบพร้อมๆ กัน
- สามารถติดตั้งได้ทั้งระบบ Windows และ Linux (มีตัวติดตั้งทั้งสองระบบ)
หน้าตาของ VMWARE


เว็บไซต์ที่เกี่ยวข้องกับ VMWARE
http://www.justusers.net/articles/ossystem/vmware/vmware.htm
www.justusers.net/articles/ossystem/vmware/vmware.htm
https://help.ubuntu.com/community/VMware
www.electoday.com/spaw/images/or/VMware.pdf
www.narisa.com/forums/index.php
วันอาทิตย์ที่ 26 ตุลาคม พ.ศ. 2551
ประวัติระบบปฏิบัติการ Unix และแหล่งเรียนรู้ UNIX
ความเป็นมาของระบบปฏิบัติการ UNIX
ย้อนหลังไปในช่วงทศวรรษที่ 1940 และ 1950 เครื่องคอมพิวเตอร์ทุกเครื่องที่มีในโลกอาจกล่าวได้ว่าเป็นเครื่องคอมพิวเตอร์ส่วนบุคคล เนื่องจากระบบปฏิบัติการของเครื่องอนุญาตให้ผู้ใช้ใช้งานเครื่องได้เพียงครั้งละคนเดียว ดังนั้นผู้ใช้ที่มีความประสงค์จะใช้เครื่องต้องทำการจองเวลาใช้เครื่องไว้ล่วงหน้า เมื่อถึงเวลาที่จองไว้ผู้ใช้นั้นจะได้เครื่องคอมพิวเตอร์นั้นแต่เพียงผู้เดียวตลอดระยะเวลาที่จองไว้ ผู้ใช้อื่นไม่สามารถใช้งานเครื่องอีกได้ และโดยทั่วไปในระหว่างการใช้งาน ผู้ใช้ไม่ได้ใช้งานหน่วยประมวลผลกลางเต็มกำลัง เพราะอาจต้องหยุดคิดแก้ปัญหา หรือป้อนข้อมูลเข้าเครื่องซึ่งใช้ความสามารถของเครื่องน้อยมาก จึงกล่าวได้ว่าผู้ใช้งานนั้นไม่ได้ใช้เครื่องจนเต็มขีดความสามารถตลอดเวลา เนื่องจากระบบคอมพิวเตอร์ในยุคนั้นมีราคาแพงจึงเกิดแนวความคิดที่จะสร้างระบบปฏิบัติการที่ผู้ใช้สามารถใช้งานเครื่องได้เต็มกำลังตลอดเวลาโดยการให้ผู้ใช้แต่ละคนเตรียมงานไว้ล่วงหน้าโดยใช้บัตรเจาะรู เมื่อมีปริมาณของงานมากถึงระดับหนึ่งจึงจะเดินเครื่องและทำการอ่านงานเหล่านั้นเข้าไปประมวลผลต่อเนื่องกันไป ระบบปฏิบัติการเช่นนี้เรียกว่าระบบการประมวลผลแบบ batch ระบบนี้ช่วยให้ใช้งานเครื่องได้โดยมีประสิทธิภาพมากขึ้นกว่าเดิม แต่อย่างไรก็ดีสำหรับผู้เขียนโปรแกรมแล้วระบบเช่นนี้ยังมีการตอบสนองไม่ดีนัก กล่าวคือเมื่อผู้เขียนโปรแกรมนำโปรแกรมต้นฉบับซึ่งอยู่ในรูปของบัตรเจาะรูไปส่งที่ห้องเครื่อง แล้วต้องรอเป็นระยะหนึ่งกว่าจะทราบผลการดำเนินการ ภายใต้ภาวะการณ์เช่นนี้การตรวจสอบและแก้ไขโปรแกรม (debugging) จึงเป็นกระบวนการที่กินเวลามาก หากผู้เขียนโปรแกรมลืมใส่เครื่องหมายวรรคตอนเพียงตัวเดียวผู้เขียนโปรแกรมต้องใช้เวลานานหลายชั่วโมงกว่าทราบความผิดพลาดนั้นและทำการแก้ไข ทำให้การพัฒนางานล่าช้า ดังนั้นผู้เขียนโปรแกรมโดยทั่วไปจึงต้องการระบบปฏิบัติการที่มีการตอบสนองเร็วเพื่อให้สามารถตรวจสอบแก้ไขโปรแกรมได้ดียิ่งขึ้น
จากความต้องการดังกล่าวนี้เองจึงมีการคิดระบบปฏิบัติการแบบ timesharing ซึ่งช่วยให้ผู้ใช้หลายคนสามารถใช้เครื่องในเวลาเดียวกันได้ โดยอาศัยการแบ่งเวลาของหน่วยประมวลผลกลางให้แก่ผู้ใช้เวียนกันไป ระบบ timesharing ที่ประสบความสำเร็จเกิดขึ้นที่ Dartmouth College และที่ Massachusetts Institute of Technology (M.I.T.) โดยระบบของ Dartmouth College เป็นระบบปฏิบัติการที่ใช้สนับสนุนการเขียนโปรแกรมด้วยภาษา BASIC เพียงอย่างเดียวและประสบความสำเร็จในการใช้งานทางธุรกิจในระยะหนึ่ง ส่วนระบบปฏิบัติการของ M.I.T. มีชื่อเรียกว่าระบบ CTSS เป็นระบบที่ได้รับการออกแบบเพื่อให้เป็นระบบปฏิบัติการเอนกประสงค์ และประสบความสำเร็จสูงกว่าโดยเฉพาะในกลุ่มนักวิทยาศาสตร์ หลังจากระบบ CTSS ประสบความสำเร็จแล้วไม่นาน M.I.T., Bell Labs และบริษัท General Electric ซึ่งเป็นบริษัทผู้ผลิตคอมพิวเตอร์ ได้ร่วมกลุ่มกัน เพื่อทำการวิจัยและออกแบบระบบปฏิบัติการแบบ timesharing ใหม่ให้มีความสามารถมากขึ้น และกำหนดชื่อระบบปฏิบัติใหม่เป็น MULTICS (MULTiplexed Information and Computing Service)
ระบบปฏิบัติการ MULTICS ไม่ทำงานตามที่คณะผู้ทำงานหวังไว้ เนื่องจากระบบได้รับการออกแบบให้สามารถรองรับผู้ใช้ได้หลายร้อยคนบนเครื่องคอมพิวเตอร์ที่มีหน่วยประมวลผลกลางซึ่งมีความสามารถสูงกว่า หน่วยประมวลผลกลางแบบ 80286 ในปัจจุบันเพียงเล็กน้อย อย่างไรก็ดีแนวความคิดดังกล่าวนี้เป็นเรื่องที่เป็นไปได้ในยุคนั้นเนื่องจากเป็นระยะเริ่มต้นของการใช้คอมพิวเตอร์ โปรแกรมที่เขียนขึ้นใช้งานส่วนใหญ่เป็นโปรแกรมขนาดเล็ก สาเหตุที่แท้จริงของความล้มเหลวของโครงการนี้มีมากมายเช่นในการออกแบบระบบกำหนดให้มีการใช้ภาษาระดับสูงคือภาษา PL/I ซึ่งเป็นภาษาที่อยู่ระหว่างการพัฒนาและมีการพัฒนาล่าช้ากว่ากำหนดการที่กำหนดไว้มากและมีข้อบกพร่องมากมาย นอกจากนี้แล้วยังมีการนำความคิดที่ล้ำสมัยหลายอย่างมาใช้ในขณะที่เทคโนโลยียังไม่พร้อม ปัจจัยเหล่านี้ส่งผลให้โครงการนี้ไม่ประสบความสำเร็จเช่นเดียวกับการพัฒนางานของ Charles Babbage ในสมัยศตวรรษที่ 19
เมื่อสิ้นระยะแรกของโครงการ ห้องปฏิบัติการ Bell ถอนตัวออกจากโครงการ ทำให้นักวิจัยคนหนึ่งในโครงการนี้คือ Ken Thompson ซึ่งว่างงานอยู่เริ่มหาแนวทางในการทำวิจัยต่อไป ในที่สุดตัดสินใจที่จะทำการเขียนระบบปฏิบัติการ MULTICS แบบย่อส่วนขึ้นโดยใช้ภาษา Assembly โดยใช้เครื่องมินิคอมพิวเตอร์รุ่น PDP-7 ซึ่งว่างอยู่ในขณะนั้น ระบบปฏิบัติการของ Thompson สามารถทำงานได้เป็นอย่างดี ระบบปฏิบัติการนี้นักวิจัยอีกคนหนึ่งของห้องปฏิบัติการ Bell คือ Brian Kernighan ตั้งชื่อให้ว่า UNICS หรือ Uniplexed Information and Computing Service เพื่อเป็นการล้อเลียนโครงการ MULTICS และต่อมาได้รับการเปลี่ยนชื่อเป็น UNIX
ระบบปฏิบัติการ UNIX สำหรับเครื่อง PDP-11
ระบบปฏิบัติการของ Thompson เป็นที่ประทับใจของนักวิจัยที่ห้องปฏิบัติการ Bell มาก ดังนั้นในเวลาต่อมาจึงมีนักวิจัยอื่นเข้าร่วมโครงการด้วย ผู้ที่เข้าร่วมงานด้วยเป็นคนแรกได้แก่ Dennis Ritchie และต่อมานักวิจัยทั้งแผนกเข้าร่วมโครงการด้วย โครงการนี้มีแนวทางในการพัฒนาระบบปฏิบัติการสองประการด้วยคือ ประการแรกเป็นการพัฒนาระบบปฏิบัติการ UNIX ขึ้นใหม่สำหรับเครื่องรุ่น PDP-11/20 ซึ่งมีขีดความสามารถสูงกว่าเครื่องรุ่น PDP-7 ซึ่งเลิกผลิตแล้ว และทำการพัฒนาต่อไปเพื่อให้สามารถใช้ได้กับเครื่องรุ่น PDP-11/45 และ PDP-11/70 ด้วย เครื่องคอมพิวเตอร์ทั้งสองรุ่นเป็นเครื่องที่ได้รับความนิยมในตลาดสูงในช่วงทศวรรษ 1970 และเป็นเครื่องที่มีหน่วยความจำขนาดใหญ่ มีกลไกการป้องกันหน่วยความจำที่ใช้ hardware ทำให้เป็นเครื่องที่มีความเหมาะสมสำหรับการรองรับการใช้งานของผู้ใช้หลายคนในเวลาเดียวกัน (multiuser)
แนวทางในการพัฒนาประการที่สองเป็นการพัฒนาภาษาระดับสูงเพื่อใช้ในการเขียนระบบปฏิบัติการ เพื่อให้สะดวกในการพัฒนาระบบปฏิบัติการสำหรับเครื่องคอมพิวเตอร์หลายรุ่นที่มีโครงสร้างทาง hardware ต่างกัน เนื่องจากการใช้ภาษา Assembly ใช้เวลาในการพัฒนามาก ในระยะแรกของการพัฒนา Thompson ใช้ภาษา B ซึ่งเป็นภาษาที่ Thompson ดัดแปลงให้ง่ายขึ้นจากภาษา BCPL แต่เนื่องจากภาษา B เป็นภาษาที่มีโครงสร้างข้อมูลและโครงสร้างควบคุมจำกัด ดังนั้นการพัฒนาระบบปฏิบัติการ UNIX โดยใช้ภาษา B จึงไม่ประสบความสำเร็จเท่าที่ควร Dennis Ritchie จึงทำการพัฒนาและปรับปรุงภาษา B ให้มีคุณสมบัติเหมาะสมในการเขียนระบบปฏิบัติการและเรียกภาษานี้ใหม่ว่าภาษา C เมื่อได้ภาษาตามความต้องการแล้ว Thompson และ Ritchie จึงร่วมกันพัฒนาระบบปฏิบัติการ UNIX โดยใช้ภาษา C นอกจากภาษา C จะเป็นภาษาที่เหมาะสมในการเขียนระบบปฏิบัติการแล้ว ยังเป็นภาษาเอนกประสงค์สำหรับใช้เขียนโปรแกรมทั่วไปด้วยทำให้เป็นภาษาที่ได้รับความนิยมในหมู่นักเขียนโปรแกรมมานับตั้งแต่นั้นเป็นต้นมา
ในปี ค.ศ. 1974 Ritchie และ Thompson ทำการตีพิมพ์ผลงานการวิจัยและพัฒนาระบบปฏิบัติการ UNIX อันมีผลทั้งสองคนได้รับรางวัล ACM Turing Award ในปี ค.ศ.1984 จากผลงานดังกล่าวนี้เองทำให้มหาวิทยาลัยต่างๆเกิดความสนใจและติดต่อขอใช้งานระบบปฏิบัติการ UNIX จากบริษัท AT&T ซึ่งเป็นเจ้าของห้องปฏิบัติการ Bell และเป็นผู้ถือลิขสิทธิ์ เนื่องจากในขณะนั้นบริษัท AT&T ยังเป็นบริษัทที่อยู่ภายใต้การควบคุมของรัฐบาลและไม่ได้รับการอนุญาตให้ประกอบธุรกิจเกี่ยวกับคอมพิวเตอร์ ดังนั้นบริษัท AT&T จึงอนุญาตให้มหาวิทยาลัยต่างๆใช้ระบบปฏิบัติการ UNIX ได้โดยเสียค่าธรรมเนียมเพียงเล็กน้อย
การอนุญาตให้มหาวิทยาลัยใช้งานระบบปฏิบัติการ UNIX เป็นผลดีต่อการวิจัยและพัฒนาระบบปฏิบัติการ UNIX ในระยะเวลาต่อมา เนื่องจากเครื่องคอมพิวเตอร์ที่มหาวิทยาลัยต่างๆมีใช้งานอยู่ในขณะนั้นเป็นเครื่อง PDP-11 และระบบปฏิบัติการที่มากับเครื่องมีประสิทธิภาพต่ำและใช้งานยาก ระบบปฏิบัติการเดิมของเครื่องจึงถูกทดแทนด้วยระบบปฏิบัติการ UNIX และเนื่องจากมหาวิทยาลัยได้รับสิทธิในการใช้งานโปรแกรมต้นฉบับด้วย จึงทำให้เกิดการวิจัยและพัฒนาระบบปฏิบัติการ UNIX กันอย่างต่อเนื่องและกว้างขวางจนถึงกับมีการจัดประชุมสัมมนาเรื่อง UNIX โดยเฉพาะ และเมื่อ John Lions อาจารย์ชาวออสเตรเลียเขียนเอกสารทางเทคนิคอธิบายการทำงานของโปรแกรมต้นฉบับของระบบปฏิบัติการ UNIX อย่างละเอียดและตีพิมพ์เผยแพร่ออกไป ทำให้มีผู้สนใจทำการวิจัยและพัฒนาเพื่อปรับปรุงระบบปฏิบัติการ UNIX มากยิ่งขึ้น ระบบปฏิบัติการ UNIX ที่ได้รับการยอมรับเป็นมาตรฐาน(อย่างไม่เป็นทางการ)ในกลุ่มสถาบันการศึกษาได้แก่รุ่นที่เรียกว่า UNIX version 6 ตามชื่อคู่มือ UNIX Programmer’s Manual ฉบับพิมพ์ครั้งที่ 6 และในช่วงระยะเวลาหลังจากนั้นอีกสองสามปีมีการพัฒนาระบบปฏิบัติการ UNIX version 7 ขึ้นใช้งานแทน เนื่องจาก UNIX เป็นระบบปฏิบัติการที่ใช้กันอย่างแพร่หลายในสถาบันการศึกษาทำให้มีจำนวนนิสิตนักศึกษาที่รู้จักและคุ้นเคยกับระบบปฏิบัติการนี้เป็นจำนวนมาก เมื่อนิสิตนักศึกษาเหล่านี้จบการศึกษาและออกไปทำงาน มีการนำระบบปฏิบัติการ UNIX ไปเผยแพร่ในภาคธุรกิจและอุตสาหกรรมที่ตนทำงานด้วย ทำให้ระบบปฏิบัติการ UNIX แพร่หลายออกไปจนเป็นระบบปฏิบัติการที่นิยมใช้แพร่หลายในเครื่องมินิคอมพิวเตอร์ และเครื่องคอมพิวเตอร์แบบ workstation ที่ใช้งานในด้านวิทยาศาสตร์และวิศวกรรม
ภาพโดยรวมของระบบปฏิบัติการ UNIX
เป้าหมายของ UNIX
UNIX เป็นระบบปฏิบัติการชนิดที่เรียกว่า interactive timesharing และเป็นระบบปฏิบัติการที่ได้รับการออกแบบโดยนักเขียนโปรแกรม เพื่อให้มีสภาพแวดล้อมในการทำงานที่เหมาะสมกับการพัฒนาโปรแกรมขนาดใหญ่และมีความซับซ้อน การพัฒนาโปรแกรมในโครงการเช่นนี้ต้องใช้นักเขียนโปรแกรมจำนวนมากทำงานร่วมกัน ในระหว่างการพัฒนานักเขียนโปรแกรมเหล่านี้จำเป็นต้องใช้ข้อมูลร่วมกันทั้งในส่วนของโปรแกรมต้นฉบับและข้อมูลสำหรับทดสอบ ข้อมูลเหล่านี้ต้องมีกลไกควบคุมการใช้งานที่เหมาะสม ดังนั้นระบบปฏิบัติการ UNIX ซึ่งได้รับการออกแบบให้เหมาะสมในการทำงานของนักเขียนโปรแกรมจึงเป็นระบบปฏิบัติการที่มีลักษณะแตกต่างออกไปจากระบบปฏิบัติการของเครื่องคอมพิวเตอร์ส่วนบุคคลที่ออกแบบสำหรับให้ใช้กับงานสำนักงานโดยทั่วไป
เนื่องจาก UNIX เป็นระบบปฏิบัติการที่สร้างขึ้นสนับสนุนการเขียนโปรแกรม ดังนั้นหากจะทำความเข้าใจปรัชญาของ UNIX ต้องเริ่มต้นด้วยคำถามที่ว่าผู้เขียนโปรแกรมมีความต้องการอย่างไรต่อระบบปฏิบัติการ ความต้องการประการแรกคือผู้เขียนโปรแกรมต้องการระบบปฏิบัติการที่เรียบง่าย และมีความแน่นอนและแนวปฏิบัติเป็นแบบเดียวกัน ตัวอย่างความเรียบง่ายของระบบปฏิบัติการได้แก่ระบบแฟ้ม กล่าวคือระบบปฏิบัติการมองแฟ้มเป็นที่รวมของข้อมูลระดับไบต์โดยไม่สนใจว่าไบต์ข้อมูลเหล่านี้เป็นข้อมูลชนิดใดและมีกรรมวิธีในการเข้าถึงข้อมูลนั้นอย่างไร การแยกชนิดของข้อมูลในแฟ้มว่าเป็นแบบอักขระ (text) หรือรหัสฐานสอง (binary) รวมถึงวิธีการเข้าถึงข้อมูล เช่นการเข้าถึงข้อมูลแบบตามลำดับ การเข้าถึงข้อมูลแบบสุ่ม หรือการเข้าถึงข้อมูลโดยใช้ดัชนี เป็นเรื่องของโปรแกรมประยุกต์ที่จะต้องตัดสินใจและดำเนินการเอง นอกจากนี้แล้วระบบปฏิบัติการยังมองอุปกรณ์นำข้อมูลเข้าเช่น แป้นพิมพ์และจอภาพ เป็นแฟ้มด้วย ทำให้การดำเนินการเกี่ยวกับแป้นพิมพและจอภาพเป็นไปเช่นเดียวกับแฟ้มทำให้เรียกใช้งานได้สะดวก ตัวอย่างของความแน่นอนและมีแนวปฏิบัติเป็นแบบเดียวกันของระบบปฏิบัติการเช่น หากคำสั่ง ls A* หมายถึงการแสดงรายชื่อแฟ้มที่ขึ้นต้นด้วยอักษร A แล้ว คำสั่ง rm A* ต้องหมายถึงการลบแฟ้มข้อมูลทุกแฟ้มที่ขึ้นต้นด้วยอักษร A ไม่ใช่แฟ้มข้อมูลที่มีชื่อเป็น A* คุณลักษณะของระบบปฏิบัติการเช่นนี้เรียกว่า principle of least surprise
ความต้องการประการที่สองที่ผู้เขียนโปรแกรมต้องการคือระบบปฏิบัติการที่มีความสามารถสูง และมีความยืดหยุ่นในการทำงาน ซึ่งหมายความว่าระบบปฏิบัติการควรมีองค์ประกอบพื้นฐานจำนวนน้อย แต่องค์ประกอบพื้นฐานเหล่านี้ต้องสามารถนำมาเชื่อมต่อกันหรือทำงานร่วมกันได้หลายรูปแบบเพื่อให้เหมาะสมกับการแก้ปัญหาแต่ละชนิด หลักการที่สำคัญของเรื่องนี้คือโปรแกรมอรรถประโยชน์แต่ละโปรแกรมที่มีในระบบปฏิบัติการ UNIX ต้องเป็นโปรแกรมที่สามารถทำงานได้เพียงอย่างเดียวและต้องทำงานนั้นได้เป็นอย่างดี ตัวอย่างเช่นโปรแกรมตัวแปลภาษา (compiler) เป็นโปรแกรมที่ทำหน้าที่ในการตรวจสอบและแปลโปรแกรมภาษาต้นฉบับเป็นภาษาเครื่องเพียงอย่างเดีย ไม่สามารถพิมพ์โปรแกรมต้นฉบับออกทางจอภาพหรือเครื่องพิมพ์ เนื่องจากมีโปรแกรมอื่นเช่น cat ซึ่งมีความสามารถในการแสดงผลทางจอภาพและเครื่องพิมพ์ได้ดีกว่า
ความต้องการประการสุดท้ายที่ผู้เขียนโปรแกรมต้องการจากระบบปฏิบัติการคือการสั่งงานที่ง่าย รวบรัดและตรงไปตรงมา โดยทั่วไปแล้วผู้เขียนโปรแกรมไม่ชอบการพิมพ์คำสั่งยาวเกินความจำเป็น เช่นในการคัดลอกแฟ้ม คำสั่งที่ประกอบด้วยตัวอักขระสองตัวคือ cp มีความหมายชัดเจนพอแล้ว ดังนั้นจึงใช้คำสั่ง cp แทนคำว่า copy ได้ นอกจากนี้แล้วนักเขียนโปรแกรมยังต้องการระบบที่ทำงานทันทีที่ได้รับคำสั่งมากกว่าระบบที่มีการโต้ตอบกับผู้ใช้ เช่นการค้นหาบรรทัดข้อความที่มีคำว่า “system” ทุกบรรทัดจากแฟ้มชื่อ “myfile1” และแฟ้มชื่อ “myfile2” ผู้ใช้สามารถใช้คำสั่ง grep system myfile1 myfile2 ได้ทันที โดยไม่ต้องเริ่มต้นด้วยการเรียกใช้โปรแกรม grep ก่อน จากนั้นโปรแกรม grep จะขอให้ผู้ใช้ป้อนข้อความที่ต้องการค้นเข้าไป หลังจากนั้นจึงขอให้ผู้ใช้ป้อนชื่อแฟ้มที่ต้องการค้นหาข้อความแฟ้มแรกเข้าไป เมื่อได้ชื่อของแฟ้มแรกแฟ้มแล้วจะขอให้ผู้ใช้บอกต่อไปว่ายังมีแฟ้มอื่นอีกหรือไม่ หากมีให้ป้อนชื่อแฟ้มต่อไปจนกว่าจะหมดแล้วจึงจะเริ่มทำงาน การติดต่อกับผู้ใช้แบบนี้อาจจะเหมาะสมสำหรับผู้เริ่มต้น แต่เมื่อผู้ใช้เริ่มมีความชำนาญมากขึ้นผู้ใช้จะเริ่มรู้สึกรำคาญ และอยากป้อนคำสั่งเพียงครั้งเดียวให้ได้ผลตามที่ต้องการ กล่าวอีกนัยหนึ่งคือผู้ใช้งานต้องการระบบปฏิบัติการที่ทำหน้าที่เป็นผู้รับใช้ซึ่งเมื่อได้รับคำสั่งที่ชัดเจนแล้วลงมือทำงานมากกว่าระบบปฏิบัติการที่ทำหน้าที่เป็นพี่เลี้ยงที่จะต้องคอยสอบถามและให้คำแนะนำอยู่ตลอดเวลา
โครงสร้างของระบบปฏิบัติการ UNIX
ระบบปฏิบัติการ UNIX มีลักษณะโครงสร้างคล้ายระบบปฏิบัติการทั่วไปคือแยกการทำงานออกเป็นชั้นโดยในระดับล่างสุดเป็น hardware ประกอบด้วยหน่วยประมวลผลกลาง, หน่วยความจำ, จานแม่เหล็ก, จอภาพ และอุปกรณ์อื่นๆ ชั้นถัดมาเป็นระบบปฏิบัติการ UNIX ซึ่งมีหน้าที่ในการควบคุมและจัดการ process หน่วยความจำ ระบบแฟ้ม และhardware อื่นๆ รวมถึงการให้บริการต่างๆแก่ระดับชั้นที่อยู่เหนือขึ้นไปและสามารถให้บริการผู้ใช้โดยตรงผ่านการบริการที่เรียกว่า system call การทำงานของระบบปฏิบัติการในชั้นนี้เรียกว่า kernel mode ส่วนการทำงานของชั้นที่อยู่เหนือขึ้นไปทั้งหมดเรียกว่า user mode ชั้นที่อยู่ถัดจากระบบปฏิบัติการขึ้นไปเป็นชั้นที่เรียกว่า standard library ซึ่งเป็นที่รวมของโปรแกรมย่อยสำหรับบริการของระบบปฏิบัติการที่โปรแกรมผู้ใช้สามารถเรียกใช้ได้ เช่น open, close, read, write และ fork เป็นต้น ชั้นต่อไปเป็นชั้นของโปรแกรมอรรถประโยชน์ (utility) ในระบบ เช่น shell ตัวแปลภาษาเป็นต้น และชั้นสุดท้ายเป็นชั้นของผู้ใช้ (user)
จากโครงสร้างดังกล่าวแล้วเมื่อผู้ใช้ต้องการเรียกใช้บริการของระบบปฏิบัติการ (system call) จากโปรแกรมภาษา Assembly ผู้ใช้ต้องกำหนดค่า arguments ที่ต้องการลงใน register หรือใน stack ที่กำหนดไว้สำหรับ system call นั้นๆ จากนั้นจึงใช้คำสั่ง trap เพื่อเปลี่ยนภาวะการทำงานของโปรแกรมจาก user mode ไปเป็น kernel mode เพื่อทำงานตามความต้องการ สำหรับภาษาระดับสูงเช่น C ซึ่งไม่สามารถใช้คำสั่ง trap ได้โดยตรง ต้องมีการสร้าง library สำหรับเรียกใช้งาน system call เหล่านี้ โดยกำหนดให้มีโปรแกรมย่อยหนึ่งโปรแกรมต่อ system call หนึ่งตัว โปรแกรมย่อยเหล่านี้เขียนขึ้นด้วยภาษา Assembly และสามารถเรียกใช้ได้จากภาษา C เสมือนหนึ่งเป็นโปรแกรมย่อยที่เขียนขึ้นด้วยภาษา C เมื่อผู้ใช้ต้องการใช้งาน system call ผู้ใช้จะทำการเรียกใช้ได้เช่นเดียวกับการเรียกใช้ฟังก์ชันทั่วไปในภาษา C เช่นการเรียกใช้ READ system call โปรแกรมภาษา C จะทำการเรียกใช้ โปรแกรมย่อย READ ที่กำหนดไว้ใน library บริการหรือ system call เหล่านี้มีการกำหนดไว้เป็นมาตรฐานโดย POSIX เพื่อให้การให้บริการของระบบปฏิบัติการ UNIX ที่มีการพัฒนาจากผู้ผลิตต่างๆ มีการให้บริการแบบเดียวกันและมีวิธีการเรียกเหมือนกัน
นอกจากตัวระบบปฏิบัติการและ system calls แล้ว ระบบปฏิบัติการ UNIX ทุกระบบยังมีโปรแกรมอรรถประโยชน์ (utility) จำนวนมาก โปรแกรมเหล่านี้ส่วนหนึ่งเป็นไปตามมาตรฐาน POSIX 1003.2 และอีกส่วนหนึ่งมีความแตกต่างกันออกไปตามผู้ผลิตและรุ่นระบบปฏิบัติการ โปรแกรมเหล่านี้ได้แก่โปรแกรมสำหรับติดต่อกับผู้ใช้เรียกว่า command preprocessor หรือ shell โปรแกรมตัวแปลภาษา (compiler) โปรแกรมสำหรับใช้พิมพ์เอกสารทั่วไป (editor) โปรแกรมสำหรับดำเนินการกับข้อความ (text processing program) และโปรแกรมสำหรับดำเนินการกับแฟ้ม หรือกล่าวอีกนัยหนึ่งคือเป็นโปรแกรมทั่วไปที่ผู้ใช้เรียกใช้ในระบบนั่นเอง
จากที่ได้กล่าวมาแล้วจะเห็นได้ว่าการเชื่อมต่อระหว่างผู้ใช้และระบบปฏิบัติการ UNIX มีสามแบบคือ การเชื่อมต่อผ่าน system call การเชื่อมต่อผ่าน library และการเชื่อมต่อผ่านโปรแกรมอรรถประโยชน์ เนื่องจากผู้ใช้ทั่วไปมีการเชื่อมต่อกับระบบปฏิบัติการส่วนใหญ่ผ่านโปรแกรมอรรถประโยชน์ จึงทำให้ผู้ใช้ทั่วไปคิดว่าโปรแกรมอรรถประโยชน์เหล่านี้คือระบบปฏิบัติการ UNIX ซึ่งโดยความเป็นจริงแล้วเป็นโปรแกรมส่วนนี้ไม่ใช่ระบบปฏิบัติการและสามารถเปลี่ยนแทนได้โดยง่าย เช่นในระบบปฏิบัติการ UNIX ที่สนับสนุนการติดต่อกับผู้ใช้แบบรูปภาพ (Graphic User Interface) โดยใช้ระบบ X-Window สามารถนำโปรแกรมส่วนของการติดต่อกับผู้ใช้ด้วย mouse เพิ่มเติมเข้าในระบบหรือเปลี่ยนแทนโปรแกรมการติดต่อกับผู้ใช้ด้วยแป้นพิมพ์ โดยไม่ต้องมีการเปลี่ยนแปลงตัวระบบปฏิบัติการแต่อย่างใด ความยืดหยุ่นเช่นนี้เองที่ทำให้ระบบปฏิบัติการ UNIX เป็นระบบปฏิบัติการที่ได้รับความนิยมแพร่หลาย และเป็นระบบปฏิบัติที่คงอยู่ได้ตลอดเวลาถึงแม้ว่าเทคโนโลยีจะเปลี่ยนแปลงไปเพียงใดก็ตาม
การเข้าใช้งานระบบปฏิบัติการ UNIX
ในการใช้งานระบบปฏิบัติการ UNIX ผู้ใช้ต้องเริ่มด้วยการระบุตนเองต่อระบบโดยการแจ้งชื่อผู้ใช้และรหัสผ่าน ซึ่งโปรแกรม login จะทำการอ่านข้อมูลดังกล่าวและทำการตรวจสอบว่าเป็นผู้ใช้ที่ถูกต้องหรือไม่ หากถูกต้องจึงจะยอมให้ผู้ใช้นั้นเข้าใช้ระบบได้ การระบุตนเองนี้มีความสำคัญมากในการรักษาความปลอดภัยของระบบ เนื่องจากระบบปฏิบัติการ UNIX จะทำการตรวจสอบและติดตามอยู่ตลอดเวลาว่าแฟ้มข้อมูลใดเป็นของผู้ใช้คนใด ดังนั้นแฟ้มข้อมูลแต่ละแฟ้มจะได้รับการอนุญาตให้ใช้งานได้เฉพาะผู้ใช้ที่มีสิทธิในการใช้แฟ้มข้อมูลนั้น เท่านั้น ถึงแม้ว่าแนวความคิดเช่นนี้จะเป็นแนวคิดพื้นฐานทั่วไปในระบบ timesharing แต่ก็เป็นระบบที่แตกต่างจากระบบปฏิบัติการของเครื่องคอมพิวเตอร์ส่วนบุคคลเช่น MS-DOS และ MS-Windows ซึ่งไม่มีการรักษาความปลอดภัยในการใช้งานทรัพยากรในระบบเลย ผู้ใช้สามารถเข้าถึงและเปลี่ยนแปลงแฟ้มข้อมูลใดๆก็ได้โดยไม่ต้องสนใจว่าแฟ้มข้อมูลนั้นผู้ใช้ใดเป็นผู้สร้างขึ้น
ระบบปฏิบัติการ UNIX เก็บชื่อผู้ใช้และรหัสผ่านที่เข้ารหัสแล้วในแฟ้ม /etc/passwd ซึ่งเป็นแฟ้มที่ผู้ใช้ทั่วไปสามารถขอดูข้อมูลได้ ข้อมูลแต่ละบรรทัดของแฟ้มนี้เป็ฯตัวแทนผู้ใช้แต่ละคนซึ่งประกอบด้วยชื่อผู้ใช้ (login name) รหัสผ่านที่เข้ารหัสไว้แล้ว (encrypted password) หรืออักขระตัวแทนของรหัสผ่าน เลขประจำตัวผู้ใช้ (user id) home directory และข้อมูลอื่นๆ เมื่อผู้ใช้เข้าใช้งานระบบโปรแกรม login จะทำการรับชื่อผู้ใช้และรหัสผ่าน แล้วทำการเข้ารหัสรหัสผ่าน และเปรียบเทียบกับรหัสผ่านที่เข้ารหัสไว้แล้ว หากรหัสทั้งสองชุดตรงกัน ระบบจะถือว่าเป็นผู้ใช้ที่มีสิทธืจริงและยอมให้ผู้ใช้นั้นเข้าใช้งานระบบได้
เนื่องจากรหัสผ่านที่ผู้ใช้เห็นในแฟ้ม /etc/passwd เป็นรหัสผ่านที่มีการเข้ารหัสไว้แล้ว ดังนั้นผู้ดูแลระบบจึงไม่ต้องกังวลว่าแฟ้มเก็บข้อมูลรหัสผ่านจะรั่วไหลออกไป นอกจากนี้แล้วการยอมให้ผู้ใช้ทั่วไปอ่านข้อมูลส่วนนี้ได้ช่วยทำให้ระบบมีลักษณะเป็นกลาง (generality) ตัวอย่างเช่นหากโปรแกรมหนึ่งต้องการใช้งานแฟ้มข้อมูลหนึ่งแต่ไม่มีสิทธิในการใช้ ผู้เขียนโปรแกรมนั้นอาจตรวจสอบเลขประจำตัวผู้ใช้ของเจ้าของแฟ้มข้อมูลจากระบบปฏิบัติการแล้วนำไปตรวจสอบเพื่อหาชื่อของเจ้าของแฟ้มข้อมูลนั้นกับข้อมูลในแฟ้มรหัสผ่าน ทั้งนี้เพื่อติดต่อขออนุญาตใช้งานแฟ้มข้อมูลนั้นต่อไป ลักษณะเช่นนี้ช่วยให้การทำงานของระบบมีความคล่องตัวมากขึ้น
การติดต่อกับผู้ใช้ (Shell)
หลังจากที่ผู้ใช้ได้รับการอนุญาตให้ใช้งานระบบแล้ว โปรแกรม login จะทำการเรียกโปรแกรมที่ทำงานเป็น command line interpreter ตามที่ระบุไว้ในแฟ้มรหัสผ่านขึ้นมาทำงานแทน ถึงแม้ว่าโปรแกรมที่ทำหน้าที่เป็น command line interpreter จะมีหลายแบบ แต่แบบที่เป็นพื้นฐานและมีการใช้งานแพร่หลายที่สุดเรียกว่า shell เมื่อโปรแกรม login ทำการเรียก shell เข้าสู่หน่วยความจำแล้ว shell จะทำการ initialize ตนเองแล้วแสดงเครื่องหมาย prompt ออกทางหน้าจอ ซึ่งเครื่องหมาย prompt นี้อาจเป็นเครื่องหมาย $ หรือ % หรือเครื่องหมายอื่นใดตามที่ผู้ดูแลระบบกำหนดไว้ก็ได้ การที่ shell แสดงเครื่องหมาย prompt หมายความว่า shell พร้อมที่จะรับและดำเนินการตามคำสั่งที่ผู้ใช้จะป้อนเข้ามาทางแป้นพิมพ์แล้ว
เมื่อผู้ใช้ป้อนคำสั่งและ argument ที่เกี่ยวข้อง ซึ่งรวมเรียกว่าบรรทัดคำสั่ง (command line) โปรแกรม shell จะทำการแยกคำออกจากบรรทัดคำสั่ง โดยใช้คำแรกที่แยกได้เป็นชื่อของโปรแกรมที่ผู้ใช้ต้องการเรียกใช้ จากนั้น shell จะทำการค้นหาแฟ้มโปรแกรมนั้นตามเส้นทางการค้นหาแฟ้มโปรแกรมที่กำหนดไว้ หาก shell พบแฟ้มโปรแกรมตามที่กำหนดจะอ่านโปรแกรมนั้นเข้าสู่หน่วยความจำและส่งผ่านการทำงานให้กับโปรแกรมนั้น เมื่อโปรแกรมนั้นทำงานจบแล้วจะคืนการควบคุมให้กับ shell ซึ่งจะแสดงเครื่องหมาย prompt เพื่อรอรับบรรทัดคำสั่งต่อไป เนื่องจากผู้ใช้ทั่วไปทำงานโดยการติดต่อกับ shell จึงมักจะเข้าใจว่า shell คือระบบปฏิบัติการซึ่งในความเป็นจริงแล้ว shell เป็นโปรแกรมธรรมดาโปรแกรมหนึ่งที่มีความสามารถในการอ่านข้อมูลขจากแป้นพิมพ์และส่งผลลัพ์ออกสู่จอภาพ และมีความสามารถในการเรียกโปรแกรมอื่นขึ้นมาทำงานภายใต้การควบคุมของตน shell ในระบบปฏิบัติการ UNIX มีหลายแบบ เช่น Bourne shell, C shell และ Korn shell เป็นต้นซึ่งผู้ใช้สามารถเลือกใช้ได้ตามความพอใจ
หากในบรรทัดคำสั่งที่ผู้ใช้ป้อนเข้ามามี argument ประกอบการทำงานของโปรแกรม shell จะทำการผ่าน argument เหล่านั้นให้กับโปรแกรมที่ผู้ใช้ต้องการในรูปของ character string ตัวอย่างเช่นบรรทัดคำสั่ง
cp myfile backup
เป็นการกำหนดให้ shell เรียกใช้โปรแกรม cp (ทำการสำเนาแฟ้ม) โดยมี argument 2 ตัวคือ myfile และ backup เมื่อ shell ได้รับบรรทัดคำสั่งนี้แล้ว จะทำการแยกคำแรกของบรรทัดคำสั่ง คือ cp เป็นชื่อโปรแกรมและทำการผ่านค่า myfile และ backup เป็น argument ให้กับโปรแกรม cp เมื่อโปรแกรม cp เริ่มทำงานจะทำการอ่านแฟ้มชื่อ myfile ทำการสำเนาเนื้อหาโดยเขียนลงในแฟ้มชื่อ backup อย่างไรก็ตาม argument ที่ผู้ใช้กำหนดในบรรทัดคำสั่งไม่จำเป็นต้องเป็นชื่อแฟ้มเสมอไป เช่นคำสั่ง
head –20 myfile
argument แรกคือ –20 เป็นค่าที่กำหนดให้โปรแกรม head ทำการพิมพ์ข้อความ 20 บรรทัดแรกของแฟ้มข้อมูลชื่อ myfile ออกทางจอภาพ แทนที่จะใช้ค่าที่กำหนดไว้ในโปรแกรม (default) คือ 10 บรรทัด สำหรับ argument ที่ใช้ในการควบคุมการทำงานของโปรแกรม หรือใช้ในการกำหนดทางเลือกในการทำงาน (option) นิยมเรียกว่า flags และโดยทั่วไปแล้วนิยมนำหน้าด้วยเครื่องหมายขีด (-) ทั้งนี้เพื่อทำให้คำสั่งนั้นมีความหมายที่ชัดเจน เนื่องจากคำสั่ง
head 20 myfile
เป็นคำสั่งที่ถูกต้องและมีความหมายสมบูรณ์ในตัว เพราะเป็นคำสั่งให้โปรแกรม head แสดงข้อความ 10 บรรทัดแรกของแฟ้มข้อมูลที่มีชื่อเป็น 20 จากนั้นจึงแสดงข้อความ 10 บรรทัดแรกของแฟ้มที่มีชื่อเป็น myfile คำสั่งใน UNIX เป็นคำสั่งที่สามารถรับ flags และ arguments หลายตัวได้ในบรรทัดคำสั่งเดียว
จากการที่คำสั่งใน UNIX สามารถรับ argument ได้หลายตัวโดยเฉพาะ argument ที่เป็นชื่อแฟ้ม ดังนั้นเพื่อความสะดวกในการระบุชื่อแฟ้มหลายแฟ้มจึงกำหนดให้ shell สนับสนุนการใช้อักขระพิเศษที่เรียกว่า wildcards เช่น เครื่องหมายดอกจัน (* - asterisk) ใช้แทน string ใดๆก็ได้ ดังนั้น
ls *.c
*.c เป็น argument ที่กำหนดให้โปรแกรม ls แสดงรายชื่อแฟ้มใน directory ปัจจุบันที่มีชื่อแฟ้มลงท้ายด้วย .c นอกจากเครื่องหมายดอกจันแล้วยังมีการกำหนดให้เครื่องหมายปรัศนีย์ (?) เป็น wildcard อีกตัวหนึ่งและใช้แทนอักขระใดๆจำนวนหนึ่งตัว
การทำงานของโปรแกรมใดๆมีลักษณะคล้ายกับ shell ที่ไม่ต้องทำการเปิด terminal สำหรับอ่านข้อมูลจากแป้นพิมพ์ และเขียนข้อมูลออกสู่จอภาพ โดยที่เมื่อโปรแกรมเริ่มทำงาน โปรแกรมสามารถติดต่อกับแฟ้มสามแฟ้มได้โดยอัตโนมัติ แฟ้มทั้งสามนี้ได้แก่ standard input สำหรับอ่านข้อมูลเข้าสู่โปรแกรม standard output สำหรับส่งข้อมูลออกจากโปรแกรม และ standard error สำหรับส่งข่าวสารแสดงความผิดพลาดออกจากโปรแกรม โดยทั่วไปแล้วแฟ้มทั้งสามนี้กำหนดให้เป็น terminal เพื่อจะได้สามารถอ่านข้อมูลที่ผู้ใช้ป้อนเข้าทางแป้นพิมพ์ได้ และสามารถแสดงผลการทำงานหรือข่าวสารแสดงความผิดพลาดออกทางจอภาพได้ โปรแกรมส่วนใหญ่ใน UNIX อ่านข้อมูลจาก standard input และเขียนข้อมูลออกสู่ standard output เช่นการใช้คำสั่ง
sort
เป็นการเรียกใช้โปรแกรม sort ซึ่งทำหน้าที่ในการอ่านบรรทัดข้อความที่ผู้ใช้ป้อนเข้ามาทางแป้นพิมพ์ (standard input) จนกว่าผู้ใช้จะกดแป้น Ctrl-D ซึ่งใช้เป็นสัญลักษณ์แทนจุดสิ้นสุดของแฟ้ม (end-of-file) ทำการจัดเรียงบรรทัดข้อมูลที่ได้รับตามลำดับตัวอักษร และส่งบรรทัดข้อมูลที่จัดเรียงแล้วออกทางจอภาพ (standard output)
โปรแกรมที่มีอ่านข้อมูลจาก standard input และเขียนข้อมูลสู่ standard output เช่นนี้ ผู้ใช้สามารถเปลี่ยนทิศทางของ input และ output ได้ และเรียกการทำเช่นนี้ว่า redirect โดยใช้เครื่องหมายน้อยกว่า (<) แทนการเปลี่ยน standard input จากแป้นพิมพ์เป็นแฟ้มที่กำหนด และใช้เครื่องหมายมากกว่า (>) แทนการเปลี่ยน standard output จากจอภาพเป็นแฟ้มที่กำหนด เช่น
sort <> outfile
เป็นการกำหนดให้โปรแกรม sort รับข้อมูลจากแฟ้มข้อมูลชื่อ infile แทนที่จะเป็นแป้นพิมพ์ และบันทึกผลลัพธ์ที่ได้ลงในแฟ้มชื่อ outfile แทนที่จะส่งออกจอภาพ อย่างไรก็ดีเนื่องจากคำสั่งนี้ไม่ได้มีการกำหนดใดกับ standard error ดังนั้นหากมีความผิดพลาดเกิดขึ้นในระหว่างการทำงาน ข่าวสารแสดงความผิดพลาดนั้นจะถูกส่งออกไปยังจอภาพซึ่งเป็น standard error ในขณะนั้น ผู้ใช้สามารถทำการ redirect standard error ได้เช่นเดียวกับ standard out โดยมีกรรมวิธีซับซ้อนขึ้นอีกเล็กน้อย ผู้สนใจสามารถศึกษาได้จากคู่มือการใช้งานระบบปฏิบัติการ UNIX สำหรับโปรแกรมใดๆที่มีการรับข้อมูลจาก standard input ทำการประมวลผลข้อมูลนั้น และส่งผลลัพธ์ออกสู่ standard output มีชื่อเรียกเฉพาะว่า filter ขอให้ลองพิจารณาบรรทัดคำสั่งต่อไปนี้
sort <> temp; head -30 <> outfile
กำหนดให้โปรแกรม grep หาบรรทัดที่มีคำว่า “ter” จากแฟ้มทุกแฟ้มใน directory ปัจจุบันที่มีชื่อลงท้ายด้วย .c ผลลัพธ์ที่ได้ใช้เป็นข้อมูลของโปรแกรม sort ซึ่งจะทำหน้าที่ในการจัดเรียงบรรทัดเหล่านั้นตามตัวอักษร บรรทัดข้อความที่ผ่านการจัดเรียงจากโปรแกรม sort ใช้เป็นข้อมูลของโปรแกรม head ซึ่งจะแยกเอาเฉพาะบรรทัดข้อความ 20 บรรทัดแรกที่ได้จากโปรแกรม sort ส่งเป็นข้อมูลให้กับโปรแกรม tail ซึ่งจะทำการแยกเอาเฉพาะ 5 บรรทัดสุดท้าย (บรรทัดที่ 16 - 20 ที่ได้จากโปรแกรม head) บันทึกลงในแฟ้มชื่อ outfile คำสั่งดังกล่าวนี้แสดงให้เห็นแนวความคิดที่ว่าโปรแกรมแต่ละโปรแกรมมีการทำงานเพียงอย่างเดียว และสามารถนำโปรแกรมเหล่านี้มาเชื่อมต่อกันเพื่อให้เกิดงานตามที่ต้องการได้โดยไม่มีข้อจำกัด
ระบบปฏิบัติการ UNIX ไม่ได้เป็นเพียงแต่ระบบ timesharing เพียงอย่างเดียว หากแต่เป็นระบบ multi-programming ชนิดเอนกประสงค์ด้วย ความหมายของระบบนี้คือผู้ใช้แต่ละคนสามารถทำงานได้หลายงานในเวลาเดียวกัน (multitask) โดยโปรแกรมแต่ละโปรแกรมมี process เป็นของตนเอง อย่างไรก็ตามถึงแม้ว่าผู้ใช้จะสามารถใช้งานโปรแกรมหลายโปรแกรมพร้อมกันแต่จะมีเพียงโปรแกรมเดียวที่สามารถติดต่อกับผู้ใช้ได้โดยตรงหรือมีการทำงานแบบ foreground โปรแกรมอื่นที่เหลือจะมีการทำงานแบบ background กล่าวคือไม่สามารถติดต่อโต้ตอบกับผู้ใช้ได้โดยตรง ข้อมูลที่โปรแกรมเหล่านี้ต้องใช้มาจากแฟ้มข้อมูลโดยอาศัยการทำ redirection และผลลัพธ์ที่ได้ต้องบันทึกลงในแฟ้มข้อมูลโดยใช้การทำ redirection เช่นเดียวกัน เพื่อให้การปฏิบัติงานเช่นนี้เป็นไปโดยสะดวกมากขึ้น shell จึงมีคำสั่งเตรียมไว้ให้ผู้ใช้ทำการตรวจสอบ และสลับการทำงานของโปรแกรมในแบบ foreground และ background การเรียกใช้โปรแกรมให้ทำงานเป็น background ทำได้โดยการจบบรรทัดคำสั่งด้วยเครื่องหมาย ampersand (&) เช่น
wc -l <> b &
เป็นการเรียกใช้โปรแกรม wc สำหรับนับจำนวนตัวอักขระ คำ และบรรทัด โดยในตัวอย่างนี้มีผลลัพธ์เป็นจำนวนบรรทัด เนื่องจากมีการใช้ flag –l (line) และกำหนดให้รับข้อมูลที่จะทำการนับมาจากแฟ้มชื่อ a และส่งผลลัพธ์ไปบันทึกลงในแฟ้มชื่อ b โดยให้ทำงานนี้เป็น background การสั่งงานในลักษณะนี้เมื่อผู้ใช้พิมพ์คำสั่งเสร็จ shell จะแสดง prompt เพื่อรอรับคำสั่งต่อไปทันที โดยไม่ต้องรอให้การทำงานของบรรทัดคำสั่งดังกล่าวเสร็จสิ้นก่อน การทำงานเช่นนี้สามารถใช้กับคำสั่งที่มีลักษณะเป็น pipeline ได้ด้วย เช่น
sort <>เรียบเรียงจาก
Tanenbaum, A. S. (1992) Modern Operating Systems, Prentice-Hall International Inc., New
Jersey.
Deitel, H. M. (1990) Operating Systems, 2nd Edition, Addison-Wesley Publishing Company, Inc.,
Massachusetts.
ผู้เรียบเรียง
จิระ จตุรานนท์, ภาควิชาวิทยาการคอมพิวเตอร์, คณะวิทยาศาสตร์ มหาวิทยาลัยบูรพา ชลบุรี
C:\jira\unix\unix1.doc –1 มกราคม 2542
แหล่งเรียนรู้ UNIX
www.compsci.buu.ac.th/
www.learners.in.th/blog/utraaom
www.mut.ac.th/
www.fedorasb.saiyaithai.org/uploads/unix
www.cp101km.swu.ac.th/index.php/
วันพุธที่ 15 ตุลาคม พ.ศ. 2551
คำอธิบายรายวิชา ระบบปฏิบัติการ 2 (Operating Systems 2 )
คำอธิบายรายวิชา (Operating Systems 2 )
ศึกษาหน้าที่และการดำเนินงานของระบบปฏิบัติการ เกี่ยวกับจัดการหน่วยความจำ หน่วยประมวลผลกลาง การจัดแฟ้มข้อมูล หน่วยรับและแสดงผลข้อมูลในลักษณะของผู้ใช้คนเดียว งานเดียว และใช้หลายคนหลายงานพร้อมกัน รวมทั้งการสื่อสารระหว่างขบวนการ (Interprocess Communication : IPC)
บทเรียน E-reanning ที่เกี่ยวกับรายวิชาระบบปฏิบัติการ 2
www.elearningvec.net
www.mis.pkru.ac.th
www.thaiabc.com
www.sup.th.gs
www.elearning.nrct.go.th
www.surajit.vecict.net/elearning/
www.bkkthon.ac.th/
www.krutechnic.net/pdf/elearning
www.blmiacec.ac.th/E-learning/
www.sa.ac.th/elearning
ศึกษาหน้าที่และการดำเนินงานของระบบปฏิบัติการ เกี่ยวกับจัดการหน่วยความจำ หน่วยประมวลผลกลาง การจัดแฟ้มข้อมูล หน่วยรับและแสดงผลข้อมูลในลักษณะของผู้ใช้คนเดียว งานเดียว และใช้หลายคนหลายงานพร้อมกัน รวมทั้งการสื่อสารระหว่างขบวนการ (Interprocess Communication : IPC)
บทเรียน E-reanning ที่เกี่ยวกับรายวิชาระบบปฏิบัติการ 2
www.elearningvec.net
www.mis.pkru.ac.th
www.thaiabc.com
www.sup.th.gs
www.elearning.nrct.go.th
www.surajit.vecict.net/elearning/
www.bkkthon.ac.th/
www.krutechnic.net/pdf/elearning
www.blmiacec.ac.th/E-learning/
www.sa.ac.th/elearning
แนะนำตัวเอง

ประวัติส่วนตัว
ชื่อ นางสาวจิรอภิญญา เพ็งพา ชื่อเล่น สม หรือเรียกญาก็ได้ค่ะ
รหัส 5012252221 โปรแกรมวิทยาการคอมพิวเตอร์ ชั้นปีที่ 2
วัน/เดือน/ปี เกิด วันที่ 21 เดือน กรกฎาคม พ.ศ.2531
ปัจจุบันอาศัยอยู่บ้านเลขที่ 81 หมู่1 ต.คูซอด อ.เมือง จ.ศรีสะเกษ 33000
งานอดิเรก ขายสินค้าในมหาวิทยาลัยเช่น กิ๊ฟช๊อฟ เสื้อผ้า รับจ้างพิมพ์งาน
สิ่งที่ชอบ สิ่งที่ดีๆที่เข้ามาในชีวิต
สิ่งที่ไม่ชอบ สิ่งไม่ดีทุกอย่าง
เบอร์ที่ติดต่อได้ 0876531554
Email : somwaree@hotmail.
เพื่อนสนิท
ไม่มีค่ะ
สมัครสมาชิก:
บทความ (Atom)