วันอังคารที่ 30 ธันวาคม พ.ศ. 2551

ความรู้เบื้องต้นเกี่ยวกับ linux

สำหรับผู้ที่ไม่เคยใช้งาน Linux มาก่อนเลย คงมีคำถามเกิดขึ้นมากมายว่าจริงๆแล้ว Linux มันคืออะไรและมันใช้ทำอะไรบ้าง วันนี้ผมจะมาไขข้อข้องใจนี้ให้ครับ
จริงๆแล้ว Linux เป็นชื่อของระบบปฏิบัติการตัวหนึ่งที่มีความคล้าย Unix (Unix-like) บลาๆ... เพียงแค่จั่วหัวมาอย่างนี้ คนที่กำลังงงอยู่แล้วบางคนอาจจะยิ่ง งง หนักกว่าเดิมก็ได้ ต้องเข้าใจก่อนว่าระบบปฏิบัติการ หรือ Operating Systems (OS) คืออะไร มีหน้าที่ยังไง ระบบปฏิบัติการเป็นซอฟแวร์ที่ทำหน้าที่เป็นตัวกลาง ระหว่างฮาร์ดแวร์ และซอฟแวร์ประยุกต์อื่นๆ OS มีหน้าที่หลักๆ คือ การจัดสรรทรัพยากรภายในเครื่องคอมพิวเตอร์เพื่อให้บริการซอฟแวร์ประยุกต์ อื่นๆ และจัดเก็บข้อมูลจากฮาร์ดแวร์ OS ที่ทุกคนคุ้นหูคุ้นตากันดีก็อย่างเช่น Microsoft Windows ของบริษัท Microsoft เป็นต้น
ในอดีตกาลประมาณช่วงทศวรรษที่ 60 สถาบันเทคโนโลยีแมสซาชูเซตส์ หรือเรียกกันย่อๆว่า MIT รวมทั้ง AT&T Bell Labs และบริษัท General Electric ได้ร่วมมือกันวิจัยระบบปฏิบัติการที่ชื่อ Multics (ย่อมาจาก Multiplexed Information and Computing Service) โดยมีจุดมุ่งหมายเพื่อทำงานบนเครื่องเมนเฟรมรุ่น GE-645 แต่ภายหลัง AT&T ได้ถอนตัวจากโครงการนี้ Ken Thomson ซึ่งเป็นหนึ่งในทีมพัฒนาในขณะนั้น ได้เขียนเกมส์บนเครื่อง GE-645 ชื่อว่าเกมส์ Space Travel และพบปัญหาว่าเกมส์ทำงานได้ช้ากว่าที่ควร เขาจึงย้ายมาเขียนเกมส์บนเครื่อง PDP-7 ของบริษัท DEC แทนด้วยภาษาแอสเซมบลี โดยความช่วยเหลือของ Dennis Ritchie ประสบการณ์เหล่านี้ทำให้ Thomson หันมาพัฒนาระบบปฏิบัติการบนเครื่อง PDP-7 ซึ่งระบบปฏิบัติการนี้ชื่อว่า UNICS (ย่อมาจาก Uniplexed Information and Computing System) เนื่องจากการออกเสียงสามารถสะกดได้หลายแบบ และพบปัญหาชื่อใกล้เคียงกับ Multics ภายหลังจึงเปลี่ยนเป็น Unix (ยูนิกซ์) ด้วยประการฉะนี้

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

เนื่องจากราคาที่ต่ำและการปรับแต่งได้ หลากหลาย linux ถูกนำมาใช้ในระบบฝังตัว (Embeded linux) เช่นเครื่องรับสัญญาณโทรทัศน์ โทรศัพท์มือถือ และอุปกรณ์พกพาต่าง ๆ linux เป็นคู่แข่งที่สำคัญของ ซิมเบียนโอเอส (Symbian OS) ซึ่งใช้ในโทรศัพท์มือถือจำนวนมาก และใช้แทนวินโดวส์ซีอี และปาล์มโอเอส บนเครื่องคอมพิวเตอร์พกพา เครื่องบันทึกวีดิโอก็ใช้ linux ที่ดัดแปลงเป็นพิเศษ ไฟร์วอลล์และเราเตอร์หลายรุ่น เช่นของ Linksys ใช้ linux และขีดความสามารถเรื่องทางเครือข่ายของมัน

ระยะ หลังมีการใช้ linux เป็นระบบปฏิบัติการของซูเปอร์คอมพิวเตอร์มากขึ้น ในรายชื่อซูเปอร์คอมพิวเตอร์ TOP500 ของเดือนพฤศจิกายน พ.ศ. 2548 เครื่องซูเปอร์คอมพิวเตอร์ที่เร็วที่สุดสองอันดับแรกใช้ linux และจาก 500 ระบบ มีถึง 371 ระบบ (คิดเป็น 74.2%) ให้ linux แบบใดแบบหนึ่ง

เครื่องเล่น เกม โซนี่ เพลย์สเตชัน 3 ที่ออกในปี พ.ศ. 2549 รัน linux โซนียังได้ปล่อย PS2 Linux สำหรับใช้กับเพลย์สเตชัน 2 อีกด้วย ผู้พัฒนาเกมอย่าง Atari และ id Software ก็เคยออกซอฟต์แวร์เกมบน linux มาแล้ว ยิ้มเท่ห์

การติดตั้ง
การ ติดตั้งโดยทั่วไป จะติดตั้งผ่านซีดีที่มีโปรแกรมบรรจุอยู่ในแผ่นซึ่งแผ่นซีดีนั้นสามารถหามา ได้หลายวิธี เช่นสามารถเบิร์นได้จาก ISO image ที่ดาวน์โหลดจากอินเทอร์เน็ต หรือสามารถหาซื้อซีดีได้ในราคาถูกโดยอาจจะซื้อรวมหรือแยกพร้อมกับคู่มือ เนื่องจากสัญญาอนุญาตของโปรแกรมเป็นแบบ GPL linux จากผู้จัดทำบางตัวเช่น เดเบียน (Debian) สามารถติดตั้งได้จากโปรแกรมขนาดเล็กผ่านฟลอปปีดิสก์ ซึ่งเมื่อติดตั้งส่วนหนึ่งสำเร็จ ตัวโปรแกรมของมันเองจะดาวน์โหลดส่วนอื่นเพิ่มขึ้นมาผ่านทางอินเทอร์เน็ต หรือสำหรับบางตัวเช่นอูบุนตุ สามารถทำงานได้ผ่านซีดีโดยติดตั้งในแรมในช่วงที่เปิดเครื่อง

การ ทำงานของ linux สามารถติดตั้งได้ในเครื่องเซิร์ฟเวอร์หรือเครื่องคอมพิวเตอร์ที่มีสมรรถนะ สูง จนถึงเครื่องที่สมรรถนะต่ำ ที่ไม่มีฮาร์ดไดรฟ์หรือมีแรมน้อยโดยทำงานเป็นเครื่องไคลเอนต์โดยที่เครื่อง ไคลเอนต์ สามารถบูตและเรียกใช้งานโปรแกรมต่างๆผ่านทางเน็ตเวิร์กจากเครื่องเทอร์มินอ ลเซิร์ฟเวอร์ ซึ่งวิธีการนี้ยังคงช่วยให้ประหยัดเวลาในการติดตั้งโปรแกรม เพราะติดตั้งเพียงเครื่องเดียวที่เทอร์มินอลเซิร์ฟเวอร์ รวมถึงราคาของเครื่องไคลเอนต์ที่ไม่จำเป็นต้องมีสมรรถภาพสูงซึ่งมีราคาถูก กว่าเครื่องทั่วไป
Linux Distro
Linux Distro มาจากคำว่า Linux Distribution เป็น linux ที่ถูกสร้างมาจากผู้ผลิตในแต่ละค่าย ซึ่งในแต่ละ distro ก็จะมีองค์ประกอบหลักๆคือ linux kernel, GNU library, กราฟฟิกจาก x-window system และ โปรแกรมประยุกต์ต่างๆที่ผู้ผลิตใส่เข้าไป ในโลกใบนี้มี linux distro อยู่เป็นจำนวนมาก ซึ่งในแต่ละค่ายก็มีจุดเด่นและเอกลักษณ์เฉพาะตัวแตกต่างกันไป ซึ่งจะเลือกใช้ตัวใดนั้นก็ขึ้นอยู่กับลักษณะการใช้งานและความพึงพอใจของผู้ ใช้ด้วยครับ เราสามารถดูการจัดอันดับและข่าวสารของ linux แต่ละ distro ได้ที่ http://www.distrowatch.com ยิงฟันยิ้ม

คำสั่ง linux เบื้องต้น

ls
เป็นคำสั่งที่ใช้สำหรับแสดงแฟ้มข้อมูล (เช่นเดียวกับ dirของDOS) มากจากคำว่า list
รูปแบบคำสั่ง ls [option] [file]
option ที่มักใช้กันใน ls คือ
-l จะแสดงผลลัพธ์แบบ Long Format ซึ่งจะแสดง Permission ของแฟ้มด้วย
-a จะแสดงแฟ้มข้อมูลทั้งหมด
-F จะแสดง / หลัง Directory และ * หลังแฟ้มข้อมูลที่ execute ได้
ตัวอย่างการใช้งาน ls –l ls -al ls -F

adduser
คำสั่งเพิ่ม User ให้กับระบบ Unix,Linux
รูบแบบการใช้งาน adduser -g (group) -d (Directory) (User)
ตัวอย่าง adduser -g root -d /home/user1 user สร้าง User ชื่อ Login คือ user1 เป็นสมาชิกในกลุ่ม root

useradd
คำสั่งเพิ่ม User ให้กับระบบ Unix,Linux (ใช้เหมือนกับคำสั่ง adduser)
รูบแบบการใช้งาน useradd -g (group) -d (Directory) (User)
ตัวอย่าง useradd -g root -d /home/user1 user สร้าง User ชื่อ Login คือ user1 เป็นสมาชิกในกลุ่ม root

userdel
คำสั่งลบ User ออกจากระบบ Unix,Linux
รูบแบบการใช้งาน userdel [option] (Username)
ตัวอย่าง userdel -r root user1 ลบ User ชื่อ Login คือ User1 และ -r คือให้ลบ Home Directoryของ User1 ด้วย

passwd
คำสั่งกำหนดและแก้ไขรหัสผ่านของ User ของระบบ Unix,Linux
รูบแบบการใช้งาน passwd [Username]
ตัวอย่าง passwd user1 (กำหนดรหัสผ่านให้ User1 ถ้าไม่พิมพ์ ชื่อ User ระบบUnixจะหมายความว่าแก้ไขรหัสผ่าน
ของคนที่Loginเข้ามา)

alias
คำสั่งกำหนดคำสั่งย่อของระบบ Unix,Linux (คล้ายกับคำสั่ง SETในDOSแต่สามารถใช้เปฝ้นคำสั่ง RUNได้)
รูบแบบการใช้งาน alias [ชื่อใหม่=ข้อความ]
ตัวอย่าง alias copy=cp กำหนดให้พิมพ์ copy แทนคำสั่ง cpได้

bash
คำสั่งเรียกใช้ Bourne again shellของระบบ Unix,Linux
รูบแบบการใช้งาน bash
ตัวอย่าง bash [Enter] ( เรียกใช้ Bourne again shell)

bc
คำสั่งเรียกใช้โปรแกรมคำนวณเลขของระบบ Unix,Linux
รูบแบบการใช้งาน bc [-lwsqv] [option] [file]
ตัวอย่าง bc [Enter] 1+2 [Enter] 1^2 [Enter] a=3 [Enter] b=4 [Enter] a*b [Enter] x=2;y=5;x+y[Enter] [Ctrl-d] เพื่อออก

หมายเหตุ:คำสั่งนี้จะใช้ได้ต้องInstall Packet ลงไปก่อน

cp
เป็นคำสั่งที่ใช้สำหรับสำเนาแฟ้มข้อมูล (เช่นเดียวกับcopyของDOS) มาจากคำว่า copy
รูปแบบคำสั่ง cp source target
ตัวอย่างการใช้งาน #cp test.txt /home/user1

cal
คำสั่งแสดงปฏิทินของระบบ Unix,Linux
รูบแบบการใช้งาน cal
ตัวอย่าง cal [Enter](สั่งให้ระบบแสดง ปฏิทินเดือน ปัจจุบัน)
cal -y [Enter](สั่งให้ระบบแสดง ปฏิทินปี ปัจจุบัน)

cat
คำสั่งแสดงข้อความในFileของระบบ Unix,Linux (คล้ายกับคำสั่งTypeของDOS)
รูบแบบการใช้งาน cat
ตัวอย่าง cat /home/user1 | more อ่านข้อมูลจากไฟล์/home/user1ถ้ายาวเกินหน้าให้หยุดทีละหน้าจอ

C Compiler
คำสั่งCompile ภาษาCของระบบ Unix,Linux (คล้ายกับคำสั่งTypeของDOS)
รูบแบบการใช้งาน cc [filename]
ตัวอย่าง cc /home/user1/industry.c จะสั่งให้ระบบCompile ภาษาC ไฟล์ชื่อ industry.c ที่ Directory /home/user1

cd
คำสั่งChange Directoryของระบบ Unix,Linux (คล้ายกับคำสั่งCDของDOS)
รูบแบบการใช้งาน cd [directory]
ตัวอย่าง cd /etc [Enter]ไปDirectory etc
cd ..[Enter] ย้ายไปDirectoryอีก1ชั้น

chfin
คำสั่งChange your finger informationของระบบ Unix,Linux (เป็นการกำหนดข้อมูลของUser
เช่น ชื่อเต็ม ที่อยู่ เบอร์โทรศัพท์)
รูบแบบการใช้งาน chfn [username]
ตัวอย่าง chfn User1 กำหนดรายละเอียดUser1

