วันศุกร์ที่ 1 ตุลาคม พ.ศ. 2553

คลาส (class)

บทที่ 4
คลาส (class)


วัตถุประสงค์
1.เพื่อให้ผู้ศึกษาเข้าความหมายของคลาส (class)
2.เพื่อให้ผู้ศึกษาเกิดความเข้าใจ และสามารถสร้างคลาสในโปรแกรมเชิงวัตถุได้

การกำหนดคลาส (class) ในการเขียนโปรแกรมเชิงวัตถุถือว่ามีความสำคัญเป็นอย่างยิ่ง เนื่องจากแนวคิดเชิงวัตถุมองว่า ทุกๆสิ่งที่กำลังประมวลผลคือวัตถุ (object) และวัตถุจะถูกสร้างขึ้นมาตามต้นแบบหรือคลาส

1. คลาส
คลาส (class) หมายถึง ต้นแบบ หรือแม่แบบ ซึ่งบอกรายละเอียดของสิ่งต่างๆ หากเปรียบเทียบกับโลกแห่งความเป็นจริง คลาสจะหมายถึงแบบแปลนบ้าน หรือพิมพ์เขียว ซึ่งเป็นสิ่งที่ผู้รับเหมาก่อสร้างใช้เพื่อประกอบการสร้างบ้าน


2. องค์ประกอบของคลาส
ภายในคลาส (class) หรือต้นแบบจะประกอบไปด้วยข้อมูล (Data) และพฤติกรรม (Behavior) ของคลาส ในบางตำราอาจใช้คำว่า Properties แทน Data และใช้คำว่า Method แทน Behavior

คลาส

ข้อมูล , คุณสมบัติ

พฤติกรรม

class xxxxx

Properties

Method






3. การตั้งชื่อคลาส
ในการตั้งชื่อคลาส หรือการ identifier มีหลักการที่สำคัญ ดังนี้
1) เขียนเป็นคำติดกัน
2) ไม่ใช้เครื่องหมาย underscore ( _ )
3) คำที่อยู่ถัดไปจะเริ่มต้นด้วยตัวพิมพ์ใหญ่
4) การตั้งชื่อตัวแปร และเมธอดควรเริ่มต้นด้วยตัวพิมพ์เล็ก
5) ในการกำหนดค่าคงที่ (constant) ควรใช้ตัวอักษรพิมพ์ใหญ่ทั้งหมด และใช้เครื่องหมาย (underscore) _ เพื่อแยกคำ

4. คลาสในภาษาจาวา
ในภาษาจาวา ได้กำหนดแนวทางในการเขียนโปรแกรม ที่กล่าวถึงคลาส ดังนี้
1) ในโปรแกรมภาษาจาวา จะต้องมีคลาส (class) อย่างน้อย 1 คลาส
2) ภายใน 1 โปรแกรม สามารถมีคลาสที่เป็น public ได้เพียง 1 คลาส
3) คลาสที่เป็น public จะต้องใช้ชื่อเดียวกับชื่อโปรแกรมเสมอ
4) ต้องทำการสร้าง object ของ class ก่อนเรียกใช้เมธอดเสมอ
class ชื่อคลาส
{
// ส่วนของเมธอดในคลาส
public static void main(String[] args) // เมธอด main
{
xxxxxxxxxxxxxxx ; // ประโยคคำสั่งที่ 1
xxxxxxxxxxxxxxx ; // ประโยคคำสั่งที่ 2
}
static void Test(String s) // เมธอด Test
{
xxxxxxxxxxxxxxx ; // ประโยคคำสั่งที่ 1
}

} // จุดสิ้นสุดของคลาส
Data_Memeber; // ส่วนที่เป็น Data ในคลาส

















ตัวอย่าง การกำหนดคลาสรถยนต์
รถยนต์
+สี
+ล้อ
-เลขตัวถัง
+สตาร์ท ( )
+เคลื่อนที่ ( )
+เบรค ( )
ชื่อคลาส
คุณสมบัติ
เมธอด









ตัวอย่าง โปรแกรม Hello (Hello.java)

5
3
1

อธิบาย
บรรทัดที่ 1 เป็นการประกาศชื่อคลาส
บรรทัดที่ 3 ประกาศเมธอด main( ) ของคลาส Hello
บรรทัดที่ 5 แสดงข้อความ ออกทางจอภาพ

ทำการคอมไพล์ซอร์สโปรแกรม (Source Program)



