Linux ได้ถูกพัฒนาขึ้น โดยมีความตั้งใจเริ่มต้นที่จะให้เป็นระบบปฏิบัติการแบบคล้าย UNIX ที่สามารถทำงานได้บนเครื่องพีซีธรรมดา ที่ใช้ CPU ตระกูล Intel-x86 Compatible ซึ่งก็คือ ที่เราใช้กันตามบ้านนั่นเอง เป็นการพลิกผันโลกของระบบ Unix แทนที่จะอยู่เฉพาะในเครื่องใหญ่ๆ ตามศูนย์คอมพิวเตอร์เหมือนแต่ก่อน
Linux เป็นระบบปฏิบัติการแบบคล้ายระบบ Unix (UNIX-Compatible) ที่มีประสิทธิภาพสูงตัวหนึ่ง จุดเด่นคือ Linux เป็นซอฟต์แวร์ภายใต้ลิขสิทธิ์ GNU GPL (GNU General Public License, บางทีเรียกว่า GPL เฉยๆ) สามารถใช้งานโดยที่ไม่ต้องเสียค่าใช้จ่ายใดๆ เราสามารถหา ซอฟต์แวร์ Linux ได้จากเครื่องให้บริการ FTP หลายแห่งบนอินเทอร์เน็ต หรืออาจจะต้องจ่ายเงินเล็กน้อยเพื่อสั่งซื้อแผ่นซีดี จากบริษัทจำหน่ายซอฟต์แวร์ต่างๆ ถ้าท่านไม่มีอินเทอร์เน็ตใช้งานหรือไม่อยากจะรอ FTP นานๆ ชนิดข้ามวันข้ามคืน เนื่องจากตัวซอฟต์แวร์ทั้งชุดจะมีขนาดหลายร้อยเมกะไบต์
เราสามารถใช้งาน Linux ได้โดยไม่ต้องเสียค่าใช้จ่ายในส่วนลิขสิทธิ์ แต่ Linux ไม่ใช่ Free–ware หรือ Shareware ตัว Kernel นั้น สงวนลิขสิทธิ์โดย Linus Torvalds ส่วนโปรแกรมประกอบอื่นๆ ที่เขียนขึ้นโดยผู้ใดก็จะเป็นสงวนลิขสิทธิ์เป็นของเจ้าของคนนั้น และจะอยู่ภายใต้ GPL เราสามารถใช้งาน Linux โดยไม่เสียค่าใช้จ่ายใดๆ โดยต้องปฏิบัติตามเงื่อนไขของ GPL (บางทีเรียกว่า CopyLeft) ซึ่งสนับสนุนให้เรามีสิทธิ์ที่จะใช้ซอฟต์แวร์ได้ฟรี, มีสิทธิ์ที่จะได้รับ Source Code เพื่อแก้ไข รวมถึงมีสิทธิ์ที่จะเผยแพร่ฉบับที่เราแก้ไขภายใต้ GPL ด้วยเหตุนี้ Linux จึงมีผู้ใช้กันมากมาย ทั้งในวงการศึกษา วิจัย หรือธุรกิจ ข้อมูลเกี่ยวกับ
Linux มีอยู่มากมายในอินเทอร์เน็ตทั้งบน World Wide Web และตาม Mailing list ต่างๆ ท่านสามารถหาคำปรึกษา และแลกเปลี่ยนความคิดเห็น จากผู้ใช้ Linux อีกหลายล้านคนทั่วโลก Linux จัดได้ว่าเป็นระบบปฏิบัติการแบบ Unix-Compatible ที่แพร่หลายมากที่สุดตัวหนึ่งในปัจจุบัน
ความเป็นมา
ในระยะแรก Linux ถูกพัฒนาเพื่อเป็นงานอดิเรกเท่านั้น โดยผู้เริ่มพัฒนาได้แรงบันดาลใจมาจากระบบมินิกซ์ (Minix) ซึ่งเป็นระบบปฏิบัติการแบบคล้าย UNIX เล็กๆ ตัวหนึ่งที่พัฒนาขึ้นโดย Andy Tanenbaum เพื่อประกอบการเรียนรู้ในหนังสือเกี่ยวกับการออกแบบระบบปฏิบัติการคอมพิวเตอร์ของเขา Linux ถูกพูดถึงเป็นครั้งแรก
ในกลุ่มข่าว comp.os.minix ว่าเป็นระบบปฏิบัติการแบบคล้าย UNIX เพื่อการศึกษาขนาดเล็ก สำหรับผู้ใช้งานมินิกซ์ที่ต้องการความสามารถมากกว่าที่มินิกซ์จะทำได้ การพัฒนาในระยะแรกจะมุ่งไปที่ความสามารถในการสลับการทำงานระหว่างโปรเซส (Task-Switching) ของหน่วยประมวลผลกลาง 80386 ใน Protected Mode โดยโปรแกรมทั้งหมดถูกเขียนขึ้นด้วยภาษาแอสเซมบลีภายหลังได้เริ่มเปลี่ยนมาใช้ภาษา C ซึ่งช่วยให้การพัฒนาเป็นไปได้เร็วขึ้นกว่าเดิมมาก
ในที่สุด Linux เวอร์ชัน 0.01 (ราวๆ ปลายเดือนสิงหาคม 1991) ก็ถูกแจกจ่ายให้ทดลองใช้ในเวอร์ชันนี้มีเพียงฮาร์ดดิสก์ไดรเวอร์ และระบบไฟล์ขนาดเล็กให้ใช้งานเท่านั้น ไม่มีแม้แต่ฟลอปปีดิสก์ไดรเวอร์ ท่านจะต้องมีระบบมินิกซ์อยู่แล้วจึงจะสามารถทำการคอมไพล์และทดลองใช้งานได้
คุณสมบัติของ Linux
Linux มีความสามารถเกือบทุกอย่างที่ท่านจะพบได้ในระบบปฏิบัติการ UNIX ทั่วๆ ไป อีกทั้งยังมีความสามารถบางอย่างซึ่งแตกต่างไปจากระบบ UNIX ตัวอื่นๆ
- Linux เป็นระบบปฏิบัติการแบบหลายงานและหลายผู้ใช้ (Multitasking and Multi-user) ที่สมบูรณ์แบบ (เหมือนระบบปฏิบัติการ UNIX ทั่วๆ ไป) นั่นคือสามารถ
- มีผู้ใช้งานพร้อมๆ กันได้หลายคน และแต่ละคนสามารถรันโปรแกรมได้หลายๆโปรแกรมพร้อมๆ กัน
- Linux มีความเข้ากันได้ (compatible) กับระบบ UNIX ส่วนมากในระดับซอร์สโค้ด เนื่องจากระบบ Unix ต่างๆ มีการพัฒนาตามข้อกำหนดที่เป็นมาตรฐาน เช่น IEEE POSIX.1, System V UNIX และ BSD UNIX เป็นต้น ตามหลักการ Source Portability ดังนั้นท่านจะพบว่า คุณสมบัติที่ถูกใช้งานเป็นประจำของ Linux สามารถพบได้ในระบบ UNIX อื่นๆ ทั่วไป ซอฟต์แวร์ที่ทำงานบนระบบ UNIX อื่นๆ ในอินเทอร์เน็ตส่วนใหญ่สามารถนำมาคอมไพล์บน Linux ได้โดยการแก้ไขซอร์สโค้ดเพียงเล็กน้อย ซอร์สโค้ดทั้งหมดของระบบ Linux อันได้แก่ เคอร์เนล ดีไวซ์ไดรเวอร์ ไลบรารี โปรแกรมใช้งาน และโปรแกรมระบบต่างๆ สามารถหาดาวน์โหลดได้ฟรีจากศูนย์บริการ FTP มากมายทั่วโลก
- ความสามารถอื่นๆ อันได้แก่ POSIX job control (ซึ่งถูกใช้ในโปรแกรม shell ต่างๆ เช่น bash, sh และ csh) เทอร์มินอลเสมือน (Pseudo Terminal) คอนโซลเสมือน (Virtual Console) ซึ่งทำให้ท่านสามารถสลับหน้าจอระหว่าง login sessions ต่างๆ บนหน้าจอคอนโซลในเท็กซ์โหมดได้ ฯลฯ เคอร์เนลของ Linux มีระบบ Unified Memory Pool สำหรับโปรแกรม และดิสก์แคช นั่นคือหน่วยความจำที่ว่างอยู่ทั้งหมดจะถูกใช้งานเป็นดิสก์แคชและเมื่อมีการโหลดโปรแกรมขนาดใหญ่ ขนาดของดิสก์แคชก็จะถูกลดลงโดยอัตโนมัติ
- โปรแกรมที่ใช้งานบน Linux จะมีการใช้งาน Dynamically Linked Shared Libraries ซึ่งก็คือโปรแกรมที่รันบน Linux จะมีการใช้งานไลบรารีไฟล์ร่วมกัน (เหมือน Shared Library ของ SunOS หรือ DLL ของ Windows) ซึ่งจะทำให้โปรแกรมที่รันบ Linux มี ขนาดเล็กลงและทำงานเร็วขึ้นมาก โดยเฉพาะโปรแกรมที่มีการใช้งานฟังก์ชันจากหลายๆไลบรารี แต่ในขณะเดียวกันถ้าท่านต้องการทำการดีบักโปรแกรมหรือต้องการใช้งานโปรแกรมแบบ Static Linked ก็สามารถใช้ได้เช่นกัน
- เพื่อสนับสนุนการดีบักโปรแกรม ตัวเคอร์เนลจะทำการสร้างไฟล์ core dump เพื่อใช้ในการดีบักและหาสาเหตุที่ทำให้โปรแกรมทำงานผิดพลาดได้
การใช้งาน Linux
หลังจากที่ท่านได้ติดตั้ง Linux เสร็จเรียบร้อย ไม่ว่าท่านจะติดตั้ง Linux ยี่ห้อใด ท่านก็จะได้ระบบปฏิบัติการที่ทำงานโดยใช้ Linux Kernel และโปรแกรมเพิ่มเติมอื่นๆ ซึ่งแต่ละ Distribution อาจจะแตกต่างกันบ้างเล็กน้อย แต่ส่วนมากแล้วก็จะคล้ายๆ กัน ในบทนี้จะแนะนำถึงการใช้งานระบบ Linux เบื้องต้น ซึ่งจะใช้ได้กับทุก Distribution อย่างไรก็ตาม
การเปิดเครื่อง ท่านก็กดปุ่มเปิดตามปกติ หากท่านติดตั้ง Linux เพียงระบบปฏิบัติการเดียว เครื่องก็จะทำการบูตระบบเข้าสู่ Linux เลย แต่หากท่านมีหลายระบบปฏิบัติการในเครื่องเดียว และได้ทำการติดตั้งโปรแกรม LILO (Linux Loader) อย่างถูกต้อง (จะอยู่ในขั้นตอนการติดตั้ง Linux) เวลาบูตระบบ หลังจากที่เครื่องทำการตรวจหน่วยความจำ และอุปกรณ์ต่างๆ เสร็จแล้ว จะขึ้นคำว่า LILO ซึ่งหากท่านไม่กดปุ่มอะไรเลย หลังจากรอสักครู่หนึ่ง มันก็จะทำการบูต
เข้าสู่ระบบปฏิบัติการอันใดอันหนึ่ง (ตามที่ท่านได้ระบุในขั้นตอนการติดตั้ง LILO) โดยอัตโนมัติ หากท่านต้องการดูว่า เครื่องเราสามารถบูตระบบเป็นระบบปฏิบัติการใดได้บ้าง ให้ท่านกดปุ่ม SHIFT แล้วตามด้วย TAB ขณะที่มันแสดงคำว่า LILO จะมีการแสดงชื่อระบบปฏิบัติการที่เราสามารถบูตได้ ตัวอย่างดังนี้
- LILO <กด SHIFT>
- boot: <กด TAB>
- linux dos
- Log in
- openmind.nectec.or.th
- Welcome to Linux 2.0.35
- openmind login:
- openmind login: ott (สมมติว่า Log in ชื่อ ott)หลังจากที่ป้อนชื่อบัญชีแล้วเครื่องจะถามรหัสผ่านดังนี้
หลังจากที่คุณติดตั้ง Linuxเสร็จ ชื่อบัญชีที่คุณสามารถใช้ได้ก็คือ root ซึ่งจะเป็นบัญชีของผู้ดูแลระบบ root เป็นบัญชีที่มีสิทธิสูงที่สุดในระบบเมื่อป้อนรหัสผ่านถูกต้องแล้ว ท่านก็จะเข้าสู่การใช้งานในโหมดที่เรียกว่า Shell หน้าจอ เมื่อป้อนรหัสผ่านถูกต้องแล้ว ท่านก็จะเข้าสู่การใช้งานในโหมดที่เรียกว่า Shell หน้าจอ แสดงเครื่องหมาย Shell Prompt แสดงถึงการพร้อมรับคำสั่ง โดยถ้าคุณคือ root คุณจะได้ Shell Prompt เป็นเครื่องหมาย # แต่ถ้าคุณเป็นผู้ใช้ธรรมดาคุณอาจจะได้ Shell Prompt เป็น เครื่องหมาย $, % หรือต่างไปจากนี้ แล้วแต่ว่าคุณใช้เชลล์ (Shell) อะไร Shell เป็นโปรแกรมที่ทำ
หน้าที่รับคำสั่งจากคุณแล้วนำไปสั่งให้ระบบทำงานตามความต้องการ เปรียบเทียบได้กับโปรแกรม COMMAND.COM บน DOS โดยปกติแล้วหลังจากติดตั้งระบบใหม่ๆ จะยังไม่มีการกำหนดรหัสผ่าน ดังนั้นคุณจึงสามารถกด ผ่านขั้นตอนการใส่รหัสผ่านได้เลย การใช้งานในโหมด Shell Prompt จะคล้ายกับ DOS prompt นั่นเอง แต่มีคำสั่งต่างๆ มากกว่าและซับซ้อนกว่า (มาก)
คำสั่งและชื่อไฟล์ในระบบ Linux
จะมีลักษณะ Case sensitive นั่นคือตัวพิมพ์เล็ก และตัวพิมพ์ใหญ่จะถือว่าแตกต่างกัน เช่น ไฟล์ MyFile.doc กับ myfile.doc จะถือว่าเป็นคนละไฟล์กัน ดังนั้นในการใช้งานเริ่มแรกจึงควรระวังไม่กดปุ่ม ค้างไว้โดยไม่จำเป็น หากท่านทำ การป้อนรหัสผ่าน แล้วระบบตอบว่า Login incorrect ก่อนอื่นให้ตรวจสอบว่าท่านไม่ได้กดปุ่มค้างไว้หรือไม่
สิ่งที่ท่านควรทำเป็นอันดับแรก เมื่อติดตั้งระบบเสร็จใหม่ๆ (และควรทำเป็นประจำทุกๆ เดือน) คือ การเปลี่ยนรหัสผ่าน ทั้งบัญชีของท่านเอง และของ root หลักการตั้งรหัสผ่านก็คือ ตั้งให้คนอื่นเดาไม่ได้ ไม่ควรเป็นคำที่มีในพจนานุกรมหรือคำพูดติดปากที่ใช้กันบ่อยๆ ควรจะมีทั้งตัวพิมพ์เล็กและใหญ่ ควรใช้ความยาวไม่ต่ำกว่า 5 ตัว และผสมตัวเลขบ้างตัวอักษรพิเศษบ้าง (เช่น / ; ^ เป็นต้น) ไม่ควรใช้ชื่อ วันที่ วันเกิด หรือตัวอักษรชุดง่ายๆ เช่น 123456 เป็นอันขาดเนื่องจากสามารถทายได้ง่าย มีโปรแกรมเดารหัสผ่านจำนวนมาก ที่มีคนทำขึ้น เพื่อเดารหัสผ่านโดยลองทายคำง่ายๆ หรือหรือคำจากพจนานุกรม โปรแกรมเหล่านี้สามารถแกะรหัสผ่าน เช่น 123456, superman, superman! ได้ ภายในเวลาไม่เกิน 5 นาที
เราสามารถเปลี่ยนรหัสผ่านของ root และผู้ใช้ทุกคน โดยให้ทำการ Log in เป็นผู้นั้นแล้วใช้คำสั่ง passwd ดังตัวอย่าง
- $ passwd
- Change password for user ott
- Old password: (ใส่รหัสผ่านเดิม)
- New password: (ใส่รหัสผ่านใหม่)
- Verify new password: (ใส่รหัสผ่านใหม่อีกครั้งหนึ่ง)
- Log out
$ exitไม่ควรปล่อยให้ผู้อื่นทราบรหัสผ่านของท่าน เพราะนั่นหมายความว่า เขาคนนั้นสามารถกระทำการทุกอย่างบนเครือข่ายอินเทอร์เน็ตในชื่อของท่าน เขาอาจจะเขียน E-mail ไปให้คนอื่นแต่เป็นชื่อของท่าน หรือไปทำลายข้อมูลต่างๆ ได้ อันจะนำความเดือดร้อนมาให้กับท่าน และโดยเฉพาะอย่างยิ่ง อย่าปล่อยหน้าจอของท่านได้ทำการ Log in ทิ้งไว้ แล้วไปทำอย่างอื่น เพราะคนอื่นสามารถเข้ามาใช้งานในชื่อของท่านได้ เมื่อเสร็จงานแล้วให้ทำการ Log out เสมอ
อย่าปล่อยหน้าจอทิ้งไว้ขณะที่คุณ Log In เป็น root โดยเด็ดขาด ผู้ไม่ประสงค์ดีสามารถใช้เวลาไม่เกิน 1 นาทีในการทำความเสียหายให้ทั้งระบบ หรือกระทำการเพื่อให้เขาสามารถ Log in เป็น root ในภายหลังได้ตลอดไป ถึงแม้ท่านจะเปลี่ยนรหัสผ่านไปแล้ว ระบบก็จะแสดง Login Prompt เพื่อรับการทำงานของผู้ใช้รายต่อไป
- Linux 2.0.35 openmind.nectec.or.th
- Welcome to Linux 2.0.33
- openmind login:
การ Log outหมายถึงการจบการทำงานของผู้ใช้คนใดคนหนึ่งในเวลานั้น โดยระบบจะรับการทำงานของผู้ใช้รายต่อไป (หรือเป็นคนเดิม) ก็ได้ ไม่ได้หมายถึงการปิดเครื่องการปิดเครื่องท่านจะต้องปิดด้วยวิธีการอันใดอันหนึ่งต่อไปนี้ ห้ามทำการกดปุ่มปิด หรือ กดปุ่ม Reset เลยเป็นอันขาด จะทำให้ระบบมีความเสียหายได้ และมีผลทำให้การบูตระบบเป็น Linux ในครั้งต่อไป เสียเวลาในการซ่อมแซมความเสียหายนานมากหรืออาจซ่อมแซมไม่ได้เลย ให้ใช้วิธีดังนี้
- กดสามปุ่ม – – พร้อมกัน รอสักครู่ เครื่องจะทำการ Reboot ตัวเอง ให้ทำการกดปุ่มปิดเครื่องเมื่อเครื่องวนกลับไปตรวจสอบหน่วยความจำ เหมือนตอนเปิดเครื่องใหม่ๆ วิธีนี้ทำได้เฉพาะเวลาอยู่หน้าเครื่องเท่านั้น (ใช้วิธี telnet มาไม่ได้)
- ใช้คำสั่ง reboot หรือ shutdown –r now ขณะที่ log in เป็น root อยู่ และกดปุ่มปิดเครื่องเมื่อเครื่องวนกลับไปตรวจสอบหน่วยความจำ เหมือนตอนเปิดเครื่องใหม่ๆ
การจัดระบบไฟล์ใน Linux จะคล้ายกับบนดอสและวินโดวส์ คือมีลักษณะโครงสร้างเป็นรูปต้นไม้หัวกลับ โดยมีไดเรกทอรีราก ภาษาอังกฤษเรียกว่า root (อย่าสับสนกับบัญชีผู้ใช้ที่ชื่อ root) และเขียนแทนด้วย / เป็นไดเรกทอรีเริ่มต้น และมีไดเรกทอรีย่อยๆ ลงมาเป็นลำดับขั้น การอ้างถึงไฟล์และไดเรกทอรีย่อยต่างๆ จะใช้เครื่องหมาย / เป็นตัวแบ่งระหว่างแต่ละ ไดเรกทอรี เช่น /home/ott , /usr/local/bin เป็นต้น ซึ่งจะแตกต่างจากบน DOS ที่จะใช้เครื่องหมาย \ เป็นตัวแบ่ง (เครื่องหมายทับ หันคนละข้างกัน)
คำสั่งต่างๆ เกี่ยวกับไฟล์และไดเรกทอรีที่ใช้กันบ่อยๆ ได้แก่
- pwd (print working directory) แสดงไดเรกทอรีปัจจุบัน เช่น
- $ pwd
- /home/ott แสดงว่าในขณะนี้กำลังอยู่ในไดเรกทอรี /home/ott
- cd (change directory) ย้ายการทำงานไปยังไดเรกทอรีอื่นๆ เหมือนกับคำสั่ง cd บนดอส เช่น cd /home/ott เพื่อไปยังไดเรกทอรี /home/ott
- mkdir (make directory) สร้างไดเรกทอรี เหมือนกับคำสั่ง md และ mkdir บนดอส เช่น ถ้าเราอยู่ที่ไดเรกทอรี /home/ott ใช้คำสั่ง mkdir test เราก็จะได้ไดเรกทอรี /home/ott/test
- rmdir (remove directory) ลบไดเรกทอรี เหมือนกับคำสั่ง rd และ rmdir บนดอส เช่น rmdir /home/ott/test
- ls (list) แสดงรายชื่อไฟล์ในไดเรกทอรี คล้ายกับคำสั่ง dir บนดอส วิธีใช้ เช่น ls / แสดงรายชื่อไฟล์ในไดเรกทอรีราก หรือใช้ ls เฉยๆ เพื่อดูรายชื่อไฟล์ในไดเรกทอรีที่เราอยู่ขณะนั้น ท่านสามารถใส่พารามิเตอร์ต่างๆ เพื่อให้ ls แสดงรายละเอียดของไฟล์เพิ่มเติมได้ เช่น
- ls –a แสดงรายชื่อไฟล์ทุกไฟล์รวมทั้ง hidden file (ไฟล์ที่มีชื่อขึ้นต้นด้วย .) ในไดเรกทอรีปัจจุบัน เครื่องหมาย “-a” เรียกว่าเป็น Option ของคำสั่ง ls
- ls –l แสดงรายชื่อไฟล์แบบยาว ท่านสามารถใส่สอง Option ก็ได้ เช่น ถ้าต้องการให้แสดงรายชื่อไฟล์ทุกไฟล์ และให้แสดงแบบยาวด้วย ก็ให้สั่งว่า ls –al
- rm (remove) ใช้ลบไฟล์ เหมือนกับคำสั่ง del บนดอส ใช้ตามด้วยชื่อไฟล์
- cat (concatenate) ใช้พิมพ์ข้อมูลในไฟล์ออกมาบนจอภาพ เหมือนกับคำสั่ง type บนดอส วิธีใช้ เช่น cat /README.TXT
- more คล้ายกับคำสั่ง cat แต่จะพิมพ์ข้อมูลออกมาทีละ 1 จอภาพ เหมือนกับคำสั่ง more บนดอส วิธีใช้ เช่น more /README.TXT หรือใช้ประกอบกับคำสั่ง cat เช่น cat/README.TXT more (ใช้เครื่องหมาย “ ” PIPE)
- less เหมือนกับคำสั่ง more แต่จะมีความสามารถมากกว่า เช่น สามารถเลื่อนไปมาระหว่างแต่ละหน้าได้ด้วยปุ่มลูกศรขึ้นลง หรือปุ่ม , เป็นต้น วิธีเรียกใช้ เช่นเดียวกับ more
credit:
Pattara @ Nectec
ขอบคุณสำหรับบทความดีๆครับ
ตอบลบการใช้งานลินุกซ์
ขอบคุณสำหรับบทความดีๆครับ
ตอบลบkrumkroo knowledge