chgrp
คำสั่งChange Groupของระบบ Unix,Linux (เป็นการเปลี่ยนกลุ่มเจ้าของไฟล์)
รูบแบบการใช้งาน chgrp [-chfRv] (Group) (File)
ตัวอย่าง chgrp root /root/* เปลี่ยนGroupให้กับไฟล์ทุกไฟล์ในไดเรคทอรี่ /root ให้เป็น Group root

chmod
คำสั่งChange Modeของระบบ Unix,Linux (เป็นการเปลี่ยนสิทธิการเข้าถึงไฟล์)
รูบแบบการใช้งาน chmod [สิทธิ] (File)
ตัวอย่าง กำหนดสิทธิให้กับไฟล์ชื่อtest คือ chmod 754 test หรือ chmod go +r-w testให้กับไฟล์ทุกไฟล์ chmod o-r *
ตัวเลขMode rwx = 7 ; rw - =6 ; r-x =5 ; r- - = 4 ; - wx = 3 ; - w - = 2 ; - - x = 1 ; - - = 0

การกำหนดสิทธิกำหนดได้2ลักษณะคือ
1.กำหนดโดยใช้อักษรย่อกลุ่ม
2.ใช้รหัสเลขฐาน2แทนสิทธิ (1 คืออนุญาต)
กลุ่มผู้ใช้ User Group Other = ugo เช่น go-r-w+x คือกลุ่ม และคนอื่นไม่มีสิทธิอ่านเขียนแต่Runได้
สิทธิ์การใช้ -rwx rwx rwx = Read Write Execute
รหัสเลขฐาน 111 101 100 = 754 คือเจ้าของไฟล์ใช้ได้ครบ คน Group เดียวกันอ่านExecuteได้นอกนั้นอ่านได้อย่างเดียว

chown
คำสั่งChange Ownerของระบบ Unix,Linux (เป็นการเปลี่ยนเจ้าของไฟล์)
รูบแบบการใช้งาน chown [ซื่อเจ้าของไฟล์] (ชื่อFile)
ตัวอย่าง chown user1 filename คือเปลี่ยนเจ้าของไฟล์ชื่อ filename เป็นUser1
chown -R user1.root dirname คือเปลี่ยนทั้งเจ้าของไฟล์และกลุ่มไปพร้อมกันทุกไฟล์ใน Sub dirname.

chsh
คำสั่งchshของระบบ Unix,Linux (เป็นการเปลี่ยนShell ให้ User)
รูบแบบการใช้งาน chsh [Username]
ตัวอย่าง chsh user1 [Enter] /bin/bash [Enter]

clear
คำสั่งclearของระบบ Unix,Linux (เป็นการลบข้อความบนจอภาพ คล้ายกับคำสั่ง clsใน dos)
รูบแบบการใช้งาน clear
ตัวอย่าง clear [Enter]

cal
คำสั่งแสดงปฏิทินของระบบ Unix,Linux
รูบแบบการใช้งาน cal
ตัวอย่าง cal [Enter](สั่งให้ระบบแสดง ปฏิทินเดือน ปัจจุบัน)
cal -y [Enter](สั่งให้ระบบแสดง ปฏิทินปี ปัจจุบัน)

mesg
mesg ดู status การรับการติดต่อของ terminal
mesg y เปิดให้ terminal สามารถรับการติดต่อได้
mesg n ปิดไม่ให้ terminal สามารถรับการติดต่อได้

date
ใช้แสดง วันที่ และ เวลา
ตัวอย่าง date 17 May 2004

df
คำสั่งdf ของระบบ Unix,Linux (เป็นการตรวจสอบการใช้พื่นที่บนฮาร์ดดิสก์)
รูบแบบการใช้งานdf [option] [file]
ตัวอย่าง df [Enter]

dmesg
คำสั่งdmesgของระบบ Unix,Linux (เป็นการให้แสดงผลเหมือนตอน Boot)
รูบแบบการใช้งาน dmesg
ตัวอย่าง dmesg | more [Enter]
หมายเหตุ คำสั่งนี้ ใช้ตรวจสอบ เมื่อเกิดปัญหา เช่น Linux ไม่รู้จัก Driver CD-Rom หรือปัญหาอื่นๆ

echo
คำสั่งechoของระบบ Unix,Linux (เป็นการให้แสดงข้อความ เหมือนกับ ECHOของDOS)
รูบแบบการใช้งาน echo (ข้อความที่ต้องการให้แสดงผล)
ตัวอย่าง echo my name is user1
echo Hello > /dev/tty2 ส่งข้อความ Hello ไปออกจอเทอร์มินอลที่2

ed
คำสั่ง ed ของระบบ Unix,Linux (โปรแกรมแก้ไขข้อความใน Text file เหมือนกับคำสั่ง edlinของDOS)
รูบแบบการใช้งาน ed (fileName)
ตัวอย่าง ed /home/user/test (ออกกดq)
สำหรับคนที่ไม่ถนัดคำสั่งนี้แนะนำให้ใช้คำสั่ง picoหรือvi หรือemacsแทนได้เช่นกัน

emacs
คำสั่ง emacs ของระบบ Unix,Linux (โปรแกรมแก้ไขข้อความใน Text file )
รูบแบบการใช้งาน emacs (fileName)
ตัวอย่าง emacs /home/user/test (help กด Ctrl - h ; ออกกด Ctrl - x Ctrl - c)

exit
คำสั่ง exit ของระบบ Unix,Linux (ออกจากระบบยูนิกส์ )
รูบแบบการใช้งาน exit
ตัวอย่าง exit

finger
คำสั่ง finger ของระบบ Unix,Linux (แสดงชื่อUserที่กำลังLoginเข้ามาแต่คำสั่ง Whoจะให้รายละเอียดดีกว่า)
รูบแบบการใช้งาน finger [username]
ตัวอย่าง finger user1 แสดงชื่อและรายละเอียด user1

fsck
คำสั่ง fsck ของระบบ Unix,Linux (เป็นคำสั่ง ตรวจสอบและซ่อมแซม Linux file system เหมือนกับ
คำสั่งScandisk ของDos)
รูบแบบการใช้งาน fsck [option]
ตัวอย่าง /sbin/fsck -a /dev/hd1

ftp
คำสั่ง ftp ของระบบ Unix,Linux (เป็นโปรแกรมรับ-ส่งไฟล์ )
รูบแบบการใช้งาน ftp (IP or Name of FTP Server )
ตัวอย่าง ftp 132.209.1.2 [Enter]

Login:anonymous , Password: Username@YourDomain.com
คำสั่งที่เกี่ยวข้อง ls - ดูไฟล์ ; pwd -ดูdir. ที่อยู่ ;cd - เปลี่ยน dir ;lcd - เปลี่ยน local dir ;mput* -ส่งไฟล์ ;mget – รับ
ไฟล์ ;bye - ออก

grep
คำสั่ง grep ของระบบ Unix,Linux (เป็นการสั่งให้ค้นหาตามเงื่อนไข )
รูบแบบการใช้งาน grep (option)
ตัวอย่าง grep -i ftp /etc/test ค้นหาบรรทัดที่มีคำว่า "ftp"ไม่สนใจพิมพ์เล็ก-ใหญ่ จาดไฟล์ /etc/test

groupadd
คำสั่ง groupadd ของระบบ Unix,Linux (เป็นการเพิ่มรายชื่อกลุ่มของ User)
รูบแบบการใช้งาน groupadd (GroupName )
ตัวอย่าง #groupadd staff สร้างกลุ่มของ User ชื่อ Staff เพิ่มให้ระบบ

groupdel
คำสั่ง groupdel ของระบบ Unix,Linux (เป็นการลบรายชื่อกลุ่มของ User)
รูบแบบการใช้งาน groupadd (GroupName )
ตัวอย่าง #groupdel staff ลบกลุ่มของ User ชื่อ Staffออกจากระบบ

gzip/gunzip
คำสั่งgzip/gunzipของระบบ Unix,Linux (เป็นการบีบอัดไฟล์หรือขยายบีบอัดไฟล์)
รูบแบบการใช้งาน gzipหรือgunzip (-cdfhlLnNrtv19 ) [file]
ตัวอย่าง #gzip -9vr /home/samba/* บีบอัดไฟล์ข้อมูลทุกไฟล์ ในSub /home/samba จะเปลี่ยนเป็นนามสุกล .gz
#gunzip -dvr /home/samba/* คลายการบีบอัดไฟล์ข้อมูลทุกไฟล์ที่สกุล .gz ในSub /home/samba

halt
คำสั่ง halt ของระบบ Unix,Linux (เป็นการสั่งให้เครื่องหยุดทำงาน)
รูบแบบการใช้งาน halt [-n] [-w] [-d] [-f] [-I] [-p]
ตัวอย่าง #halt
คำสั่งที่เกี่ยวข้อง คือ Shutdown ; init0 , reboot

history
คำสั่ง history ของระบบ Unix,Linux (เป็นการดูประวัติการใช้คำสั่งในCommand line คล้ายกับ
การกดF7ในDOSคือเรียกใช้คำสั่งDos key)
รูบแบบการใช้งานhistory [n] [-r wan [filename] ]
ตัวอย่าง #history 20 ดูคำสั่งที่เพิ่งใช้ไป20คำสั่งที่แล้ว

ifconfig
คำสั่ง history ของระบบ Unix,Linux (เป็นการตรวจสอบกำหนดค่าNetworkของLan Card)
รูบแบบการใช้งาน ifconfig [option]
ตัวอย่าง #ifconfig

ipchains
คำสั่ง ipchains ของระบบ Unix,Linux (เป็นคำสั่งสำหรับกำหนดควบคุม การรับส่งผ่านข้อมูลของ Firewall)
รูบแบบการใช้งาน ipchains [parameter] command [option]
ตัวอย่าง #ipchains -L ดูสถานะการ Set IPchainsในปัจจุบัน

jobs
คำสั่ง jobs ของระบบ Unix,Linux (เป็นคำสั่งสำหรับกำหนดควบคุม การรับส่งผ่านข้อมูลของ Firewall)
รูบแบบการใช้งาน jobs
ตัวอย่าง #sleep 20 & jobs

kill
คำสั่ง kill ของระบบ Unix,Linux (เป็นคำสั่งสำหรับยกเลิก Process)
รูบแบบการใช้งาน kill [option] (process ID)
ตัวอย่าง ps -A ดูหมายเลขที่ช่อง PIDของProcess ที่ต้องการลบ
Kill -9

login
คำสั่ง login ของระบบ nnn แทนnnnด้วยหมายเลขPID -9 คือบังคับฆ่าให้ตาย
Unix,Linux (เป็นคำสั่งการเข้าระบบหรือเปลี่ยน User Login) รูบแบบการใช้งาน login [fp] (UserName)
ตัวอย่าง #login:root

mkdir
เป็นคำสั่งที่ใช้สำหรับการสร้าง directory (ในทำนองเดียวกับ dos) มาจากคำว่า make directory
รูปแบบของคำสั่งmkdir mkdir [option] [file]
โดย option ที่มักใช้กันใน mkdir คือ
-m จะทำการกำหนด Permissioin (ให้ดูคำสั่ง chmod เพิ่มเติม)
-p จะทำการสร้าง Parent Directory ให้ด้วยกรณีที่ยังไม่มีการระบุ directory ในที่นี้อาจเป็น relative
หรือ absolute path ก็ได้
ตัวอย่าง
mkdir /home
mkdir -p -m755 ~/้home/user1

mv
เป็นคำสั่งที่ใช้สำหรับการย้ายแฟ้มข้อมูลและ Directory รวมถึงการเปลี่ยนชื่อด้วย (ในทำนองเดียวกับ dos)
มาจากคำว่า move
รูปแบบคำสั่ง mv source target
ตัวอย่างmv *.tar /backup
mv test.txt old.txt
mv bin oldbin

more
คล้ายกับคำสั่ง cat ไม่เหมาะกับการดูข้อมูลที่มีความยาวมากๆ ดังนั้น จึงได้มีการพัฒนา more ขึ้น
เพื่อช่วยให้สามารถดูข้อมูลที่มีขนาดยาวได้เป็นช่วงๆ
รูปแบบคำสั่ง more file
ภายในโปรแกรม more จะมีคำสั่งเพื่อใช้งานคราวๆ ดังนี้
= แสดงเลขบรรทัด
q ออกจากโปรแกรม
เลื่อนไปยังหน้าถัดไป เลื่อนไปยังบรรทัดถัดไป
h แสดง help
ตัวอย่าง more test.txt

man
คำสั่ง man ของระบบ Unix,Linux (เป็นคำสั่งแสดงข้อความ อธิบายการใช้คำสั่ง)
รูบแบบการใช้งานman (Command)
ตัวอย่าง #man ls
หมายเหตุ เมื่อต้องการออก กด q ;ใช้[Spacebar] เลื่อนหน้าถัดไป ; ใช้ลูกศรขึ้นดูหน้าผ่านมา

mount
คำสั่ง mount ของระบบ Unix,Linux (เป็นคำสั่งเชื่อมต่ออุปกรณ์เข้ากับระบบ)
รูบแบบการใช้งาน mount (-t type) DeviceDriver MountPoint
ตัวอย่าง # การ Mountแบบที่1 CdRom mount -t iso9660 /dev/cdrom /mnt/cdrom
#การ Mount CdRom แบบที่2 mount /dev/cdrom (เมื่อmountแล้วCDจะอยู่ที่ /mnt/CdRom ยกเลิกดูคำสั่ง Unmount)

rmdir
เป็นคำสั่งที่ใช้สำหรับการลบ directory (ในทำนองเดียวกับ dos) มาจากคำว่า remove directory
โครงสร้างคำสั่ง
rmdir [option] [file]
โดย option ที่มักใช้กันใน mkdir คือ -p จะทำการลบ Child และ Parent Directory ตามลำดับ
directory ในที่นี้อาจเป็น relative หรือ absolute path ก็ได้ ตัวอย่าง rmdir /home

tar
เป็นคำสั่งเพื่อการ backup และ restore file ทั้งนี้การ tar จะเก็บทั้งโครง สร้าง directory และ file permission ด้วย
(เหมาะสำหรับการเคลื่อนย้าย หรือแจกจ่ายโปรแกรมบนระบบ UNIX) มาจากคำว่า tape archive
รูปแบบคำสั่ง tar [option]... [file]...
โดย option ที่มักใช้กันใน echo คือ
-c ทำการสร้างใหม่ (backup)
-t แสดงรายชื่อแฟ้มข้อมูลในแฟ้มที่ backup ไว้
-v ตรวจสอบความถูกต้องของการประมวลผล
-f ผลลัพธ์ของมาที่ file
-x ทำการ restore
ตัวอย่าง tar -xvf data.tar

talk
คำ สั่งที่ใช้สำหรับการพูดคุยระหว่างผู้ใช้ด้วยกันบนระบบ ซึ่งผู้ใช้ทั้งทั้ง 2 ฝ่ายจะต้องพิมพ์คำสั่ง Talk ถึงกันก่อน จึงจะเริ่มการสนทนาได้
รูปแบบคำสั่ง talk user[@host] [tty]
กรณีไม่ระบุ host โปรแกรมจะถือว่าหมายถึงเครื่องปัจจุบัน (นอกจากนี้ยังมีคำสั่ง ytalk ซึ่งสามารถพูดคุยได้พร้อม
กันมากกว่า 2 คน) ซึงบางกรณีเราอาจจะต้องระบุ tty ด้วยหากมีผู้ใช้ Log in เข้าสู่ระบบด้วยชื่อเดียวกันมากกว่า 1 หน้าจอ
ตัวอย่าง talk m2k@nanastreet.com

write
คำสั่งใช้เพื่อการส่งข้อมูลทางเดียวจากผู้เขียนไปถึงผู้รับบนเครื่องเดียวกันเท่านั้น
รูปแบบคำสั่ง write user [tty]
เมื่อมีการพิมพ์คำสั่ง write ผู้ใช้จะเห็นข้อความซึ่งจะแสดงว่าข้อความดังกล่าวถูกส่งมาโดยใคร ซึ่งหากผู้รับต้องการ
ตอบกลับ ก็จะต้องใช้คำสั่ง write เช่นกัน เมื่อพิมพ์เสร็จแล้วให้พิมพ์ตัวอักษร EOF หรือ กด CTRL+C เพื่อเป็น
การ interrupt ทั้งนี้ข้อความที่พิมพ์หลังจาก write จะถูกส่งหลังจากการกด Enter เท่านั้น
ตัวอย่าง write m2k

who am i
คำสั่งใช้เพื่อแสดงว่าผู้ใช้ซึ่ง login เข้าสู่ระบบนั้น (ตัวเราเอง) login ด้วยชื่ออะไร
รูปแบบคำสั่ง/ตัวอย่าง whoami หรือ who am i (บน SUN OS หรือ UNIX บางตัวเท่านั้น)

file
คำสั่งfileบนระบบ DOS/Windows นั้น ประเภทของแฟ้มข้อมูลจะถูกระบุด้วยนามสกุล แต่ใน UNIX จะไม่มี
นามสกุลเพื่อใช้ระบุประเภทของแฟ้มข้อมูล ดังนั้นการหาประเภทของแฟ้มข้อมูลจะดูจาก Context ภายใน
ของแฟ้ม ซึ่งคำสั่ง file จะทำการอ่าน Content และบอกประเภทของแฟ้มข้อมูลนั้นๆ
รูปแบบคำสั่ง file [option]... file
ตัวอย่าง file /bin/sh file report1.doc

free
แสดงหน่วยความจำที่เหลืออยู่บนระบบ
โครงสร้างคำสั่ง free [-b|-k|-m]
โดย option ที่มักใช้กันใน free คือ
-b แสดงผลลัพธ์เป็นหน่วย byte
-k แสดงผลลัพธ์เป็นหน่วย kilobyte
-m แสดงผลลัพธ์เป็นหน่วย megabyte
ตัวอย่าง free free –b free -k

pwd
เป็นคำสั่งที่ใช้สำหรับแสดง Directory ปัจจุบัน (ในทำนองเดียวกับการพิมพ์ cd บน DOS) มาจากคำว่า print work directory
รูปแบบคำสั่ง / ตัวอย่าง pwd

uname
คำสั่งแสดง ชื่อและรุ่นของ OS ชื่อและรุ่นของ cpu ชื่อเครื่อง
ตัวอย่าง uname -a

hostname
คำสั่งแสดงชื่อเครื่องที่ใช้อยู่
ตัวอย่าง hostname

tty
แสดงหมายเลข terminal ที่ใช้งานอยู่
ตัวอย่าง tty

id
ใช้แสดงชื่อและกลุ่มมของผู้ใช้งาน
ต้วอย่าง id
1.1 คำสั่ง ls : ใช้แสดงรายชื่อแฟ้มทั้งหมดใน home directory

--------------------------------------------------------------------------------
ทุกท่านที่มี account ใน linux จะมี home directory ของตนเอง เพื่อใช้เก็บแฟ้มต่าง ๆ ภายใต้ระบบ
linux เมื่อต้องการทราบว่ามีแฟ้มอะไรที่เก็บไว้บ้าง สามารถใช้คำสั่ง ls ได้ และสามารถกำหนด parameter ได้หลายตัว เช่น -al --sort เป็นต้น
ตัวอย่างคำสั่ง และการใช้งาน


ls -alt :: เพื่อแสดงรายชื่อแฟ้มทั้งหมด และจัดเรียงตามเวลา ให้ลองลบอักษรออกทีละตัวจาก alt ดูนะครับ
ls -alt | more :: เพื่อแสดงรายชื่อแฟ้มทั้งหมด แต่หยุดทีละหน้า เมื่อมีจำนวนแฟ้มเกินที่จะแสดงได้ ใน 1 หน้า
ls -al --sort=time | more :: แสดงรายชื่อแฟ้มเรียงตามเวลา แยกทีละหน้า โดยละเอียด
ls -R | more :: แสดงรายชื่อในทุก directory ในห้องปัจจุบัน
ถ้าสังเกตนะครับ แฟ้มที่มี . หน้าชื่อแฟ้ม จะหมายถึงแฟ้มที่ซ่อนไว้ ถ้าใช้คำสั่ง ls หรือ ls -l จะไม่เห็นแฟ้มเหล่านี้
ถ้ามีอักษร D ที่ Column แรก ในตอนแสดงชื่อแฟ้ม ด้วยคำสั่ง ls -al ก็จะหมายถึง directory ไม่ใช่แฟ้มธรรมดา

--------------------------------------------------------------------------------
1.2 คำสั่ง chmod : ใช้เปลี่ยนสิทธิ์ของแฟ้ม เจ้าของ(Owner), คนในกลุ่ม(Group), คนอื่น(Other) สามารถทำอะไรได้บ้าง
--------------------------------------------------------------------------------
เมื่อใช้คำสั่ง ls ท่านจะเห็นตัวอักษร RWXRWXRWX หรือทำนองนี้หน้าชื่อแฟ้ม ซึ่งเป็นการกำหนด
สิทธิ์ของแต่ละแฟ้ม ว่า อ่านได้ เขียนได้ และประมวลผลได้ โดยแยกเป็นส่วนของ เจ้าของ กลุ่ม คนอื่น
ซึ่งเป็นคำสั่งที่จำเป็นมากสำหรับ webmaster ในการดูแลระบบ และท่านที่ต้องการเขียน CGI
จะต้องรู้คำสั่งนี้ เพราะ เมื่อส่งแฟ้ม CGI เข้าไปใน server และต้องการให้คนทั่วไปเข้ามาใช้บริการ
โปรแกรมของตนที่เขียนขึ้นด้วย Perl จะไม่สามารถใช้ได้ ถ้าไม่กำหนดให้คนอื่น สามารถประมวลผลได้ (x)
จึง จำเป็นต้องใช้คำสั่ง เช่น chmod 755 hello.pl หรือ chmod 775 fileforyou.pl หรือ chmod +x test.pl เป็นต้น ในแต่ละกลุ่มจะมีการกำหนดสิทธิได้ 3 แบบ
ตัวอักษร R มาจาก Read หมายถึง อ่าน
ตัวอักษร W มาจาก Write หมายถึง เขียน
ตัวอักษร X มาจาก Execute หมายถึง ประมวลผล
ตัวอย่างเช่น
--- : ไม่มีสิทธิอะไรเลย (เลขที่ใช้คือ 0)
--X : ประมวลผลได้อย่างเดียว (เลขที่ใช้คือ 1)
R-- : อ่านได้อย่างเดียว (เลขที่ใช้คือ 4)
RW- : อ่าน และเขียนได้ (เลขที่ใช้คือ 6)
R-X : อ่าน และประมวลผลได้ (เลขที่ใช้คือ 5)
RWX : อ่าน เขียน และประมวลผลได้ (เลขที่ใช้คือ 7) ความหมายของ RWXRWXRWX จะเห็นว่ามีอักษร 9 ตัว
3 ตัวแรกหมายถึง เจ้าของ
3 ตัวที่สองหมายถึง กลุ่ม
3 ตัวที่สามหมายถึง คนอื่น
ตัวอย่างเช่น
RWX------ : เจ้าของเท่านั้นที่มีสิทธิทุกอย่าง (เลขที่ใช้คือ 700)
RWXRWX--- : เจ้าของ และสามาชิกกลุ่มเดียวกันมีสิทธิทุกอย่าง (เลขที่ใช้คือ 770)
RWXR-XR-X : เจ้าของทำได้หมด ส่วนกลุ่มและคนอื่นอ่านและประมวลผลได้ (เลขที่ใช้คือ 755)
R--R--R-- : ทุกคนอ่านได้อย่างเดียว (เลขที่ใช้คือ 444)

ตัวอย่างคำสั่ง และการใช้งาน
chmod 777 index.php :: ทำให้แฟ้มนี้ อ่าน เขียน และประมวลผล โดยทั้ง 3 กลุ่ม
chmod 755 * -Rf :: ทำให้ทุกแฟ้ม ทุก direcroty ในห้องปัจจุบัน เปลี่ยนตามที่กำหนด

--------------------------------------------------------------------------------
1.3 คำสั่ง man : เป็นคำสั่งที่สำคัญมาก เพราะจะช่วยให้อธิบายคำสั่งต่าง ๆ ให้ท่านได้ (Manual)
--------------------------------------------------------------------------------
ผมเชื่อว่าทุกคนที่ใช้ unix หรือ linux ต้องเคยใช้คำสั่งนี้มาก่อน เพราะจะเป็นคำสั่งที่ช่วยอธิบายหน้าที่ของคำสั่ง
พร้อมกับแสดง parameter ที่สามารถใช้ได้ทั้งหมดของคำสั่งนั้น และยังมีตัวอย่างการใช้ และคำสั่งที่เกี่ยวข้องอีก
ทำให้ประหยัดเวลาในการค้นเอกสารได้อย่างมาก บางท่านอาจศึกษา linux ด้วยการอ่านจาก man
อย่างเดียวเลยก็มีนะครับ โดยไม่ต้องไปหาซื้อหนังสือที่ไหนมาอ่านก็ทำได้
ตัวอย่างคำสั่ง และการใช้งาน
man man :: เพื่ออธิบายคำสั่ง man เอง ว่าตัวคำสั่งนี้ใช้อย่างไร
man ls :: เพื่ออธิบายคำสั่ง ls ว่าใช้อย่างไร
man useradd :: เพื่ออธิบายคำสั่ง useradd ว่าใช้อย่างไร

--------------------------------------------------------------------------------
1.4 คำสั่ง mkdir, rmdir, cd : งานต่าง ๆ เกี่ยวกับ directory
--------------------------------------------------------------------------------
ผู้ใช้คอมพิวเตอร์ที่ใช้ dos มาก่อนต้องคุ้นเคยกับ directory แน่นอน สำหรับคำสั่งเกี่ยวกับ directory
ในที่นี้มี 3 คำสั่ง mkdir หมายถึง สร้าง directory (Make directory) rm หมายถึง ลบ directory
(Remove directory) และคำสั่งนี้ยังใช้ลบแฟ้มตามปกติได้อีกด้วย cd หมายถึงเปลี่ยน directory (Change directory)
ตัวอย่างคำสั่ง และการใช้งาน
mkdir hello :: สร้าง directory ชื่อ hello ในห้องปัจจุบัน
rmdir hello.htm :: จะลบแฟ้มชื่อ hello.htm
cd / :: ย้าย directory ไปยัง root หรือห้องนอกสุด
cd .. :: ย้าย directory ออกไปข้างบน 1 ระดับ
cd ~/x :: เข้าไปยังห้อง x ของ home directory เช่น /home/thaiall/x ถ้า home directory คือ /home/thaiall

--------------------------------------------------------------------------------
1.5 โปรแกรม pico : เป็น editor ที่ใช้สำหรับแก้ไขแฟ้มแบบ text คล้าย vi แต่มีประสิทธิภาพกว่ามาก
--------------------------------------------------------------------------------
เพียงแต่พิมพ์คำว่า pico แล้ว enter ก็ใช้งานได้เลย การจะจัดเก็บ หรืองานต่าง ๆ ที่มีบริการไว้มากมาย
ท่านสามารถอ่านได้จากเมนูด้านล่าง ซึ่งเครือ่งหมาย ^ หมายถึงการกดปุ่ม Ctrl ประกอบอักษรต่าง ๆ นั่นเอง
ผมคิดว่าท่านน่าจะพออ่านรู้เรื่อง หรือจะพิมพ์ว่า pico xx ก็จะเป็นการสร้างแฟ้มชื่อ xx ให้ทันที แต่หากมีแล้ว
ก็จะเปิดแฟ้ม xx มาให้แก้ไขในโปรแกรม xx เมื่อท่านต้องการเลิกก็ทำได้โดยกดปุ่ม Ctrl-X เป็นอันเรียบร้อย
หากท่านใดเคยใช้ vi เมื่อลองใช้โปรแกรมนี้จะติดใจอย่างแน่นอน เพราะใช้งานได้ง่ายกว่า หลายเท่านัก หลายครั้ง
ที่พิมพ์คำว่า pico แล้วไม่มีในเครื่อง ก็เพราะไม่ได้ลงโปรแกรม pine เมื่อต้องการใช้ pico ก็ต้องติดตั้งโปรแกรม
pine เข้าไปในเครื่อง จากแผ่น CD ด้วยคำสั่ง rpm -i pine*
1.6 โปรแกรม emacs : เป็น editor ที่ใช้สำหรับแก้ไขแฟ้มแบบ text คล้าย vi แต่มีประสิทธิภาพกว่ามาก
--------------------------------------------------------------------------------
ทำงานได้คล้าย ๆ กับ pico แต่หลายคนบอกว่า ตัวนี้ทำงานได้ดีกว่า แต่ผมว่า pico ใช้งานได้ง่ายกว่ากันเยอะเลย
เพราะเห็นเมนูด้านล่าง แต่ของ emacs จะใช้ ctrl-h ดูส่วนช่วยเหลือ และกด ctrl-x + ctrl-c จึงจะออกจากโปรแกรม
อาจเป็นเพราะผมใช้ไม่ชำนาญมังครับ ในเมื่อผมใช้ pico เป็น editor ผมคงไม่จำเป็นต้องศึกษา emacs เพิ่มเติมแล้ว
ยกเว้นว่าสักวันอาจมีเหตุจำเป็นที่ความสามารถของ pico ให้ไม่ได้ แต่ emacs ให้ได้ก็เป็นได้
Welcome to GNU Emacs, one component of a Linux-based GNU system.
Get help C-h (Hold down CTRL and press h)
Undo changes C-x u Exit Emacs C-x C-c
Get a tutorial C-h t Use Info to read docs C-h i
Ordering manuals C-h RET
Activate menubar F10 or ESC ` or M-`
(`C-' means use the CTRL key. `M-' means use the Meta (or Alt) key.
If you have no Meta key, you may instead type ESC followed by the character.)


--------------------------------------------------------------------------------
1.7 โปรแกรม vi : เป็น editor ที่ใช้สำหรับแก้ไขแฟ้มแบบ text
--------------------------------------------------------------------------------
Text editor ที่ใช้งานได้ยาก แต่มีใน linux ทุกรุ่น ในบางเครื่องไม่มี pico เพราะไม่ได้ติดตั้ง mail หรือ pine จึงจำเป็นต้องใช้โปรแกรม vi สำหรับแก้ไขข้อมูลในแฟ้มต่าง ๆ ของ linux เช่นการใช้คำสั่ง man ก็คือการใช้ความสามารถของ vi ในการนำข้อมูลมาแสดงผลนั่นเอง
ตัวอย่างคำสั่ง และการใช้งาน
esc กลับไปยังโหมดคำสั่ง
enter ย้ายไปยังต้นบรรทัดของบรรทัดถัดไป
i ใส่ข้อความก่อนเคอร์เซอร์
a ใส่ข้อความหลังเคอร์เซอร์
A ใส่ข้อความที่ท้ายบรรทัดปัจจุบัน
dd ลบบรรทัดปัจจุบันทั้งบรรทัด
x ลบอักษร 1 ตัวอักษร
cw เปลี่ยนข้อความ
:w บันทึกแฟ้ม
:q! ออกโดยไม่ เปลี่ยนแปลงใด ๆ
:wq บันทึกแฟ้ม และออกจากโปรแกรม vi


--------------------------------------------------------------------------------
1.8 คำสั่ง id, finger, who, w : ทุกคำสั่งข้างต้นใช้สำหรับตรวจสอบผู้ใช้ แต่จะให้รายละเอียดต่างกันไป
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
id uname :: ใช้ตรวจดูว่ามี account uname นี้ในระบบหรือไม่ ให้ผลสั้น
finger uname :: ใช้ตรวจดูว่ามี account uname นี้ในระบบหรือไม่ ให้ผลละเอียด ทั้ง last login หรือ email ฉบับล่าสุด
finger @www.isinthai.com :: ใช้แสดงรายชื่อทุกคนในระบบที่กำลัง login อยู่ในระบบ ใช้ได้กับทุกระบบที่ไม่ปิดบริการนี้
who |grep thai :: ใช้แสดงรายชื่อทุกคนในระบบ แต่ใช้นอกระบบตนเองไม่ได้ และเลือกเฉพาะบรรทัดที่มีอักษร thai
w :: ใช้แสดงรายชื่อทุกคนในระบบ แต่ใช้นอกระบบตนเองไม่ได้

--------------------------------------------------------------------------------
1.9 คำสั่ง cat : แสดงข้อมูลในแฟ้ม คล้ายคำสั่ง type ในระบบ DOS
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
cat /etc/passwd :: แสดงข้อมูลในแฟ้ม /etc/passwd
cat /etc/passwd | more :: แสดงข้อมูลในแฟ้ม /etc/passwd ทีละหน้า
ตัวอย่างข้อมูลในแฟ้ม passwd suwit:x:500:500:Suwit:/home/suwit:/bin/bash prasert:x:501:501::
/home/prasert:/bin/bash bcom101:x:502:502::/home/bcom302:/bin/bash

--------------------------------------------------------------------------------
1.10 คำสั่ง ifconfig : แสดงข้อมูลเกี่ยวกับ Network interface และแสดง ip ต่าง ๆ ที่มีการเพิ่มเข้าไปใน server ได้
--------------------------------------------------------------------------------

ดูผลการทำงานของคำสั่ง ifconfig
eth0 Link encap:Ethernet HWaddr 00:20:18:C0:06:C4
inet addr:202.29.78.12 Bcast:202.29.78.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:673054 errors:0 dropped:0 overruns:0 frame:0
TX packets:666268 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:74892865 (71.4 Mb) TX bytes:680121131 (648.6 Mb)
Interrupt:9 Base address:0xcf00
eth0:1 Link encap:Ethernet HWaddr 00:20:18:C0:06:C4
inet addr:202.29.78.1 Bcast:202.29.78.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:9 Base address:0xcf00

เพิ่ม ip ใหม่อีก 1 ip เช่น #/sbin/ifconfig eth0:1 202.29.78.1
สามารถดูวิธีเพิ่มหลาย IP ในคอมพิวเตอร์เครื่องเดียว ได้จากหัวข้อ 9.10 ด้วยการแก้ไขแฟ้ม /etc/rc.d/rc.local
1.11 คำสั่ง netstat : แสดงสถานะของเครือข่ายว่ามีโปรแกรมใดเปิดให้บริการ
--------------------------------------------------------------------------------

ดูผลการทำงานของคำสั่ง netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:mysql *:* LISTEN
tcp 0 0 *:http *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
tcp 0 0 *:https *:* LISTEN
tcp 0 0 www.isinthai.com:ssh 202.29.78.200:1225 ESTABLISHED
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ACC ] STREAM LISTENING 855 /var/lib/mysql/mysql.sock
unix 2 [ ACC ] STREAM LISTENING 119 /dev/log
unix 2 [ ] STREAM CONNECTED 3007
unix 2 [ ] STREAM CONNECTED 859


--------------------------------------------------------------------------------
1.12 คำสั่ง service : ดูสถานะของบริการต่าง ๆ ว่าถูกเปิดหรือ running อยู่หรือไม่
--------------------------------------------------------------------------------

ดูผลการทำงานของคำสั่ง service --status-all
httpd (pid 2160 2159 2158 2155 2114 583 579 578 577 576 575 573) is running...
mysqld (pid 446 429 427 414) is running...
sendmail (pid 1700 1690) is running...
sshd (pid 2970 358) is running...
xinetd (pid 3923 369) is running...


--------------------------------------------------------------------------------
1.13 คำสั่ง xinetd : ดูบริการภายใน xinetd ว่าอะไรเปิดอยู่บ้าง ทำให้เข้าไปเปิดที่ห้อง /etc/xinetd.d
แล้วเลือกเปิดบริการเฉพาะที่ต้องการ เช่นแก้แฟ้ม talk เพื่อให้เปิดบริการ talk ใน server เป็นต้น
--------------------------------------------------------------------------------

ดูผลบางส่วนจากการทำงานของคำสั่ง xinetd -d
Service configuration: ftp
id = ftp
flags = IPv4
socket_type = stream
Protocol (name,number) = (tcp,6)
Nice = 10
Groups = no
Bind = All addresses.
Server = /usr/sbin/vsftpd
Server argv = vsftpd
Only from: All sites
No access: No blocked sites
Logging to syslog. Facility = authpriv, level = info
Log_on_success flags = HOST PID
Log_on_failure flags = HOST


--------------------------------------------------------------------------------
1.14 คำสั่ง whereis : ค้นหาแฟ้มที่ต้องการว่าอยู่ที่ห้องใด แต่ค้นได้เฉพาะที่กำหนดไว้ใน PATH เท่านั้น หากต้องการค้นทั้งเครื่องต้องใช้คำสั่ง find
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
whereis usermod :: แสดงห้องที่เก็บคำสั่ง usermod ทำให้สามารถสั่ง run จากห้องที่เก็บคำสั่งโดยตรงได้
whereis ifconfig :: แสดงห้องที่เก็บคำสั่ง ifconfig ทำให้ใช้คำสั่งเช่น /sbin/ifconfig ได้โดยตรง

--------------------------------------------------------------------------------
1.15 คำสั่ง cp, rm, mv : จัดการแฟ้มเช่น คัดลอก ลบ และย้าย
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
cp x y :: เดิมมีแฟ้มชื่อ x ต้องการแฟ้ม y ที่เหมือน x ขึ้นมาใหม่ สามารถใช้คำสั่ง cp
rm y :: ลบแฟ้ม y ออกจากเครื่อง ซึ่งอยู่ใน directory ปัจจุบัน
rm -r directoryname :: จะลบ directory ในเครื่อง sun และแฟ้มทั้งหมดใน directory นั้น และการลบแฟ้ม จะมีการถาม confirm ทุกแฟ้มเสมอ
rm -rf directoryname :: จะลบ directory ใช้ใน Redhat และแฟ้มทั้งหมดใน directory นั้น และการลบแฟ้ม จะมีการถาม confirm ทุกแฟ้มเสมอ
rm -f * :: ลบแฟ้มทั้งหมดโดยไม่ถาม yes
mv x /root :: ย้ายแฟ้ม x จากห้องปัจจุบันไปไว้ในห้อง /root

--------------------------------------------------------------------------------
1.16 คำสั่ง ping : ตรวจสอบ ip ของเครื่องเป้าหมาย และการเชื่อมต่อ internet
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
ping www.thaiall.com :: ตัวสอบการมีอยู่ของ www.thaiall.com และแสดงเลข IP ของเว็บนี้
ping 202.29.78.100 -c 5 :: แสดงผลการทดสอบเพียง 5 บรรทัด
ping 202.29.78.2 :: ผลดังข้างล่างนี้ แสดงว่าไม่พบเครื่องที่มีเลข ip ดังกล่าว PING 202.29.78.2 (202.29.78.2)
from 202.29.78.12 : 56(84) bytes of data. From 202.29.78.12 icmp_seq=1
Destination Host Unreachable From 202.29.78.12 icmp_seq=2 Destination
Host Unreachable From 202.29.78.12 icmp_seq=3 Destination Host Unreachable

--------------------------------------------------------------------------------
1.17 คำสั่ง env : แสดงค่า environment ปัจจุบัน
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
env

HISTSIZE=1000
SSH_CLIENT=202.29.78.100 1091 22
OLDPWD=/usr/sbin
QTDIR=/usr/lib/qt3-gcc3.2
SSH_TTY=/dev/pts/0
USER=burin
LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;.... :
PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin
MAIL=/var/spool/mail/burin
PWD=/etc
INPUTRC=/etc/inputrc
LANG=en_US.UTF-8
HOME=/root
SHLVL=2
LOGNAME=burin
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/bin/env

--------------------------------------------------------------------------------
1.18 คำสั่ง lynx : Text browser ที่ใช้งานง่าย ใช้ดู source หรือ download ได้
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
lynx www.thaiall.com :: เพื่อเปิดเว็บ www.thaiall.com แบบ text mode
lynx http://www.yonok.ac.th :: เพื่อเปิดเว็บ www.yonok.ac.th แบบ text mode
lynx -dump http://www.yonok.ac.th :: เพื่อแสดงผลลัพธ์แบบไม่ interactive คือการ view ผลแล้วหยุดทันที
lynx -dump -width=500 http://piology.org/.procmailrc.html|grep '^|'|cut -c3- :: ตัวอย่างการนำไปใช้

--------------------------------------------------------------------------------
1.19 คำสั่ง nslookup : แสดงข้อมูลเกี่ยวกับ name server จาก ip หรือ domain name
--------------------------------------------------------------------------------

คำ สั่งนี้ ถูกประกาศว่าต่อไปอาจไม่พบใน Redhat รุ่นใหม่ ถ้าต้องการใช้คำสั่งแบบนี้สามารถใช้ dig หรือ host แทนได้ เช่น host yn1.yonok.ac.th หรือ dig yn1.yonok.ac.th เมื่อเข้าไปใน nslookup สามารถออกมาได้ด้วยการพิมพ์คำสั่ง exit หลังเครื่องหมาย >
ตัวอย่างคำสั่ง และการใช้งาน
nslookup 202.28.18.65
Non-authoritative answer:
65.18.28.202.in-addr.arpa name = mars.uni.net.th.
Authoritative answers can be found from:
18.28.202.in-addr.arpa nameserver = mars.uni.net.th.
18.28.202.in-addr.arpa nameserver = ns.netserv.chula.ac.th.
mars.uni.net.th internet address = 202.28.18.65
nslookup www.thaiall.com
Name: www.thaiall.com
Address: 66.150.1.141


--------------------------------------------------------------------------------
1.20 คำสั่ง tail : แสดงส่วนท้ายของแฟ้มที่มีขนาดใหญ่ ต้องข้ามกับ cat ที่ดูตั้งแต่เริ่มแฟ้ม
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
tail index.html :: ดูส่วนท้ายของแฟ้ม index.html ใน Current directory
tail --lines=5 /var/log/messages :: ดูส่วนท้ายของแฟ้ม /var/log/messages แต่ต้องเป็น root จึงจะดูได้
tail /var/log/html/access.log :: ดูส่วนท้ายเพียง 10 บรรทัด ซึ่งเป็นค่า default ที่ไม่ได้กำหนดจำนวนบรรทัด
tail --lines=100 /var/log/html/access_log > access_bak :: เป็นการ backup ในขั้นแรก ก่อนใช้ mv ย้ายไปทับแฟ้มเดิม

--------------------------------------------------------------------------------
1.21 คำสั่ง telnet : ใช้ติดต่อเข้า server ต่าง ๆ ตาม port ที่ต้องการ แต่ปัจจุบัน server ต่าง ๆ ปิดบริการ telnet แต่เปิด SSH แทน
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
telnet 202.202.202.202 :: ขอติดต่อเข้าเครื่อง 202.202.202.202 การไม่กำหนด port คือเข้า port 23
telnet www.school.net.th 21 :: ขอติดต่อผ่าน port 21 ซึ่งเป็น FTP port
telnet mail.loxinfo.co.th 25 :: ตรวจ smtp ว่าตอบสนองกลับมา หรือไม่
telnet class.yonok.ac.th 110 :: ทดสอบ pop service ของ windows server 2003 Microsoft Windows POP3 Service Version 1.0 ready. USER aa@class.yonok.ac.th +OK PASS xxxxxxx +OK User successfully logged on
--------------------------------------------------------------------------------
2.1 คำสั่ง df : แสดงการเนื้อที่ใช้งานทั้งหมดของ Harddisk ว่าเหลือเท่าใด
--------------------------------------------------------------------------------
ช่วย ให้ผู้ดูแลระบบรู้ว่าตอนนี้เนื้อที่ใน Harddisk เหลืออยู่เท่าใด และอาจใช้ตรวจสอบได้ว่า มีใครแอบมา upload แฟ้มขนาดใหญ่ไว้หรือไม่ จะได้ตรวจสอบในรายละเอียดของแต่ละ user ต่อไป (ผมเองก็ใช้บ่อย เพราะถ้า server เล็ก ๆ จะเต็มบ่อยครับ ต้องคอย clear เสมอ)
ตัวอย่างคำสั่ง และการใช้งาน
df :: เพื่อแสดงรายงานสรุปการใช้ในแต่ละส่วน
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda5 505605 82764 396737 18% /
/dev/hda1 101089 9180 86690 10% /boot
/dev/hda3 1423096 41956 1308848 4% /home
none 30740 0 30740 0% /dev/shm
/dev/hda2 3889924 1551872 2140456 43% /usr
/dev/hda6 1027768 952876 22684 98% /var

--------------------------------------------------------------------------------
2.2 คำสั่ง du : แสดงการเนื้อที่ใช้งาน ของแต่ละ directory โดยละเอียด
--------------------------------------------------------------------------------
ช่วย ให้ผู้ดูแลระบบรู้ว่า directory ใด ใช้เนื้อที่ใด หรือใช้ดูรวม ๆ ว่า ผู้ใช้แต่ละคนใช้เนื้อที่เก็บข้อมูลกันเท่าใด เพราะผู้ใช้ปกติจะใช้กันไม่เยอะ แต่ถ้าตรวจสอบแล้วเยอะผิดปกติ ก็จะเข้าไปดูว่า เยอะเพราะอะไร จะได้แก้ไขได้
ตัวอย่างคำสั่ง และการใช้งาน
du :: เพื่อแสดงรายชื่อ directory และเนื้อที่ที่ใช้ไป
du -all :: เพื่อแสดงโดยละเอียดว่าแต่ละแฟ้มมีขนาดเท่าใด ใน directory ปัจจุบัน
du | sort -g :: แสดงการใช้พื้นที่ของแต่ละ directory พร้อม sort จากน้อยไปมาก มีหน่วยเป็น Kb
du -b :: แสดงหน่วยเป็น byte ของแต่ละ directory

--------------------------------------------------------------------------------
2.3 คำสั่ง ps : แสดง Process หรือโปรแกรมที่ประมวลผลอยู่ในระบบขณะนั้น
--------------------------------------------------------------------------------
ช่วย ให้ผู้ดูแลระบบ ติดตามได้ว่ามีโปรแกรมอะไรที่ไม่ถูกต้อง run อยู่ หรือโปรแกรมอะไร ที่ผู้ศึกษาลองประมวลผลแล้วค้างอยู่ จะได้ทำการแก้ไง มิฉนั้นระบบก็จะทำงานค้าง เพราะโปรแกรมที่ไม่ควรอยู่ในระบบ กำลังประมวลผลโดยไม่จำเป็น โดยเฉพาะพวก bot จะทำให้ server ล่มง่ายมาก
ตัวอย่างคำสั่ง และการใช้งาน
ps :: แสดงชื่อ process ต่าง ๆ ที่ทำงานอยู่อย่างสั้น
ps -ef :: แสดงข้อมูลของ process โดยละเอียด
ps -ax :: แสดงข้อมูลของ process พร้อมชื่อโปรแกรมได้ละเอียด
ps -aux :: แสดงข้อมูลของ process พร้อมชื่อโปรแกรม และชื่อผู้สั่งได้ละเอียดมาก

--------------------------------------------------------------------------------
2.4 คำสั่ง kill : เมื่อทราบว่า process ใดที่มีปัญหา ก็จะเห็นเลขประจำ process คำสั่ง kill จะสามารถ process ออกจากระบบได้
--------------------------------------------------------------------------------
ช่วย ยกเลิก process ที่ไม่ถูกต้องออกจากระบบ ถ้าขณะนั้นผู้ใช้คนหนึ่งกำลังใช้งานอยู่ หาก process หลักของเขาถูก kill จะทำให้ผู้ใช้ท่านนั้น หลุดออกจากระบบทันที (สำหรับคำสั่งนี้จะถูกใช้โดย super user เท่านั้น ผู้ใช้ธรรมดาไม่มีสิทธิ์)
ตัวอย่างคำสั่ง และการใช้งาน
kill -9 เลขประจำprocess :: เลขประจำ process ท่านจะได้จากการใช้ ps -ef อยู่แล้ว
kill -9 1255 :: ลบ process ที่ 1255 ออกจากระบบไป

--------------------------------------------------------------------------------
2.5 คำสั่ง find : เมื่อไฟล์ที่ต้องการว่าอยู่ใน directory ของเครื่องเราหรือไม่
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
find / -name hello.pl :: ใช้ค้นหาแฟ้ม hello.pl ในทุก directory
find / -name hello* :: ใช้ค้นหาแฟ้มที่ขึ้นต้นด้วยคำว่า hello
find /bin -size 626188c :: ใช้ค้นหาแฟ้มที่มีขนาด 626188 ถ้าเป็น RH8 จะพบแฟ้ม bash

--------------------------------------------------------------------------------
2.6 คำสั่ง gzip : ใช้สำหรับแตกแฟ้มที่ถูกบีบอัด แล้วนามสกุล gz หรือ z แต่ทั่วไปเขาแนะนำให้ใช้ tar สำหรับสกุล .tar.gz
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
gzip -d x.tar.gz :: ใช้แตกแฟ้มที่นามสกุล gz
man gzip :: ใช้ดูว่า gzip ใช้งานอะไรได้บ้าง
gzip -d radius-1.16.1.tar.Z :: ได้แฟ้มนี้จาก ftp.livingston.com/pub/le/radius/ เป็นระบบรับโทรศัพท์เข้าเครือข่าย
gzip -dc x.tar.Z|tar xvf - :: ประหยัดขั้นตอนในการใช้คำสั่ง 2 ครั้ง เพราะคำสั่งชุดนี้จะใช้ทั้ง gzip และ tar กับ x.tar.z ได้ตามลำดับ

--------------------------------------------------------------------------------
2.7 คำสั่ง tar : ใช้สำหรับแตกแฟ้มที่ถูกบีบอัด แล้วนามสกุล tar
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
tar xvf x.tar :: ใช้สำหรับแตกแฟ้มที่นามสกุล tar ปกติแล้วจะมีการสร้าง directory ของแฟ้มพร้อมโปรแกรมอีกเพียบ
tar xvfz squid-2.3-200103110000-src.tar.gz :: จะคลาย gz พร้อมกับใช้คำสั่ง tar ได้พร้อม ๆ กัน ไม่ต้องใช้ gzip และมาใช้ tar
man tar :: ใช้ดูว่า tar ใช้งานอะไรได้บ้าง
tar zcvf abc.tar.gz /etc :: ใช้ copy /etc เก็บเป็นแฟ้ม abc.tar.gz แบบบีบอัด
tar zxvf abc.tar.gz :: ใช้คลายแฟ้ม abc.tar.gz ซึ่งจะได้ directory /etc ออกมาทั้งหมด

--------------------------------------------------------------------------------
2.8 คำสั่ง last : ใช้แสดงรายชื่อผู้ login เข้ามาล่าสุด
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
last |grep reboot :: ใช้ดูระบบถูก reboot เมื่อใดบ้าง
last |more :: ใช้รายชื่อผู้ login เข้ามาในระบบล่าสุดทีละหน้า

--------------------------------------------------------------------------------
2.9 คำสั่ง grep : ใช้สำหรับเลือกข้อมูลเฉพาะบรรทัดที่ต้องการ
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
more /etc/passwd|grep thaiall :: ใช้แสดงข้อมูลในแฟ้ม /etc/passwd แต่เลือกเฉพาะบรรทัดที่มีคำว่า thaiall
rpm -qa|grep ftp :: ใช้ดูว่าระบบลงโปรแกรม ftp หรือยัง เวอร์ชั่นใดบ้าง
last |grep reboot :: ใช้ดูระบบถูก reboot เมื่อใดบ้าง

--------------------------------------------------------------------------------
2.10 คำสั่ง date : ใช้ดูวันที่ หรือเปลี่ยนวันที่ และเวลาได้ date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
date +%x :: ดูวันที่ปัจจุบัน เช่นการแสดงเลข 04/27/01 ออกมา
date +%d :: ดูวันที่ปัจจุบัน เช่นการแสดงเลข 27 ออกมา
date 04271340 :: กำหนดวันที่ใหม่ให้เป็น วันที่ 27 เดือน 4 เวลา 13.40 น. (mmddhhmmccyy)
hwclock --systohc :: เมื่อเปลี่ยนเวลาด้วย date หาก restart เครื่องเวลาจะผิดเหมือนเดิมต้องใช้คำสั่งนี้ เพื่อเขียนเวลาลงไปใน hardware clock จึงจะเปลี่ยนเวลา hardware ได้
--------------------------------------------------------------------------------
2.11 คำสั่ง top : ใช้แสดงสถานะการใช้ทรัพยากร ภายในเครื่อง
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
top :: แสดงการใช้ทรัพยากรของเครื่อง จากแต่ละ process ทดสอบคำสั่งนี้ใน Redhat 8.0
ตัวอย่างผลของการใช้คำสั่ง
CPU states: 0.5% user, 1.3% system, 0.0% nice, 98.0% idle
Mem: 31328K av, 28872K used, 2456K free, 0K shrd, 1032K buff
Swap: 1718912K av, 2608K used, 1716304K free 16528K cached

PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
18306 root 14 0 852 852 672 R 0 1.5 2.7 0:00 top
18229 root 1 0 1684 1536 1240 S 0 0.3 4.9 0:00 sshd
1 root 0 0 160 116 92 S 0 0.0 0.3 0:08 init
2 root 0 0 0 0 0 SW 0 0.0 0.0 0:01 kflushd


--------------------------------------------------------------------------------
2.12 คำสั่ง ntsysv หรือ setup : ใช้เปิด-ปิด บริการของเครื่องที่สะดวกรวดเร็ว
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
setup :: แสดงการตัวเลือกให้กำหนดบริการต่าง ๆ ปกติจะเลือก system services บริการที่เปิดใน server ของผมประกอบด้วย httpd, imap, ipop3, iptables, named, network, sendmail, servers, services, vsftpd, xinetd เพื่อให้บริการ web, mail, ftp และ dns
ntsysv :: ใช้เปิด-ปิดบริการ ให้ผลเหมือน setup, services (แต่คำสั่งนี้ถูกยกเลิกใน RH รุ่นใหม่)

--------------------------------------------------------------------------------
2.13 คำสั่ง route : ใช้เส้นทางการเชื่อมเครือข่าย
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
# route

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
202.29.78.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 202.29.78.254 0.0.0.0 UG 0 0 0 eth0


--------------------------------------------------------------------------------
2.14 คำสั่ง shutdown, reboot : ใช้ปิดเครื่อง หรือ ปิดและเปิดเครื่องใหม่อย่างถูกวิธี
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
shutdown -h now หรือ halt :: สั่งปิดเครื่องทันที (แต่ใช้เวลาประมาณ 1 นาทีเพื่อปิดบริการต่าง ๆ)
reboot หรือ shutdown -r now :: ปิด และเปิดเครื่องใหม่ หากติดตั้งโปรแกรมบางตัว และ clear ค่าต่าง ๆ หากไม่แน่ใจ

--------------------------------------------------------------------------------
2.15 คำสั่ง runlevel : คู่กับแฟ้ม /etc/inittab เพื่อบอกว่าปัจจุบันอยู่ใน level ใด : ถ้าต้องการเปลี่ยน level ต้องใช้คำสั่ง chkconfig ให้ดูเพิ่มเติมจาก 2.18
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
#/sbin/runlevel :: แสดง level ปัจจุบัน
#cat /etc/inittab :: แสดงตาราง กำหนดการสั่งเครื่อง ว่าใช้ level ใด

--------------------------------------------------------------------------------
2.16 คำสั่ง fsck : ซ่อมแซมระบบแฟ้มใน linux
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
#fsck / :: ใช้ซ่อม harddisk ในห้อง / เมื่อการ harddisk เกิดปัญหาเกี่ยวกับการปิดเปิด
#fsck /dev/hdc :: ใช้ซ่อม harddisk ที่ชื่อ /dev/hdc ถ้าต่อ harddisk ไว้หลายตัว

--------------------------------------------------------------------------------
2.17 คำสั่ง chown, chgrp : เปลี่ยนเจ้าของ หรือเปลี่ยนกลุ่ม
--------------------------------------------------------------------------------
ตาม หัวข้อ 1.2 เรื่องคำสั่ง chmod ทำให้ทราบว่า แฟ้มแต่ละแฟ้มมี 3 ส่วน คือเจ้าของ กลุ่ม และทั่วไป เมื่อต้องการเปลี่ยนความเป็นเจ้าของ หรือกลุ่ม ก็สามารถทำได้ ซึ่งเป็นหลักการง่าย ๆ ไม่ยุ่งยาก
ตัวอย่างคำสั่ง และการใช้งาน
#chown burin:users x :: เปลี่ยนเจ้าของของแฟ้ม x ให้เป็น burin และอยู่ในกลุ่มของ users
#chgrp users y :: เปลี่ยนกลุ่มของแฟ้ม x ให้เป็น users

--------------------------------------------------------------------------------
2.18 คำสั่ง chkconfig : กำหนด หรือแสดง บริการที่สั่งประมวลผลใน level ต่าง ๆ ขณะเปิดเครื่อง
--------------------------------------------------------------------------------
คำ ว่า level คือระดับในการเปิดเครื่อง ดูได้จากแฟ้ม /etc/inittab โดยโปรแกรมต่าง ๆ ที่สั่งให้ประมวลผล สามารถเลือกให้ทำงานใน level ใดได้ หากสั่งให้ประมวลผลปิด level เมื่อมีการ start linux ใน level หนึ่ง โปรแกรมที่คิดว่าสั่งให้ทำงานขณะเปิดเครื่อง ก็จะไม่ทำงาน
# /etc/inittab
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#id:5:initdefault:
id:3:initdefault:

ตัวอย่างคำสั่ง และการใช้งาน
#/sbin/chkconfig --add mysql :: สั่งให้เพิ่ม mysql เข้าไปในระบบ system services
#/sbin/chkconfig --list :: แสดงรายการโปรแกรมทั้งหมด ที่สั่งให้ทำงานใน level ต่าง ๆ
#/sbin/chkconfig --level 3 sendmail on :: สั่งโปรแกรม sendmail ทำงานใน level 3 (Text mode)
#/sbin/chkconfig --level 5 sendmail on :: สั่งโปรแกรม sendmail ทำงานใน level 5 (X Windows)

--------------------------------------------------------------------------------
2.19 คำสั่ง mount, umount : สั่งเชื่อมต่ออุปกรณ์ หรือ partition เช่น Diskette หรือ Handy drive เป็นต้น
--------------------------------------------------------------------------------
การ ใช้ mount เป็นสิ่งที่ผู้ดูแลระบบต้องเข้าใจหลักการให้ได้ เพราะเป็นช่องทางในการติดต่อกับอุปกรณ์ต่าง ๆ ล่าสุด ผมต่อ harddisk เข้าไปในเครื่อง server เพิ่มอีก 1 ตัว ซึ่งระบบมอง harddisk ตัวที่เพิ่มเข้าไปเป็น hdc ด้วยคำสั่ง fdisk -l เมื่อต้องการ partition ที่ 1 ของ hdc มาเป็นห้อง /x ก็เพียงแต่ใช้คำสั่งสร้างห้องคือ #mkdir /x สำหรับครั้งแรก แล้วใช้คำสั่ง #mount /dev/hdc1 /x ก็จะใช้ห้อง /x ซึ่งอยู่ใน harddisk อีกตัวหนึ่งได้ทันที
คำสั่งที่เกี่ยวข้องกับคำสั่ง mount
#cat /etc/fstab : ดู file system table เพื่อบอกว่ามีอะไร mount ไว้แล้วบ้าง
#cat /etc/mtab : ดูรายละเอียดการ mount ในอีกรูปแบบหนึ่ง
#cat /proc/mounts : บอกว่ามีอะไร mount ไว้แล้วบ้าง
#cat /proc/partitions : บอกชื่อ และขนาดของแต่ละ partitions
#cat /proc/filesystems : บอกประเภทของ filesystems ที่มีการสนับสนุน
#/sbin/fdisk -l : แสดง partition จาก harddisk ทุกตัวที่เชื่อมต่อในเครื่องนั้น

ตัวอย่างคำสั่ง และการใช้งาน
#mount --bind /var/www /home/yourname/www
#mount แสดงข้อมูลที่เคย mount ไว้ทั้งหมด

วิธีใช้แผ่น Floppy Disk ใน linux
#mkdir /floppy
#mkfs -t ext3 /dev/fd0 1440
#mount -t ext3 /dev/fd0 /floppy
- or -
#mkdir /floppy
#mkfs -t msdos /dev/fd0 1440
#mount -t msdos /dev/fd0 /floppy
ต่อไปในห้อง /floppy ก็คือแผ่น disk ใน drive A ส่วน /dev/fd1 ก็คือ drive B แต่ต้องเริ่มทำใหม่นะครับ
วิธีใช้ Handy Drive เช่น Apacer (ต้อง umount ก่อนดึง apacer ออกก่อนเสมอ)
#mkdir /mnt/apacer (Just first time)
#mount /dev/sda1 /mnt/apacer
...
#cd /
#umount /dev/sda1
- and -
#pico /etc/fstab Add: /dev/sda1 /mnt/apacer auto noauto,user 0 0
วิธีเรียกใช้แฟ้มใน Partition อื่น เช่น WindowsXP
cd / :: ย้ายตัวเองไปยัง root directory
mkdir hd :: สร้างห้องชื่อ hd ซึ่งเป็นห้องเปล่าไม่มีอะไร
fdisk -l :: ดูว่ามี partition อะไรในเครื่องบ้าง ที่ต้องการ mount เข้ากับ /hd
mount /dev/hdb2 /hd :: ทำให้เรียกใช้ /dev/hdb2 จาก /hd ได้ เช่น cd /hd/etc ถ้าใน hdb2 มีห้องชื่อ etc
umount /hd :: ยกเลิกการ mount /hd

วิธีใช้ CDROM
mount :: แสดงรายการอุปกรณ์ หรือห้องต่าง ๆ ที่ถูก mount ไว้แล้ว
mount -t ext3 :: แสดงให้เห็นว่า partition แบบ ext3 มีอะไรถูก mount ไว้บ้าง
mount -t vfat :: แสดงให้เห็นว่า partition แบบ vfat มีอะไรถูก mount ไว้บ้าง
mount /dev/cdrom :: ใช้ติดต่อ CD ROM เมื่อเข้าไปใช้เช่น #cd /mnt/cdrom และใช้ #ls
umount /dev/cdrom :: เพื่อเลิกใช้ CD ROM หรือต้องการดึงแผ่นออก แต่ท่านต้องออกมาก่อนด้วยคำสั่ง #cd / เป็นต้น
eject :: ถ้าไม่ umount ด้านล่าง ก็สั่ง eject เพื่อดีด CD-ROM ออกได้เลยครับ และไม่ต้องสั่ง umount หรือออกจากห้องก่อนนะ

ตัวอย่าง ผลการใช้คำสั่ง #mount ใน server ตัวหนึ่ง /dev/hda5 on / type ext3 (rw) none on /proc type proc (rw) /dev/hda1 on /boot type ext3 (rw) none on /dev/pts type devpts (rw,gid=5,mode=620) /dev/hda3 on /home type ext3 (rw) none on /dev/shm type tmpfs (rw) /dev/hda2 on /usr type ext3 (rw) /dev/hda6 on /var type ext3 (rw)

--------------------------------------------------------------------------------
2.20 คำสั่ง mkbootdisk : สร้างแผ่น boot disk เพื่อใช้ boot ระบบ linux ขึ้นมาภายหลัง และมีการทำงานแบบ stand alone
--------------------------------------------------------------------------------
คำ สั่งนี้ผมเคยใช้ตอนคัดลอก harddisk ที่เป็น linux 2 ตัว แต่ตัวลูกเมื่อนำไปเสียบเข้าเครื่องใหม่ พบว่า boot ด้วยตนเองไม่ได้ จึงต้องหาแผ่น boot จนเข้าไปใน harddisk ได้ จากนั้นก็สั่ง #lilo เพื่อให้การ boot ครั้งต่อไปสามารถทำงานตาม /etc/lilo.conf ได้ตามปกติ ส่วนตัวเลข 2.4.18-14 เป็นเลขรุ่นของ kernel ใน Redhat 8.0 สังเกตเลขนี้ได้ตอน boot เครื่อง
ตัวอย่างคำสั่ง และการใช้งาน
mkbootdisk --device /dev/fd0 2.4.18-14 :: สร้างแผ่น disk เพื่อใช้ boot เข้า linux ในกรณีที่ระบบ boot ของเครื่องมีปัญหา
--------------------------------------------------------------------------------
2.21 คำสั่ง traceroute : แสดงเลข ip ของเครื่องที่ถูกเชื่อมต่อทั้งหมด ไปยังปลายทางที่ต้องการ
--------------------------------------------------------------------------------
ตัวอย่างข้างล่างนี้แสดงให้เห็นว่า เมื่อในวิทยาลัยโยนกเปิดเว็บ www.thai.net จะต้องติดต่อผ่านเครื่องบริการ 8 ตัว ดังตัวอย่างล่างนี้ ถ้าเปิดเว็บไซต์ต่างประเทศ ก็จะมีจำนวนเครื่องในการติดต่อมากขึ้นไปด้วย เครื่องบริการในที่นี้ มักเป็นอุปกรณ์ที่เรียกว่า router และ router ทุกตัวจะมี ip และความสามารถเฉพาะตัวที่ต่างกันไป โดยหน้าที่หลักของ router ก็คือการกำหนดเส้นทางในการติดต่อนั่นเอง
ตัวอย่างคำสั่ง และการใช้งาน
/usr/sbin/traceroute www.thai.net
traceroute to www.thai.net (203.150.13.2), 30 hops max, 38 byte packets
1 door.yonok.ac.th (202.29.78.254) 2.046 ms 1.962 ms 2.532 ms
2 202.28.29.41 (202.28.29.41) 3.703 ms 3.294 ms 3.760 ms
3 UniNet-BKK2-ATM1-0-0.700.uni.net.th (202.28.28.129) 14.185 ms 13.226 ms 14.614 ms
4 202.28.28.18 (202.28.28.18) 13.705 ms 13.227 ms 14.130 ms
5 202.47.255.2 (202.47.255.2) 13.222 ms 13.890 ms 13.210 ms
6 202.129.63.182 (202.129.63.182) 16.649 ms 14.960 ms 15.659 ms
7 juliet-vlan-2.bkk.inet-th.net (203.150.14.22) 14.817 ms 15.573 ms 15.610 ms
8 www.thai.net (203.150.13.2) 15.628 ms 14.775 ms 14.222 ms


--------------------------------------------------------------------------------
2.22 คำสั่ง rpm : ใช้ตรวจสอบ เพิ่ม หรือลบ package ของระบบ linux เกือบทั้งหมด
--------------------------------------------------------------------------------
ใน กรณีที่ท่านมีโปรแกรมตัวใหม่มา สามารถที่จะลบโปรแกรมเพิ่มโดยใช้คำสั่ง rpm ได้ หรือต้องการตรวจสอบว่า มี package บางตัว install อยู่หรือไม่ หรือจะยกเลิกโปรแกรมบางตัวออกจากระบบก็ทำได้ หรือจะแสดงรายชื่อ package ทั้งหมดในระบบก็ทำได้อีก รวมทั้งการตรวจ version ของ package แต่ละตัว จากประสบการณ์ ไม่แน่ใจว่าเกิดจากอะไร เมื่อลง Redhat 7.2 แล้ว แต่ระบบไม่บริการ pop3 จึงได้ทำการ mount /dev/cdrom จากนั้นก็ทำการ install package pop เพิ่มเข้าไป ที่รู้เพราะลองใช้คำสั่ง telnet localhost 110 แล้ว error จึงต้องทำการเพิ่ม package pop เข้าไปใหม่ โดยใช้คำสั่ง rpm -i imap-4.7-5.i386.rpm ที่รู้เพราะได้ใช้ cd เข้าไปในห้อง /mnt/cdrom/RedHat/RPMS จึงพบแฟ้มมากมายที่สามารถ install เพิ่มได้
ตัวอย่างคำสั่ง และการใช้งาน
rpm -i imap-4.7-5.i386.rpm :: ใช้ install package pop เข้าไปใน linux ใหม่ เพราะไม่มี และให้ดูเพิ่มเติมจาก 8.99 เกี่ยวกับการติดตั้งโปรแกรมจาก CD-ROM
rpm -qa|grep imap :: ใช้ดูว่ามี package อะไรบ้างที่ขึ้นต้นด้วย imap
rpm -qa :: ใช้ดูรายชื่อ package ทุกตัวที่ install ไว้แล้ว
rpm -q telnet :: ใช้ตรวจว่ามี package ชื่อ telnet อยู่หรือไม่
rpm -qpl imap-4.7-5.i386.rpm :: แสดงชื่อแฟ้มใน package แต่ต้องเข้าไปที่ /mnt/cdrom/RedHat/RPMS ก่อนนะครับ
rpm -qf /usr/sbin/vi :: จะแสดง vim-minimal-5.6-11 ซึ่งเป็นรุ่นของ vi นั้น
rpm -qf /usr/sbin/httpd :: จะได้ apache-1.3.12-2 ซึ่งเป็นรุ่นที่ติดตั้งมาใน linux 6.2
rpm -e apache-1.3.12-2 :: ลบ หรือ erase โปรแกรม apache-1.3.12-2 ออกจากเครื่อง
rpm -Fvh openssl-0.9.5a-2.6.x.i386.rpm :: Upgrade โปรแกรม แต่ต้องลงโปรแกรมก่อนมิเช่นนั้น ไม่สำเร็จนะครับ
rpm -qi vsftpd :: แสดงรายละเอียดของ Application เช่น ขนาด วันติดตั้ง รุ่น ผู้ผลิต เป็นต้น

--------------------------------------------------------------------------------
2.23 คำสั่ง SU : ขอเปลี่ยนตนเองเป็น Super user หรือ root เพื่อใช้สิทธิ์สูงสุดในการบริหารระบบ ที่ผู้ใช้ปกติทำไม่ได้
--------------------------------------------------------------------------------
การ จะใช้ su ได้จะต้องเป็นผู้ใช้ตามปกติ เมื่อพิมพ์ su แล้วระบบจะถามรหัสผ่านของ user root หากพิมพ์รหัสผ่านถูกต้อง ท่านก็จะสามารถกระทำการใด ๆ ก็ได้ ในฐานะ root เพราะ root หรือ super user คือผู้ที่มีอำนาจสูงสุดในระบบ เช่น เพิ่มผู้ใช้ท่านใหม่ ลบผู้ใช้คนเดิม เป็นต้น (เพียงแต่พิมพ์คำว่า su ท่านก็สามารถเปลี่ยนสิทธิ์ได้แล้ว ถ้าท่านมีรหัสผ่านของ su) เดิมผมใช้แค่คำว่า su ต่อมาคุณประเสริฐ แนะนำว่าต้องใช้ su - จึงจะสมบูรณ์ พอทดสอบก็พบว่า $PATH ที่ได้แตกต่างกันจริง
ตัวอย่างคำสั่ง และการใช้งาน
#su - :: เปลี่ยนตนเองเป็น super user เพื่อกระทำการใด ๆ ก็ได้กับตัวระบบ
#su prasert :: ไม่ว่าขณะที่ login เป็น user ใด เมื่อต้องการเปลี่ยนเป็น user prasert ก็ไม่ต้อง logout แล้ว login ใหม่ ใช้คำสั่งนี้ได้เลย

--------------------------------------------------------------------------------
2.24 คำสั่ง useradd : เพิ่มผู้ใช้รายใหม่เข้าไปในระบบ
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
#useradd theman :: เพิ่มผู้ใช้รายใหม่เข้าไปในระบบชื่อ theman ในกลุ่ม theman และมี home directory เป็น /home/theman
#useradd -g users -d /home/theman -c "user name here" theman :: เพิ่มผู้ใช้รายใหม่เข้าไปในระบบชื่อ theman

--------------------------------------------------------------------------------
2.25 คำสั่ง userdel : ลบผู้ใช้รายเดิม ออกจากระบบ
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
#userdel -r theman :: ลบ theman และ home directory ของ theman ออกหมด

--------------------------------------------------------------------------------
2.26 คำสั่ง usermod : แก้ไขข้อมูลของผู้ใช้ได้
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
#usermod -s /rbin/menu theman :: กำหนดให้ shell สำหรับ user ที่ชื่อ theman ใหม่ เพื่อจำกัดสิทธิ์ในการเข้าใช้ shell
#usermod -d /home/theman theman :: กำหนดให้ theman มี homedirectory อยู่ที่ /home/theman
#usermod -c "Mr.Suwit Somsupabrungyod" theman :: กำหนดให้ comment หรือชื่อ เป็น Mr.Suwit Somsupabrungyod ซึ่ง comment จะไปแสดงผลให้เห็นชัดเจนตอนที่ใช้ pine เมื่อพิมพ์คำว่า theman ในช่อง to ขณะที่กำลัง compose จะแสดง comment หน้า email ให้ทันที

--------------------------------------------------------------------------------
2.27 คำสั่ง crontab : ตั้งเวลาสั่งงานคอมพิวเตอร์
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
#crontab -l :: แสดงกำหนดการของการสั่งให้คอมพิวเตอร์ทำงานอย่างอัตโนมัติ ตามเวลาที่กำหนด
#cat /etc/crontab :: แสดงตาราง crontab ในเครื่อง

--------------------------------------------------------------------------------
2.28 คำสั่ง lspci : ตรวจสอบอุปกรณ์ที่เชื่อมต่อภายในเครื่อง
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
#lspci
00:00.0 Host bridge: Intel Corp . 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
00:07.0 ISA bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.2 USB Controller : Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 02)
00:0f.0 PCI bridge: Digital Equipment Corporation DECchip 21152 (rev 03)
00:11.0 Ethernet controller: 3Com Corporation 3c905B 100BaseTX [Cyclone] (rev 24)
01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage Pro AGP 1X/2X (rev 5c)


--------------------------------------------------------------------------------
2.29 คำสั่ง nmap : ตรวจสอบเครือข่ายแบบกวาดทั้งในเครื่อง และ class C
--------------------------------------------------------------------------------

ตัวอย่างคำสั่ง และการใช้งาน
#nmap -sP 202.29.78.*
Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Host (202.29.78.0) seems to be a subnet broadcast address (returned 1 extra pings).
Note -- the actual IP also responded.
Host www.isinthai.com (202.29.78.1) appears to be up.
Host course.yonok.ac.th (202.29.78.5) appears to be up.
Host yonok.ac.th (202.29.78.12) appears to be up.
Host w2kdhcp.yonok.ac.th (202.29.78.17) appears to be up.
Host (202.29.78.31) appears to be up.
Host (202.29.78.32) appears to be up.
Host (202.29.78.33) appears to be up.

#nmap -sT www.yonok.ac.th (on TCP)
Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on yonok.ac.th (202.29.78.12):
(The 1590 ports scanned but not shown below are in state: closed)
Port State Service
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
109/tcp open pop-2
110/tcp open pop-3

#nmap www.yonok.ac.th -sU (on UDP)
Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on yn1.yonok.ac.th (202.29.78.12):
(The 1465 ports scanned but not shown below are in state: closed)
Port State Service
53/udp open domain
111/udp open sunrpc
867/udp open unknow
คัดมาจาก http://www.linuxcentrix.com/index.php/topic,11.0.html

วันพุธที่ 24 ธันวาคม พ.ศ. 2551

กาติดตั้ง clamAV

Anti-virus
[edit]
ClamAV AntiVirus Server

* Read #General Notes
* Read #How to add extra repositories

* Although viruses and spyware are less common in Linux systems, they do exist. Furthermore, many users share files with Windows users, either on their own computer or on LANs. ClamAV is useful for checking these files.

* Install ClamAV AntiVirus Server:

sudo apt-get install clamav

If you get errors, try running the command again
[edit]
How to update virus definitions

* Virus definition updates are provided by the clamav-freshclam module, which is installed as part of clamav.

* Run freshclam manually:

sudo freshclam

[edit]
How to install ClamAV automatic updater daemon

* The clamav daemon will run freshclam automatically to keep definitions up-to-date. It will also run e-mail server checking modules for e-mail attachments.

sudo apt-get install clamav-daemon

[edit]
How to scan files or folders

sudo clamscan -r /location_of_files_or_folders

[edit]
How to install ClamTk GUI frontend for ClamAV

sudo apt-get install clamtk

ClamTk can be accessed from the Menu: Applications--> Accessories-->Virus Scanner

* Note: As of August 1, 2007, the Ubuntu repository version of ClamTk is 0.31, which has a bug that does not allow it to run. Obtain and install the current version of ClamTk 0.99, which functions fine in Ubuntu Feisty:

wget -c http://downloads.sourceforge.net/clamtk/clamtk_2.99-1_all.deb
sudo dpkg -i clamtk_2.99-1_all.deb

[edit]
How to automatically scan files/folders for viruses

* Read #General Notes
* Read #How to install ClamAV AntiVirus Server

* This method is used to automatically scan files/folders for viruses at a scheduled time.
* * * * * * means: minute hour date month year

* Edit the crontab file:

EDITOR=gedit sudo crontab -e

comment: sure? (root's crontab)

or, simply,

gksudo gedit crontab -e

comment: sure? - (its work?)

* Append a line similar to the following line at the end of file. In this example, scanning will be done at 02:04am every day of every month of every year.

04 02 * * * sudo clamscan -r /location_of_files_or_folders

วันจันทร์ที่ 8 ธันวาคม พ.ศ. 2551

การติดตั้ง Apache, PHP, MySQL, PHPMyAdmin บน Ubuntu 11.04

1.อันดับแรก ให้เริ่มต้นติดตั้งเว็บเซอร์ฟเวอร์ Apache2 ก่อน

 ด้วยคำสั่ง sudo apt-get  install apache2

เมื่อติดตั้งสำเร็จจะมีข้อความ

Setting up apache2-mpm-worker (2.0.55-4ubuntu2.1) ...
* Starting apache 2.0 web server... apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
[ ok ]

Setting up apache2 (2.0.55-4ubuntu2.1) ...

ทดลองเปิดเว็บบราวเซอร์ Firefox มายังเครื่องที่ติดตัั้ง หรือถ้ารันบนเครื่องเดียวกันให้เปิด URL เป็น localhost
ถ้าขึ้นข้อความแบบนี้

It works!

This is the default web page for this server.
The web server software is running but no content has been added, yet.

แสดงว่าใช้ได้แล้ว


2. ลำดับต่อไปติดตั้ง PHP ด้วยคำสั่ง

sudo apt-get  install php5

3. หลังจากนั้นให้ติดตั้งโมดูลของ PHP เพื่อให้สามารถติดต่อกับ MySQL ได้ ด้วยคำสั่ง

sudo apt-get install php5-mysql

4.หลังจากติดตั้งแล้วให้รีสตาร์ท apache อีกครั้งด้วยคำสั่ง

sudo /etc/init.d/apache2 restart

5.ลำดับต่อไปติดตั้ง MySQL ด้วยคำสั่ง

sudo apt-get  install mysql-server

ทดสอบด้วยการรันคำสั่ง

mysql -U -root -pXXXX


โดยตรงส่วน XXXX หมายถึงรหัสผ่าน mysql ของเรา


จะได้พรอมพ์ของ MySQL

mysql>

ทดลองพิมพ์คำสั่ง

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
+--------------------+
2 rows in set (0.00 sec)
จากนั้นหากต้องการแก้ไข character set ใน MySql ให้เป็น UTF-8 ก็ให้ไปวิธีแก้ไข  ที่นี่ ครับ 


6. ลำดับต่อไป ติดตั้ง PHPMyAdmin ด้วยคำสั่ง

sudo apt-get install phpmyadmin

หลังจากติดตั้งเสร็จแล้วสร้างลิ้งไปที่ phpmyadmin ด้วยคำสั่งนี้ครับ

sudo ln -s /usr/share/phpmyadmin /var/www/phpmyadmin

ที่มา  http://research.crma.ac.th/2549/index.php/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%95%E0%B8%B4%E0%B8%94%E0%B8%95%E0%B8%B1%E0%B9%89%E0%B8%87_Apache,_PHP,_MySQL,_PHPMyAdmin_%E0%B8%9A%E0%B8%99_Ubuntu_6.06

วันพฤหัสบดีที่ 4 ธันวาคม พ.ศ. 2551

การติดตั้งไดร์เวอร์ ip1800 ใน ubuntu 8.10

To install printer CANON PIXMA ip1880 in UBUNTU, Like this The method:

Firstly we download driver printer, that is entering to:

http://www.canon-asia.com/index.jsp?fuseaction=support&
prod_type=bj&country=SG

choose Model PIXMA iP1880
click Menu Drivers & Softwares
click next, then look the pop up link,
choose the version 2.7.0 for Linux

Download two file, That is:

"Common package" and "Package for the iP1800series"

Because the file are the RPM format, convert to the package debian/Ubuntu ascertained the package alien already install in your ubuntu, but if not yet then you must Install this package:

install the alien package

* sudo apt-get install alien

If already install (the alien package), now ascertained you have root access, then entered to directory the place file driver printer, then the ordered:

* sudo alien -kc cnijfilter-common-2.70-1.i386.rpm
* sudo alien -kc cnijfilter-ip1800series-2.70-1.i386.rpm

Results convert in install with the order :

* sudo dpkg -i cnijfilter-common_2.70-1_i386.deb
* sudo dpkg -i cnijfilter-ip1800series_2.70-1_i386.deb

And you too necessary and need the files library libtiff3 and libpng3. without libtiff3, printer was detected but did not have the response during print jobs. In Fiesty Fawn available only libtiff4, so let's make libtiff3 with this HOW:

from root terminal

* cd /usr/lib/
* sudo ln -s ./libtiff.so.4.2.1 ./libtiff.so.3

for libpng3, install from repository

* sudo apt-get install libpng3

After success to install, then turn on printer, and connected to the previous computer entered to :

* System---adminstrastion---printing.

double click new printer

choose " Local or Detected Printer"

choose Detected Printer : Canon iP1800 series ......

then click next


because the option iP1800 not in the list,

choose "Install Driver" button and to /usr/share/cups/model for choose canonip1800.ppd

then : next

Then click apply button.

Nah... the Printer have done to install and in printer window will show icon iP1800. change to default printer with this HOW: Right click printer icon and choose "Make Default"

วันพุธที่ 3 ธันวาคม พ.ศ. 2551

วิธีการแก้ไขให้ v-box สามารถใช้งาน usb ได้

ขออนุญาต คุณ Kids แห่ง www.ubuntuclub.com เจ้าของความรู้ด้วยครับ


sudo gedit /etc/fstab

เพิ่มข้างล่างเข้าไป
# usbfs
none /proc/bus/usb usbfs devgid=124,devmode=664 0 0

รีสาร์ตเครื่อง เปิด virtualbox คลิก setting จะเห็น ยูเอสบี ให้เข้าไปติ๊กอันที่ต้องการใช้
จากนั้นเมื่อเปิดโอเอสใน virtualbox ขึ้นมา สังเกตแถบล่าง ไอคอนยูเอสบี คลิกขวาเลือกใช้ usb disk ก็จะใช้ได้

วันอังคารที่ 25 พฤศจิกายน พ.ศ. 2551

การใช้คำสั่ง chmod

คัดลอกมาจาก http://www.leksound.net/forum/index.php?PHPSESSID=a3f8a723562adb2cf7cc25850e1c8fa1&topic=12515.msg58694

chmod เป็นการกำหนดสิทธิ์การเข้าถึงไฟล์

สำหรับท่านที่ทำการติดตั้ง PHP-Nuke บน *NIX หลายท่าน
อาจจะมีปัญหาเรื่องการตั้งค่าเหล่านี้พอสมควร

เพราะหลาย modules จะมีขั้นตอนนึงที่บอกว่า ให้ต้องทำการ chmod
ถ้าหากไม่ทำก็ไม่สามารถติดตั้ง หรือใช้งาน modules เหล่านั้นได้

แต่สำหรับระบบ windows จะไม่มีเรื่อง permissions อันนี้ครับ
ดังนั้นผู้ที่ใช้ระบบ windows ก็ข้ามในส่วนนี้ได้เลย

drwxr-xr-x 2 webadmin admin 4096 Oct 24 23:29 programs
-rw-r--r-- 1 webadmin admin 20729 Oct 24 23:29 readme-tpf.html
drwxr-xr-x 2 webadmin admin 4096 Oct 24 23:22 search
-rw-r--r-- 1 webadmin admin 6129 Oct 24 23:29 sections.html.en
-rw-r--r-- 1 webadmin admin 6245 Oct 24 23:29 sections.html.html


รูปแบบคือ -RWXRWXRWX

อาจจะมี d หรือ l หรือ - นำหน้าอีกตัวนึง (ตัวนี้เราจะไม่กล่าวถึงนะครับ)

d บ่งบอกว่าเป็น directory

l บ่งบอกว่าเป็นlink file ที่เกิดจากคำสั่ง ln

- บ่งบอกว่าเป็นไฟล์


สิทธิ์มีอยู่ 3 อย่างคือ RWX

R=read W=write X=execute

สิทธิ์จะแบ่งเป็น 3 กลุ่มผู้ใช้คือ

3 ตัวแรก => สิทธิ์ของเจ้าของ file

3 ตัวถัดมา => สิทธิ์ของสมาชิกในกลุ่มเดียวกันกะเจ้าของ file

3 ตัวสุดท้าย => สิทธิ์ของคนอื่นๆใครก็ได้ หมายรวมถึงผ่านระบบ inetnet ด้วย

การคำนวณค่าตัวเลขสำหรับการกำหนดสิทธิ์

จากตัวอย่างที่ให้ดูข้างบน จะพบว่า เขาจะแสดงออกมาในรูปตัวอักษร RWX
แต่ในการติดตั้ง PHP-Nuke หรือ Applications อื่นๆ ที่ต้องทำการ chmod

จะพบว่า เขาบอกมาในรูปตัวเลขทั้งนั้น เช่น 777, 666

ตัวเลขที่เขาบอกมา เป็นผลรวมของแต่ละกลุ่ม โดยที่

RWX = 4 + 2+ 1 = 7

ที่มาคือ
R = 2 ยกกำลัง 2 = 4
W = 2 ยกกำลัง 1 = 2
X = 2 ยำกำลัง 0 = 1

สรุปว่า คือเลขฐาน 2 นั่นแหละครับ

ดังนั้น
666 = rw-rw-rw- => ผู้ใช้ทั้ง 3 กลุ่มมีสิทธิ์ read write ทุกคน
755 = rwxr-xr-x => เจ้าของทำได้ทุกอย่าง คนอื่นๆมีสิทธิ์อ่านและเรียกใช้งานเท่านั้น
777 = rwxrwxrwx => ผู้ใช้ทั้ง 3 กลุ่มมีสิทธิ์ทุกอย่างใน file ซึ่งหมายถึง ลบและแก้ไขได้ด้วย
700 = rwx------ => เฉพาะเจ้าของ file เท่านั้น ที่มีสิทธิ์ทุกอย่าง

รูปแบบการใช้คำสั่ง (*NIX)

# chmod [options] mode file...

เช่น chmod -R 777 /www/phpnuke/modules/coppermine/gallery

หมายเหตุ
ใช้คำสั่ง # man chmod เพื่อดู options ที่สามารถใช้ได้
options เช่น -R คือการรวมถึง subdir ย่อยทั้งหมดด้วย

หรือจะใช้ผ่านทางโปรแกรมพวก ftp ทั้งหลายก็ได้ครับ

ซึ่งจะมีคำสั่ง chmod ให้อยู่แล้ว
เลือก file หรือ dir ที่ต้องการ แล้ว chmod ได้เลย

ถ้าจะเอาคำสั่งแบบยากๆ งงๆอีกนิดนึง
ก็สามารถทำได้นะครับ เช่น

# chmod go-rwx /www/phpnuke/modules/coppermine/gallery

อันนี้จะมีค่าเท่ากับ chmod 700 ครับ งงมั๊ยครับ?Huh??

ความหมายคือ ให้เอาสิทธิ์ rwx ออกจาก g(group=คนในกลุ่มเดียวกัน) และ o(others=คนอื่นๆ)
ดังนั้นก็จะเหลือเป็น rwx------ ซึ่งก็เท่ากับ 700 นั่นเอง
ก็เป็นไปตามสิทธิ์ของ 3 กลุ่มผู้ใช้นั่นแหละครับ
จะมีตัว u (user) ซึ่งหมายถึงเจ้าของไฟล์
และ a (all) หมายถึงทุกคนเลย

เช่น
# chmod ugo+rwx filename => chmod 777 นั่นเอง

หรือจะเป็น
# chmod a+rwx filename ก็ได้

วันเสาร์ที่ 22 พฤศจิกายน พ.ศ. 2551

วิธีการแยกแยะชวนชมสายบางคล้า

บทความนี้คัดลอกมาจาก http://www.pantown.com/board.php?id=30006&area=4&name=board7&topic=11&action=view

ไม้สายบางคล้า จะมีคุณสมบัติดังนี้
1.ให้ลูก ที่ได้ฟอร์ม มกท. ขหซ. มกพ. ชฎพ. ปะปนกันไป แล้วแต่กิ่งแม่พันธุ์นั้นๆ จะให้ลูกไปทางไหน
2. เมล็ดพันธุ์ ใน 1 ฝัก จะให้ลูกออกมา ดอก ต้น ใบ ฟอร์ม ที่แตกต่างกันไป แม้จะผสมเองด้วยมือ (มีการกลายสูง)
3. และการกลายที่มีน้อยนิด คือ ต้นแคระ แฝด ด่าง
..... ที่ผมเล่ามาทั้งหมด คือลักษณะของกิ่งบางคล้า เมื่อท่านเพาะเม็ดสายนี้ เขาจะคัดต้นที่มีฟอร์มต่างออกจากกันออก แล้วเรียกชื่อตามฟอร์มนั้นๆ และท้ายที่สุด ต้นที่ไม่มีฟอร์มจะได้ชื่อบางคล้าไปใช้
....ชื่อแรก มกท. เกรดเอ คัดเอาไปขายสำหรับคนชอบสวม
....ชื่อที่2 เขาหินซ้อน สำหรับคนชอบมวยรอง กิ่งขนานแต่กิ่งยืด
....ชื่อที่ 3 มกพ. สำหรับฟอร์ม กิ่งชี้ 45 องศา
....ชื่อที่ 4 ชฎพ ถ้าใบออกฟ้ากิ่งถี่
....ชื่อที่ 5 บางคล้า เป็นชื่อสุดท้ายที่ไร้ฟอร์ม

สำหรับสวนผม จะขายลูก และเรียกตามกิ่งที่ใช้ทำพันธุ์ และเลือกกิ่งแม่พันธุ์ ที่ให้ลูกมีลักษณะเฉพาะเปอร์เซ็นสูงๆ
.... ส่วนข้อที่ถามว่า ใบ ดอก ของแต่ละชื่อมีลักษณะอย่างไร ผมตอบได้เลยว่า ไม่เหมือนกันซักต้น เพราะว่ากิ่งแม่พันธุ์ที่เรามีอยู่ มันยังไม่ได้ผ่านการปรับปรุงสายพันธุ์ จนสามารถให้ลูกได้มีลักษณะที่เหมือนกันทั้งหมด
ดังนั้นท่านไม่ต้องแปลกใจว่า ชื่อไม้เดียวกัน ทำไม จึงไม่เหมือนกันนะครับ



ภาพที่ 1 เป็นเขาหินซ้อน เป็นลูกของกิ่งดำริ
ต้นที่ 2 เขาหินซ้อน เป็นลูกของกิ่งดำริ
ทั้ง 2 ต้น ใบ กิ่ง ฟอร์ม ดอก แตกต่างกันโดยสิ้นเชิง
ตัวอย่างฟอร์ม
1. มกท

ต้นจริง

2.ต่อไป มกพ. ตำหนิตรงที่ ต้นขาว ผิวสวย กิ่งชี้ 45 องศา มีคอ

รูปจริง

3.เขาหินซ้อน ตำหนิรูปพรรณสัญฐาน เหมือน มกท. ต่างตรง กิ่งยืดกว่า และกิ่งเยอะกว่า แตกกิ่งแขนงไวกว่า และมากว่า มกท.

รูปจริง

4.ชฎาเพชร

รูปจริง

5. สุดท้ายที่ ชื่อบางคล้า ไม้สายนี้ทุกตัวที่ตั้งชื่อไม่ได้ บางคล้าขอรับใช้ครับพี่น้อง บ้างก็บอกว่าผิวเขียว บ้างก้บอกว่าผิวขี้กลาก บ้างก็ว่าใบบาง บ้างก็ว่าใบหนาเขียว สารพัดจะว่า เพราะนั่นคือ ความไม่นิ่งของชวนชม


รูปจริง

ประวัติชวนชมเพชรกรุงเก่า


คัดมาจาก http://www.pantown.com/board.php?id=20239&area=3&name=board13&topic=3&action=view
เพชรกรุงเก่าเป็นลูกของเพชรบ้านนา เจ้าของเดิมคือคุณลุงยุทธ ชื่อจริงจะไปถามแกอีกทีครับ แกเห็นต้นไม่ค่อยโต แต่กิ่งสวยก็เลยเล็มกิ่งมาเสียบปรากฏว่าสวย แล้วยังมีคนเห็นความสวยมาทำต่ออีกหลายท่านอาทิ พี่จามร คนนี้ทำไว้เยอะทั้งต่อทั้งตอน คุณนก ณ บางปะหัน คนนี้ทำให้เพชรกรุงเก่ามาดังในเวปของพี่ทรงกลด ผมก็ได้รับความกรุณาจากคุณนก ติดต่อซื้อเพชรกรุงเก่าต้นแม่ในราคา xx,xxx อิอิ ไม่บอก กะจะเอาให้บึ้มครับ ลองดูต้นแม่ครับ

ประวัติชวนชมบางคล้า


คัดมาจาก http://www.pantown.com/board.php?id=32952&area=3&name=board5&topic=1&action=view
ต้นกำเนิดโดยคุณลุงชัย ปัญญาจาโรได้นำเข้ามาจากประเทศซาอุ.เมื่อประมาณปี2526 หลักจากนั้นหลานชายคือคุณหนุ่ม หนองแหนได้นำกิ่งมาเสียบตอไทย และเริ่มทำการตลาดเมื่อปี2540โดยเปิดราคาไว้ที่1,500บาท และใช้ชื่อดำริสิทธิโชคเมื่อปี2542 ก่อนจะถูกเรียกว่า "บางคล้า"ในเวลาต่อมา และเป็นต้นกำเนิดการพัฒนาชวนชมลักษณะเด่นๆอีกหลายสาย อาทิเช่น มงกุฏเพชร,เขาหินซ้อน,สวยปลายเขต,ชฎาเพชร,เพชรพระนคร,เพชรกาญจนา...และบาง กระแสยังบอกว่าเป็นต้นกำเนิดมงกุฏทองด้วยเช่นกัน
กิ่งแม่เสียบดั้งเดิมของ บางคล้า

ประวัติชวนชมมงกุฎเพชร บางคล้าและชฎาเพชร

คัดลอกมาจาก http://www.pantown.com/board.php?id=15361&area=4&name=board16&topic=64&action=view
มงกุฏเพชรเป็นลูกของไม้ตระกูลบางคล้าที่ถูกตั้งชื่อโดยสวน NSD
โดยมีจุด เริ่มจากสวน NSD ไปซื้อลูกของไม้ตัวนึงที่ อ.บางคล้าแปดริ้วมากจากคุณหนุ่ม หนองแหน มาจำนวน 11 ต้นและมาขยายพันธ์ในนามของบางคล้า แต่ต่อมาต้องการทำตลาดต่างประเทศจึงเปลี่ยนชื่อเป็น มงกุฏเพชร ในที่สุด
ต. หนองแหน..อยู่ใน อ. พนมสารคาม จ.ฉะเชิงเทรา..ต้นกำเนิดของชวนชมสายพันธุ์ดังๆ หลายตัว ที่มีชื่อเสียงอยู่ในเวลานี้ ..ความจริงชวนชมก็เหมือนต้นไม้ประดับชนิดหนึ่ง แต่เพราะเหตุผลเกี่ยวกับผลประโยชน์ จึงเกิดเรื่องราว เกิดตำนาน เพื่อสร้างชื่อเสียง และ ต่อยอดทอดสะพาน..ไปสู่..เงิน..และความสับสนของสายพันธุ์ชวนชมสายนี้อย่างที่ หาข้อยุติได้ลำบาก..

ก็ไม่ใช่เรื่องผิดปรกติอะไร ในสังคมของการดิ้นรนเพื่อความอยู่รอดของตน ใครๆก็ต้องคำนึงถึงผลประโยชน์ก่อน..วันนี้พาไปรู้จักกับ..ต้นตระกูลบาง คล้า..
ข้อมูลต่างๆ ได้มาจากการสอบถามบุคคลในวงการชวนชม จ.ฉะเชิงเทราหลายท่าน..ซึ่งจะขอเลี่ยงการเอ่ยนามตรงๆทั้งหมด แต่ถ้าท่านใดสงสัย สามารถเมล์หรือโทรมาสอบถามทางอาศรมฯได้..
ข้อมูลต่างๆ ได้กลั่นกรองมาบ้างแล้ว มิได้ใช้ความเห็นของคนๆหนึ่งหรือบุคคลกลุ่มหนึ่ง มาเป็นบรรทัดฐานในความเห็น บางข้อมูลก็เป็นที่เปิดเผยในนิตรสารไม้ประดับทั่วไป..
ตามตำนาน ไม้กระถางนี้..ยอดเป็นสายพันธุ์นำเข้าจากต่างประเทศ..(เขาว่าอย่างนั้น) อายุกว่า 20 ปี..ส่วนตอเป็นตอไทยขนาดใหญ่..ได้ดูและศึกษาแล้ว อายุของตอไทยน่าจะถึง 20 ปี แน่นอน แต่ส่วนยอดพันธุ์ .ไม่แน่ใจ..ว่าเสียบมาแล้วถึงยี่สิบปีหรือเปล่า..

หลังจากไม้ต้นนี้ ให้ดอกและติดฝัก..สามารถเพราะลูกไม้ออกมาได้ 90 ต้น (หนึ่งในนั้นคือต้นที่ทางอาศรมฯเป็นนายหน้าขายไปในราคา 20500 บาท และในที่เดียวกันยังเหลือรุ่นแรกนี้อีกหนึ่งต้น แต่ขนาดเล็กกว่ากันมาก.)..ยุดหลังปีสี่สิบกว่าๆ กระแสโซโคฯเพชรบ้านนา เริ่มเป็นที่รู้จัก...หนึ่งแม่และเก้าสิบลูก ไม่เป็นที่นิยมเนื่องจากในวงการส่วนมากจะสนใจแต่เพชรบ้านนา..
หนึ่งแม่ จึงไม่ค่อยได้รับการขยายพันธุ์..(ปัจจุบันที่เจ้าของสายพันธุ์ เท่าที่ทราบและเห็น..ที่หนองแหนเสียบไว้รวมเป็นสามต้น บ้านภรรยาที่บางคล้า เสียบใส่ตอไทยไว้อีกหนึ่งต้น)..ส่วนจะมีที่อื่นอีกไหม ไม่ยืนยันเพราะเอาแค่ที่เห็น..ปัจจุบัน เจ้าของไม่ขาย และ ไม่นำออกจากหนองแหน..(แต่เมื่อเร็วๆนี้ .ได้นำไปแรกกับกิ่งแม่พันธุ์ เอส 1..แถวปทุมธานี ส่วนจะแลกกับใคร แลกไปกิ่งใหญ่เล็ก ผมไม่ทราบ..เห็นแต่กิ่ง เอส 1 ที่แลกมา)

ส่วนลูก 90 ต้น..ได้ขายออก ตอนที่ชวนชมโซโคฯ ยังไม่เป็นที่นิยมสำหรับผู้ปลูกเลี้ยงต้นไม้ทั่วไป..จากคำให้การของเจ้าของ สายพันธุ์ ลูกเก้าสิบต้น..ที่ได้ไปเลี้ยงมากที่สุด ไม่ใช่คนในวงการต้นไม้.เขาซื้อไปเผื่อปลูกประดับบ้าน...เป็นสกุลใหญ่โตที่คน แปดริ้วรู้จักดี....ไม่เอ่ยนามสกุลของเขาตรงๆ..ผู้ที่ได้ไปมาก คือคนในสกุล..เจ้าของวลี ..ยุ่งตายห่า..หรือ ฉายา โค้วตงหมง..ในวงการ..การเมืองไทย.....(แต่ไม่ได้จำนวนที่แน่ชัดมา...)
ผู้ ที่ได้ไปมากอีกหนึ่งท่านคือ..ช่างอ๊อด บางคล้า..มีอู่ซ่อมรถอยู่ติดกับวัดโพธิ์ บางคล้า..วัดที่มีค้างคาวเยอะๆ เป็นแหล่งท่องเที่ยวนั่นแหละ...ตามเสียงเล่าลือ ช่างอ๊อดได้ไปกว่า 20 ต้น..และคำว่า ยักษ์บางคล้า เกิดขึ้นตรงนี้...

ใครก็ตามที่ซื้อชวนชมจากช่างอ๊อด..เขาจะเรียกว่า ยักษ์บางคล้า...
ยุค นั้นไม่ค่อยเน้นเรื่องชื่อสายพันธุ์สักเท่าไหร่..หนึ่งท่านอาจารย์จาก วิทยาลัยเขาหินซ้อนได้จากช่างอ๊อดไปหนึ่งต้น เห็นลักษณะที่แตกต่างไปจากยักษ์บางคล้าทั่วไป ..คือการแตกกิ่งที่เยอะซับซ้อนกว่า.จึงนำไปตั้งชื่อใหม่ เรียกเล่นๆว่า เขาหินซ้อน...ตามชื่อสถานที่...ปัจจุบันต้นแม่เขาหินซ้อนเท่าที่ทราบ..ตายไป แล้ว....และอาจารย์ที่ได้ตั้งชื่อ เขาหินซ้อน ก็ได้ย้ายออกนอกพื้นที่ไปนานแล้ว...แต่ตอนนี้มีอาจารย์เก่าแก่อีกท่านหนึ่ง ของวิทยาลัยนี้..เก็บสายพันธุ์ เขาหินซ้อนนี้ไว้ ..จนถึงปัจจุบัน และค่อนข้างหวง...

อาจจะเกิดคำถามที่ว่า...เขาหินซ้อน..ทำไมมีอยู่ ทั่วไป...คำถามนี้ตอบไม่ยากเลย..แต่ตอบไปแล้ว อาจเกิดปัญหาตามมามากมาย...(สำหรับคำตอบนี้ เฉพาะสมาชิกทางอาศรมฯ สามารถเมล์หรือโทรมาสอบถามได้..)
ข้อมูล..เจ้าของสายพันธุ์ที่หนองแหน..เป็นนักศึกษา รุ่นหนึ่ง ของวิทยาลัย เขาหินซ้อน..และได้เห็นเขาหินซ้อนต้นแม่ในขณะนั้นด้วย...
ยักษ์ บางคล้า ของช่างอ๊อดกระจัดกระจายไปพอสมควร ทางอาศรมฯเอง ก็ไล่หาข้อมูลอยู่ และ ยักษ์บางคล้านี่แหละ คือที่มาของ..มงกุฎทอง..(อาจจะมีตำนานใหม่ แต่เรื่องนี้คนพื้นที่รู้กันดี สงสัยสอบถาม..ช่างอ๊อดที่ข้างวัดโพธิ์ บางคล้า..ได้)..ในยุคต้นของมงกุฎทอง..เจ้าของมงกุฎทองเอง..ก็ได้เข้ามาที่ หนองแหน..และเลือกซื้อ ลูกของสายพันธุ์หนองแหน ที่มีลักษณะเหมือนมงกุฎทองไปจากสวนหนองแหน..
ข้อมูล..อาศรมลีลาวดี อยู่ห่างหนองแหนประมาณ 20 ก.ม...บางคล้า ประมาณ 30 ก.ม และ เขาหินซ้อนประมาณ 10 ก.ม.เท่านั้น..ข้อมูลต่างๆ จึงหาได้ไม่ยากนัก...
ลูก ของยักษ์บางคล้า..อีกหนึ่ง ได้กลายเป็น ต้นแม่ของสายพันธุ์ดัง แห่งแปดริ้ว...ชฎาเพชร...ซึ่งสามารถหาอ่านเอาได้ทั่วไป..ตำนานที่มาของชฎา เพชร ค่อนข้างตรงตามที่เจ้าของเขาบอก ต่างกันเพียง
แต่ ..
แม่ของชฏาเพชร..เจ้าของ ไม่ได้มาโดยตรงจากหนองแหน แต่มาจากนักปลูกชวนชมอีกท่านหนึ่ง มีสวนอยู่แถว อ.แปลงยาว ในราคา สี่หมื่นบาท.. ที่ทราบชัดเจน เพราะ มีสหายท่านหนึ่ง เคยไปขอซื้อ ต้นแม่ชฎาเพชร ในราคาหกหมื่นบาท แต่เจ้าของไม่ขายให้..กลับขายให้ญาติกัน ในราคาสี่หมื่นบาท..

หลังจากที่โซโคฯเริ่มมีคนสนใจมากขึ้น บางคล้าเริ่มได้รับความสนใจ..คนเริ่มหันไปหา ..แหล่งที่มาของบางคล้า..
ซึ่ง ก็คือที่หนองแหนนั่นเอง..แต่ตอนนี้สถานะการณ์ต่างๆเปลี่ยนไป..เจ้าของพันธุ์ ที่หนองแหน จับมือกับสวนใหญ่ในกรุงเทพฯ..(จันทร์-ศุกร์ ..ทำงานที่บางคล้า...วันเสาร์เข้าสวนใหญ่ที่กรุงเทพฯ ..วันอาทิตย์อยู่สวนที่หนองแหน)..ทำธุรกรรมทางการค้าร่วมกัน..เกี่ยวกับสาย พันธุ์หนองแหน จึงเปิดตำนานหน้าใหม่ขึ้นอีก...

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

ลูกของหนองแหน ในบางลักษณะ..(ที่เคยเลือกออกไป เมื่อเหมือนมงกุฎทอง..) ก็ถูกเลือกออกไปอีก(แต่เปลี่ยนสวน).คราวนี้มาในชื่อ เพชรพระนคร..

และลูกของหนองแหน ที่มีลักษณะ แตกกิ่งก้านซับซ้อน..ถูกเลือกออกไปในชื่อ ..เขาหินซ้อน...
นี่ เฉพาะในสายของหนองแหน..ไม่รวม สายยักษ์บางคล้า ที่แพร่ลูกหลานออกไปอีกไม่น้อย ทางอาศรมฯก็ได้มาหนึ่งตัว.เร็วๆนี้..ก็คงเปิดตัวสู่วงการชวนชมทั้งในและต่าง ประเทศ..

ข้อมูลหลายอย่าง..เนื่องจากลดปัญหาการวิวาทะลง..เพราะมันจะ ยิ่งเป็นหนทางเสื่อมให้กับต้นไม้..ทางอาศรมฯจึงพยายามเลี่ยงการใช้ชื่อ..มาก ที่สุด..

แต่ความจริงนั้นเป็นสิ่งไม่ตาย..ความละอายพึงมีในผู้เจริญ..
หลัง จากอ่านทั้งหมดจบแล้ว เฉพาะสมาชิกของทางอาศรมฯ สามารถเมล์หรือโทรมาสอบถามข้อมูลต่างๆเพิ่มเติมได้..ส่วนถ้าตรงไหนขัดใจใคร อย่าโทรหรือเมล์มาด่า..บอกดีๆ เจอกันตรงไหนก็ได้ในที่สาธารณะ จะเลี้ยงก๊วยเตี๋ยวสักหนึ่งชาม..

รูปดอก เป็นดอกหนองแหน ต้นตระกูลของบางคล้า..
ส่วนใบทั้งหมดเป็นหนองแหนล้วนๆ ถ่ายจากต้นจริง..หลายๆมุม..

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