เมื่อประมวลผล (Run) โปรแกรม จะได้ผลลัพธ์ตามภาพ


จากโค้ดโปรแกรม Hello.java จะพบว่ามีเพียงเมธอดเดียวในโปรแกรมนี้ คือ main( ) เมื่อโปรแกรมถูกประมวลผล (Execute) ก็จะทำคำสั่งภายใน main( ) ทันที โดยจะแสดงข้อความผ่านทาง Output Unit ของระบบ (จอภาพ) ออกมาว่า Hello! you are a java programmer ?

5. แหล่งข้อมูลอ้างอิง :
1) http://en.wikipedia.org/wiki/Class_(computer_science)
2) http://odanobunaka.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=cat%3DObject%2520Oriented%2520Programming

6. คำถามท้ายบท
1) จงอธิบายความสำคัญของคลาส (class) มาพอสังเขป
2) คลาสกับออปเจ็คต์ต่างกันอย่างไร ?
3) เครื่องหมาย { ……… } ใช้เพื่อวัตถุประสงค์ใด ?
4) จงเขียนคลาสเครื่องคิดเลข (calculator)
5) จงเขียนคลาสลิฟต์ (Lift)
6) จงอธิบายความแตกต่างระหว่าง Properties และ Method ของคลาสมาพอสังเขป
7) ในการเขียนโปรแกรมภาษาจาวา หากตั้งชื่อคลาสคนละชื่อกับซอร์สโค้ด (Source Code) จะมีผล
อย่างไร ?

การติดตั้งโปรแกรม JDK 1.6.0 update 20

ภาคผนวก ก.
การติดตั้งโปรแกรม JDK 1.6.0 update 20


วัตถุประสงค์
1. เพื่อให้ผู้ศึกษาเข้าใจกระบวนการติดตั้งโปรแกรม JDK

ขั้นตอนการติดตั้ง
1. ดาวน์โหลดโปรแกรม JDK จากเว็บไซต์ http://www.oracle.com/us/sun/index.html

2. Double Click ไฟล์ jdk-6u20-windows-i586.exe


3. รอสักครู่จะปรากฏหน้าจอของโปรแกรม Windows Installerให้กดปุ่ม Next เพื่อไปยังหน้าต่อไป


4. กดปุ่ม Accept เพื่อยอมรับข้อตกลงในการใช้ซอฟต์แวร์

5. กำหนดโฟลเดอร์สำหรับติดตั้งโปรแกรม JDK 1.6.0 จากนั้นกดปุ่ม Next


6. หากทำการคลิ้กดูองค์ประกอบแต่ละตัว จะพบรายละเอียดและไดเรกทอรีที่จะทำการติดตั้งลงไป





หากไม่ต้องการเปลี่ยนแปลงค่าใดๆ ให้กดปุ่ม Next เพื่อไปยังขั้นตอนต่อไป

7. ชุดติดตั้งจะเริ่มทำการคัดลอกองค์ประกอบต่างๆ ลงในระบบ



8. ขั้นตอนต่อจากการติดตั้งตัว Development Ket คือการติดตั้ง Java Runtime Environment ซึ่งค่าโดยปริยาย (Default) จะถูกติดตั้งไว้ที่ C:\Program Files\Java\jre6\


ที่หน้านี้ให้กดปุ่ม Next


9. ตามภาพ จะแสดงการป้อนรหัสผ่าน การยืนยันรหัสผ่าน และการกำหนดภาษาที่รองรับ






10. เมื่อการติดตั้งองค์ประกอบต่างๆ เสร็จสิ้นลง จะปรากฏข้อความแจ้งให้ทราบ ในขั้นตอนนี้ให้กดปุ่ม Finish


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

การตรวจสอบเวอร์ชั่นของจาวา

1. ไปที่ Start Menu เลือกคำสั่ง Run …

2. พิมพ์คำสั่ง cmd ลงในช่อง Open: แล้วกดปุ่ม OK


3. จะปรากฏหน้าต่างสำหรับรับคำสั่ง (Command Prompt)


4. พิมพ์คำสั่ง java -version ซึ่งเป็นคำสั่งสำหรับเรียกดูรุ่นของโปรแกรมจาวาบนเครื่อง ซึ่งเครื่องที่ติดตั้งโปรแกรมจาวาเอาไว้จะมีการตอบกลับมาด้วยรุ่นของจาวา









การตั้งค่าพาธสำหรับจาวา
การตั้งค่าพาธในระบบจะช่วยให้ระบบรู้จักที่อยู่ หรือตำแหน่งของคำสั่งต่างๆ ของโปรแกรมจาวา ดังนั้นจึงมีประโยชน์ต่อการคอมไพล์และรันโปรแกรมภาษาจาวาอย่างมาก เนื่องจากสามารถคอมไพล์และรันโปรแกรมจากไดเรกทอรีใดก็ได้
การตั้งค่าพาธสำหรับโปรแกรมจาวาจะประกอบไปด้วยการแก้ไขค่า System Variable ที่ชื่อว่า PATH และการเพิ่มตัวแปลที่ชื่อว่า JAVA_HOME ซึ่งมีรายละเอียด ดังนี้
1. ไปที่ Start Menu เลือกคำสั่ง Settings


2. ที่ Control Panel จะเห็นคำสั่งมากมายของระบบ




3. ทำการดับเบิ้ลคลิ้กที่คำสั่ง System เพื่อแก้ไขค่าระบบ


4. ไปที่แท็ป Advanced จากนั้นเลือกคำสั่ง Environment Variables


5. ที่ System Variables ชื่อ Path เลือกและกดปุ่ม Edit

6. เพิ่มพาธของ JDK 1.6.0 ต่อท้ายค่าเดิมของตัวแปรพาธ

C:\Program Files\Java\jdk1.6.0_20\bin






7. กดปุ่ม เพื่อบันทึกค่าตัวแปร Path

8. กดปุ่ม อีกครั้ง เพื่อบันทึกค่า System Properties


การคอมไพล์โปรแกรมที่เขียนด้วยภาษาจาวา
การคอมไพล์โปรแกรมภาษาจาวา (Java Code) จะอาศัยคำสั่ง javac โดยมีรูปแบบการเรียกใช้ ดังนี้
javac <ซอร์สโค้ดภาษาจาวา.java>





เพื่อให้เห็นภาพได้ชัดเจนขึ้น ให้ทำการเขียนคำสั่งภาษาจาวาแล้วตั้งชื่อว่า HelloWorld.java โดยมีรายละเอียด ดังนี้

จากนั้นไปที่ Start Menu แล้วเลือกคำสั่ง Run …

พิมพ์คำสั่ง cmd เพื่อเรียกใช้ Command Prompt แล้วกดปุ่ม OK


พิมพ์คำสั่ง cmd เพื่อเรียกใช้ Command Prompt แล้วกดปุ่ม OK


พิมพ์คำสั่ง javac ตามด้วยชื่อซอร์สโค้ด แล้วกดปุ่ม Enter


ตรวจสอบว่าคอมไพล์แล้วได้ Object File หรือไม่ด้วยการใช้คำสั่ง dir


พิมพ์คำสั่ง java แล้วตามด้วยชื่อ Object File เพื่อทดสอบผลการทำงานของโปรแกรม

การติดต่อ MS Access Database ด้วย JDBC

การติดต่อ MS Access Database ด้วย JDBC
ไฟล์ JDBC_SELECT.java
import java.io.*;
import java.sql.*;

class JDBC_SELECT
{

static final String DB = "jdbc:odbc:ODBC_NORTHWIND";
static final String USER = "";
static final String PASSWORD = "";

public static void main(String[] args)
{
int ID=0;
String Name = "";

System.out.println("==========================");
System.out.println("SupplierID CompanyName ");
System.out.println("==========================");

try
{
// สร้าง class ชื่อว่า sun.jdbc.odbc.JdbcOdbcDriver ขึ้นมา เพื่อกำหนด Driver ให้กับ JDBC
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

// สร้าง Connection object เพื่อใช้ในการติดต่อกับฐานข้อมูล
Connection db = DriverManager.getConnection(DB, USER, PASSWORD);

// SQL command
String query = "select * from Suppliers ";

// ใช้สำหรับ สร้าง statement ที่จะใช้ในการ execute sql command
Statement stmt = db.createStatement();

// สร้าง Resultset เพื่อรับผลของการ execute query ตัว resultset นี้ จะมีการทำงานเหมือน
// Recordset ก็คือเป็นคล้าย ๆ กับ pointer ที่ชี้ข้อมูลในตารางที่ตำแหน่งปัจจุบัน หรือ Record ปัจจุบัน
ResultSet rs = stmt.executeQuery(query);

// rs.next() ใช้ในการเลื่อน record ไปยัง record ถัดไป จะกว่าจะหมด
while (rs.next())
{

//SupplierID = rs.getString(1); //หรือใช้rs.getInt("id"));
//CompanyName = rs.getString(2); // หรือใช้ rs.getString("name"));

ID = rs.getInt("SupplierID");
Name = rs.getString("CompanyName");

//System.out.println("ID = " + ID + "\n" + "Name = " + Name);
System.out.println(+ ID + " " + Name);

}
// จะเห็นว่าผลของการทำ Loop while จะให้ค่า record สุดท้ายมาเก็บไว้ในตัวแปร ID, Name
// ซึ่งมันจะทับค่าข้อมูลที่ได้มาจาก record แรก เราจะมีวิธีการแก้ไขอย่างไร? ไปดูใน MyJDBCvector.java

rs.close();
stmt.close();
db.close();
}
catch (Exception ex)
{
System.err.println(ex);
System.out.println("Error");
System.out.println(ex);
}

}
}// end class

วันอาทิตย์ที่ 31 สิงหาคม พ.ศ. 2551

RSA


นายสมพงศ์ มนตรีวงศ์

5022252105

วิทยาการคอมพิวเตอร์


วันเสาร์ที่ 30 สิงหาคม พ.ศ. 2551

ลินุ๊กซ์ ( Linux )


นายสมพฃศ์ มนตรีวงศ์
5022252105
วิทยาการคอมพิวเตอร์


ลินุกซ์ <>
ประวัติลีนุส ทอร์วัสด์สผู้เริ่มพัฒนาลินุกซ์เป็นคนแรก คือ ลินุส โตร์วัลดส์ (Linus Torvalds) ชาวฟินแลนด์ เมื่อสมัยที่เขายังเป็นนักศึกษาคอมพิวเตอร์ ที่มหาวิทยาลัยเฮลซิงกิ ปี พ.ศ. 2526 ริชาร์ด สตอลแมน (Richard Stallman) ได้ก่อตั้งโครงการกนูขึ้น จุดมุ่งหมายโครงการกนู คือ ต้องการพัฒนาระบบปฏิบัติการคล้ายยูนิกซ์ที่เป็นซอฟต์แวร์เสรีทั้งระบบ ราวช่วงพ.ศ. 2533 โครงการกนูมีส่วนโปรแกรมที่จำเป็นสำหรับระบบปฏิบัติการเกือบครบทั้งหมด ได้แก่ คลังโปรแกรม คอมไพเลอร์ โปรแกรมแก้ไขข้อความ และเปลือกระบบยูนิกซ์ ซึ่งขาดแต่เพียงเคอร์เนลเท่านั้น ในพ.ศ. 2533 โครงกากรูได้พัฒนาเคอร์เนลชื่อ Hurd เพื่อใช้ในระบบกนูซึ่งในขณะนั้นมีปัญหาเกี่ยวกับความเร็วในการประมวลผลในพ.ศ. 2534 โตร์วัลดส์เริ่มโครงการพัฒนาเคอร์เนล ขณะศึกษาในมหาวิทยาลัยแล้ว โดยอาศัย Minix ซึ่งเป็นระบบที่คล้ายกับ Unix ซึ่งมากับหนังสือเรื่องการออกแบบระบบปฏิบัติการ มาเป็นเป็นต้นแบบในการเขียนขึ้นมาใหม่โดย Torvalds เขาพัฒนาโดยใช้ IA-32 assembler และภาษาซี คอมไพล์เป็นไฟล์ไบนารี่และบูทจากแผ่นฟลอปปี้ดิสก์ เขาได้พัฒนามาเรื่อยๆจนกระทั่งสามารถบูทตัวเองได้ (กล่าวคือสามารถคอมไพล์ภายในลินุกซ์ได้เลย) และในปัจจุบันมีนักพัฒนาจากพันกว่าคนทั่วโลกได้เข้ามามีส่วนรวมในการพัฒนาโครงการ Eric S. Raymond ได้ศีกษากระบวนการพัฒนาดังกล่าวและเขียนบทความเรื่อง The Cathedral and the Bazaarในรุ่น 0.01 นี้ถือว่ามีเครื่องมือที่เพียงพอสำหรับระบบ POSIX ที่ใช้เรียก ลินุกซ์ ที่รันกับ กนู Bash Shell และมีการพัฒนาอย่างต่อเนื่องและอย่างรวดเร็วโตร์วัลดส์ยังคงมุ่งมั่นพัฒนาระบบต่อไป ซึ่งต่อมาก็สามารถรันบน X Window System และมีการเลือกนกเพนกวินที่ชื่อ Tux ให้เป็นตัวนำโชคหรือ Mascot ของระบบลินุกซ์

การใช้งาน
การใช้งานดั้งเดิมของลินุกซ์ คือ ใช้เป็นระบบปฏิบัติการสำหรับเครื่องเซิร์ฟเวอร์ แต่จากราคาที่ต่ำ ความยืดหยุ่น พื้นฐานจากยูนิกซ์ ทำให้ลินุกซ์เหมาะกับงานหลาย ๆประเภท
ประเภท
ลินุกซ์ ถือเป็นส่วนสำคัญของซอฟต์แวร์เซิร์ฟเวอร์ที่เรียกว่า LAMP ย่อมาจาก Linux, Apache, MySQL, Perl/ PHP/Python ซึ่งเป็นที่นิยมใช้เป็นเว็บเซิร์ฟเวอร์ และพบมากสุดระบบหนึ่ง ตัวอย่างซอฟต์แวร์ซึ่งพัฒนาสำหรับระบบนี้คือ มีเดียวิกิ ซอฟต์แวร์สำหรับวิกิพีเดียเนื่องจากราคาที่ต่ำและการปรับแต่งได้หลากหลาย ลินุกซ์ถูกนำมาใช้ในระบบฝังตัว เช่นเครื่องรับสัญญาณโทรทัศน์ โทรศัพท์มือถือ และอุปกรณ์พกพาต่าง ๆ ลินุกซ์เป็นคู่แข่งที่สำคัญของ ซิมเบียนโอเอส ซึ่งใช้ในโทรศัพท์มือถือจำนวนมาก และใช้แทนวินโดวส์ซีอี และปาล์มโอเอส บนเครื่องคอมพิวเตอร์พกพา เครื่องบันทึกวีดิโอก็ใช้ลินุกซ์ที่ดัดแปลงเป็นพิเศษ ไฟร์วอลล์และเราเตอร์หลายรุ่น เช่นของ Linksys ใช้ลินุกซ์และขีดความสามารถเรื่องทางเครือข่ายของมันระยะหลังมีการใช้ลินุกซ์เป็นระบบปฏิบัติการของซูเปอร์คอมพิวเตอร์มากขึ้น ในรายชื่อซูเปอร์คอมพิวเตอร์ TOP500 ของเดือนพฤศจิกายน พ.ศ. 2548 เครื่องซูเปอร์คอมพิวเตอร์ที่เร็วที่สุดสองอันดับแรกใช้ลินุกซ์ และจาก 500 ระบบ มีถึง 371 ระบบ (คิดเป็น 74.2%) ให้ลินุกซ์แบบใดแบบหนึ่งเครื่องเล่นเกม โซนี่ เพลย์สเตชัน 3 ที่ออกในปี พ.ศ. 2549 รันลินุกซ์ โซนียังได้ปล่อย PS2 Linux สำหรับใช้กับเพลย์สเตชัน 2 อีกด้วย ผู้พัฒนาเกมอย่าง Atari และ id Software ก็เคยออกซอฟต์แวร์เกมบนลินุกซ์มาแล้วการติดตั้งรายการลินุกซ์ดิสทริบิวชัน (ดิสโทร) ทั้งหมดการติดตั้งโดยทั่วไป จะติดตั้งผ่านซีดีที่มีโปรแกรมบรรจุอยู่ในแผ่นซึ่งแผ่นซีดีนั้นสามารถหามาได้หลายวิธี เช่นสามารถเบิร์นได้จาก ISO image ที่ดาวน์โหลดจากอินเทอร์เน็ต หรือสามารถหาซื้อซีดีได้ในราคาถูกโดยอาจจะซื้อรวมหรือแยกพร้อมกับคู่มือ เนื่องจากสัญญาอนุญาตของโปรแกรมเป็นแบบ GPL ลินุกซ์จากผู้จัดทำบางตัวเช่น เดเบียน สามารถติดตั้งได้จากโปรแกรมขนาดเล็กผ่านฟลอปปีดิสก์ ซึ่งเมื่อติดตั้งส่วนหนึ่งสำเร็จ ตัวโปรแกรมของมันเองจะดาวน์โหลดส่วนอื่นเพิ่มขึ้นมาผ่านทางอินเทอร์เน็ต หรือสำหรับบางตัวเช่นอูบุนตุ สามารถทำงานได้ผ่านซีดีโดยติดตั้งในแรมในช่วงที่เปิดเครื่องการทำงานของลินุกซ์สามารถติดตั้งได้ในเครื่องเซิร์ฟเวอร์หรือเครื่องคอมพิวเตอร์ที่มีสมรรถนะสูง จนถึงเครื่องที่สมรรถนะต่ำ ที่ไม่มีฮาร์ดไดรฟ์หรือมีแรมน้อยโดยทำงานเป็นเครื่องไคลเอนต์โดยที่เครื่องไคลเอนต์ สามารถบูตและเรียกใช้งานโปรแกรมต่างๆผ่านทางเน็ตเวิร์กจากเครื่องเทอร์มินอลเซิร์ฟเวอร์ ซึ่งวิธีการนี้ยังคงช่วยให้ประหยัดเวลาในการติดตั้งโปรแกรม เพราะติดตั้งเพียงเครื่องเดียวที่เทอร์มินอลเซิร์ฟเวอร์ รวมถึงราคาของเครื่องไคลเอนต์ที่ไม่จำเป็นต้องมีสมรรถภาพสูงซึ่งมีราคาถูกกว่าเครื่องทั่วไป
การเขียนโปรแกรมบน
ลินุกซ์ส่วน GNU Compiler Collection (GCC) สนับสนุนการเขียนภาษาโปรแกรมที่สำคัญ เช่น ภาษาซี ภาษาซีพลัสพลัส และภาษาจาวา รวมถึงภาษาอื่น ๆ รวมถึงมี IDE จำนวนมาก ซึ่งได้แก่ Emacs Vim Eclipse KDevelop Anjuta

ยูนิกซ์ ( Unix )

นายสมพงศ์ มนตรีวงศ์

5022252105

วิทยาการคอมพิวเตอร์


ยูนิกซ์<>
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 แสดงฃื่อรากตามด้วยเครื่องหมาย /และชื่อไฟล์ที่ทำงานได้ด้วยเครื่องหมาย *

รายละเอียดของไฟล์คำสั่ง ls -al" src="http://web.ku.ac.th/schoolnet/snet1/software/unix/ls.gif" width=515 border=1>รูปที่ 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)ใช้คำสั่ง pwd" src="http://web.ku.ac.th/schoolnet/snet1/software/unix/pwd.gif" width=273 border=1>รูปที่ 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 ซึ่งวิธีที่กล่าวมาเป็น การอ้างอิงสัมพันธ์กับตำแหน่งปัจจุบันแต่เรามีอีกวิธีหนึ่งคือการอ้างอิงโดยตรง ทำได้โดยการพิมพ์ใช้คำสั่ง cd" src="http://web.ku.ac.th/schoolnet/snet1/software/unix/cd.gif" width=282 border=1>รูปที่ 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 หรือ อาจจะอ้างแบบอื่นตามรูปแบบการอ้างอิงพาทก็ย่อมได้ใช้คำสั่ง mv" src="http://web.ku.ac.th/schoolnet/snet1/software/unix/mv.gif" width=543 border=1>รูปที่ 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เป็นการแสดงชื่อผู้ที่ใช้ขณะนี้อยู่ในระบบที่เรากำลังใช้งานอยู่ใช้คำสั่ง who" src="http://web.ku.ac.th/schoolnet/snet1/software/unix/who.gif" width=586 border=1>รูปที่ 6 แสดงการทำงานของคำสั่งในการตรวจสอบผู้ที่กำลังอยู่ในระบบ$ finger [@ชื่อโฮสต์ที่ต้องการทราบ]เป็นคำสั่งแสดงรายชื่อของผู้ใช้ที่ติดต่ออยู่กับโฮสต์ต่างๆ ตามที่ต้องการ เช่นเราต้องการทราบว่าโฮสต์ของมหาวิทยาลัยเกษตรศษสตร์ที่ชื่อ std มีใครใช้อยู่บ้าง ก็จะใช้คำสั่ง $ finger @std.cpc.ku.ac.th แสดงดังรูปที่ 7ใช้คำสั่ง finger" src="http://web.ku.ac.th/schoolnet/snet1/software/unix/finger.gif" width=632 border=1>รูปที่ 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 จะเป็นการกำหนดให้ตัวเองรับการติดต่อจากบุลคลอื่น

วันเสาร์ที่ 16 สิงหาคม พ.ศ. 2551

MOD

Mod 7
มี 3 และ 5 เป็น Q


Mod11
มี 2 , 6 , 7 และ 8 เป็น Q