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

คู่มือคอมมานด์ไลน์บน Linux ฉบับมือใหม่

คุณยังมีความคิดที่ว่า คอมมานด์ไลน์เป็นเหมือนร่องรอยอารยธรรมในอดีต เป็นวิธีการใช้คอมพิวเตอร์แบบล้าสมัยอยู่ไหมครับ? คุณจะเปลี่ยนความคิดเมื่อมาลองใช้ลีนุกซ์ เพราะคอมมานด์ไลน์ที่แท้จริงเป็นเครื่องมือที่ยืดหยุ่นและทรงพลังอย่างยิ่ง ยกตัวอย่างเช่น การค้นหาไฟล์ .tmp ทั้งหมดในไดเรกทอรี (และไดเรกทอรีย่อย) แล้วลบทิ้งนั้น ถ้าทำงานผ่านยูเซอร์อินเทอร์เฟซแบบกราฟิกที่ทันสมัยในปัจจุบันอาจต้องกดสั่งอยู่หลายขั้นตอน ขณะที่สามารถจบการทำงานได้ในคำสั่งบรรทัดเดียวถ้าทำผ่านคอมมานด์ไลน์
ดังนั้นบทความนี้ผมจะสอนพื้นฐานของการใช้คอมมานด์ไลน์บนลีนุกซ์ ทั้งการสืบค้นในแต่ละไดเรกทอรี, การจัดการไฟล์และไดเรกทอรี, และการค้นหาข้อมูลต่างๆ เป็นต้น
หมายเหตุ: บทความนี้เคยถูกตีพิมพ์ครั้งแรกเมื่อวันที่ 19 มิถุนายน 2557 ซึ่งครั้งนี้นำกลับมาปัดฝุ่นลงให้ใหม่อีกครั้งนั้น เนื่องจากปัจจุบันพื้นฐานการเรียนรู้เกี่ยวกับลีนุกซ์แบบนี้ยังคงใช้ได้อยู่เสมอ ถือเป็นส่วนหนึ่งของกิจกรรม #ThrowbackThursday ของเรา
  1. ไดเรกทอรี Home ในลีนุกซ์คืออะไร?
ลีนุกซ์เป็นระบบปฏิบัติการแบบมัลติยูเซอร์ นั่นคือผู้ใช้หลายคนสามารถเข้าถึงโอเอสเดียวกันนี้พร้อมกันได้ โดยผู้ใช้แต่ละคนจะถูกจัดสรรไดเรกทอรีสำหรับจัดเก็บไฟล์ส่วนตัว ซึ่งโฟลเดอร์เหล่านั้นเรียกว่าโฟลเดอร์ Home ของผู้ใช้รายนั้นๆ
ไดเรกทอรี Home ของผู้ใช้แต่ละคนจะอยู่ภายใต้ไดเรกทอรีใหญ่ที่ชื่อ Home เช่น ชื่อผู้เขียนคือ Himanshu ไดเรกทอรี Home ของผู้เขียนจึงอยู่ที่ /home/himanshu สังเกตได้ว่า ชื่อไดเรกทอรี Home ของผู้ใช้ จะตรงกับชื่อล็อกอิน ซึ่งถ้าคุณเคยใช้วินโดวส์ ก็สามารถเปรียบเทียบได้กับไดเรกทอรีของผู้ใช้แต่ละรายที่อยู่ใน C:\Documents and Settings หรือ C:\Users เป็นต้น
ผู้ใช้จะมีสิทธิ์ควบคุมเหนือไดเรกทอรี Home ของตัวเองได้อย่างสมบูรณ์ โดยรวมถึงไดเรกทอรีย่อยภายในทั้งหมดด้วย นั่นคือสามารถบริหารจัดการไฟล์และไดเรกทอรีทั้งสร้างใหม่หรือลบ, ติดตั้งโปรแกรม, หรือการกระทำอื่นๆ ภายในโฮมไดเรกทอรีของตัวเองได้อย่างอิสระ
  1. จะดูไดเรกทอรีที่กำลังใช้งานอยู่ได้อย่างไร?
ทุกครั้งที่คุณเปิดเชลล์คอมมานด์ไลน์ในลีนุกซ์ จะเริ่มต้นที่โฮมไดเรกทอรีของคุณก่อนเสมอ ซึ่งถือเป็นไดเรกทอรีที่ใช้ทำงานอยู่ปัจจุบัน คุณสามารถเปลี่ยนไปอยู่บนไดเรกทอรีอื่นๆ ได้ ปกติคุณสามารถใช้คำสั่ง pwd เพื่อตรวจสอบพาธเต็มๆ ของไดเรกทอรีปัจจุบันได้ตลอด
ตัวอย่างเช่น:
การแสดงผลของคำสั่ง pwd ดังที่แสดงในรูปข้างต้น ชี้ว่าปัจจุบันผู้ใช้กำลังอยู่บนไดเรกทอรีที่ชื่อ Pictures ซึ่งอยู่ภายใต้ไดเรกทอรีชื่อ himanshu ซึ่งก็เป็นไดเรกทอรีย่อยในไดเรกทอรีชื่อ home อีกทอดหนึ่ง ในที่นี้ ข้อความ himanshu@ubuntu:~/Pictures$ เป็นพร็อมพ์รับคำสั่ง
  1. วิธีเปลี่ยนไปอยู่อีกไดเรกทอรีหนึ่ง
ให้ใช้คำสั่ง cd ในการเคลื่อนย้ายไปอยู่ไดเรกทอรีต่างๆ ในระบบไฟล์ลีนุกซ์ ซึ่งคำสั่งนี้ต้องตามด้วยข้อมูลป้อนเข้าหรืออากิวเมนต์ ที่ไม่ว่าจะเป็นชื่อไดเรกทอรีหรือพาธเต็มๆ แล้วแต่ว่าไดเรกทอรีที่เราต้องการไปอยู่ตรงไหน
ตัวอย่างเช่น ถ้าปัจจุบันคุณอยู่ที่ไดเรกทอรี /hone/himanshu/pictures แล้วต้องการไปที่ /home/himanshu/pictures/vacations ก็สามารถใส่พารามิเตอร์แค่ชื่อไดเรกทอรีได้ โดยพิมพ์เป็นคำสั่งว่า cd vacations ซึ่งคำสั่งนี้เป็นการสั่งให้เชลล์ค้นหาไดเรกทอรีชื่อ vacations ที่อยู่ภายใน pictures การเข้าไปยังโฟลเดอร์ที่สัมพันธ์กับโฟลเดอร์แม่เดิมนี้ เราเรียกพาธลักษณะนี้ว่า Relative Path
แต่ถ้าเป็นกรณีที่ต้องการย้ายไปอยู่ที่ /home/techspot คุณจำเป็นต้องใช้คำสั่ง cd /home/techspot โดยระบุพาธเต็มแทน ซึ่งจะเริ่มต้นจากเครื่องหมายสแลช (/) พาธเต็มที่ระบุตั้งแต่ไดเรกทอรีใหญ่สุดเรียงออกมานี้เรียกว่า Absolute Path นอกจากนี้ยังมีคำสั่งลัดในการเลื่อนกลับมาอยู่ไดเรกทอรีแม่ก่อนหน้าด้วย คือ cd .. หรือถ้าต้องการกลับไปอยู่ในไดเรกทอรีก่อนหน้าที่เคยจากมา ให้พิมพ์ว่า cd – เป็นต้น
4. จะเรียกดูรายการเนื้อหาภายในไดเรกทอรีได้อย่างไร?
ใช้คำสั่ง ls (แอลเอส มาจากคำว่า list)  เพื่อแสดงรายการเนื้อหาภายในไดเรกทอรี โดยถ้าพิมพ์คำสั่งนี้โดยไม่ใส่อากิวเมนต์อื่นกำกับ จะเป็นการแสดงเนื้อหาภายในไดเรกทอรีปัจจุบัน
ตัวอย่างดังรูป:
สำหรับการเรียกดูเนื้อหาในไดเรกทอรีอื่นนั้น คุณสามารถป้อนอากิวเมนต์เป็นทั้งชื่อไดเรกทอรี (กรณีเป็นไดเรกทอรีย่อยของไดเรกทอรีปัจจุบัน) หรือพาธเต็ม (กรณีที่ไม่ใช่ไดเรกทอรีย่อยบนไดเรกทอรีปัจจุบัน) ต่อท้ายคำสั่ง ls ได้
ถ้าลองสังเกตเอาต์พุตดูดีๆ จะเห็นว่าเอาต์พุตของคำสั่ง ls จะแยกเป็นสีต่างๆ ซึ่งแต่ละสีหมายถึงประเภทของไฟล์แต่ละชนิด ทำให้ง่ายต่อการจำแนก ซึ่งความหมายของแต่ละสีที่ควรทราบได้แก่ สีน้ำเงิน (ไดเรกทอรี), สีขาว (ไฟล์ข้อความ), สีแดง (ไฟล์ที่บีบอัดข้อมูล), สีฟ้าอ่อน (ลิงค์), สีเขียว (ไฟล์ที่สั่งรันในตัวเองหรือ Executable), และสีชมพู (ไฟล์ภาพ) เป็นต้น
  1. ทำอย่างไรถึงจะดูข้อมูลภายในไฟล์ได้?
ใช้คำสั่ง cat เพื่อแสดงเนื้อหาภายในไฟล์ที่ต้องการ โดยคำสั่งนี้ต้องการอากิวเมนต์เป็นชื่อไฟล์ ดังตัวอย่างการใช้งานในภาพด้านล่าง ที่คำสั่ง cat ใช้แสดงเนื้อหาภายในไฟล์ชื่อ arg.c แต่อย่างไรก็ดี ถ้าไฟล์มีขนาดมหึมาเกินไป การแสดงผลภายในเชลล์อาจจะเยอะเกินกว่าที่จะใช้งานได้นะครับ
ปัญหาดังกล่าวจะหมดไป (บ้าง) เมื่อต่อท้ายคำสั่งด้วยคำสั่ง less ด้วยวิธีส่งต่อข้อมูลไปยังคำสั่งถัดไปผ่านไปป์ไลน์ นั่นคือ คำสั่งที่ต้องพิมพ์จะอยู่ในรูป cat (ชื่อไฟล์) | less โดยสัญลักษณ์ | แสดงถึงไปป์หรือท่อที่ส่งผ่านเอาต์พุตไปยังคำสั่งด้านขวาถัดไป ในกรณีนี้คือคำสั่ง less ซึ่งจะทำให้คุณสามารถกดปุ่มลูกศรเลื่อนขึ้นลงเพื่อดูเนื้อหาเฉพาะหน้าที่ต้องการ โดยสามารถกดออกมาหน้าพร็อมพ์ปกติได้โดยกดปุ่ม q
  1. สร้างไฟล์ใหม่ได้อย่างไร?
ใช้คำสั่ง touch เพื่อสร้างไฟล์ใหม่ โดยอากิวเมนต์ของคำสั่งนี้คือชื่อของไฟล์ที่ต้องการ ตัวอย่างเช่น การสร้างไฟล์ชื่อ test.log บนไดเรกทอรีที่ทำงานอยู่ปัจจุบัน จะใช้คำสั่งว่า touch test.log
แต่ถ้าต้องการสร้างไฟล์ใหม่ในตำแหน่งอื่นนอกจากบนไดเรกทอรีที่ทำงานอยู่ปัจจุบัน ก็เพียงแค่ใส่พาธเต็มๆ ให้ชื่อไฟล์ เช่น touch /home/himanshu/practice/test.log
ทริคพิเศษ: สำหรับการเขียนข้อความใดๆ ลงในไฟล์ที่เพิ่งสร้างใหม่ ให้ใช้โปรแกรมแก้ไขเนื้อหาไฟล์บนคอมมานด์ไลน์อย่าง Vi หรือ Vim เป็นต้น
  1. แล้วการเปลี่ยนชื่อ/คัดลอก/ลบไฟล์ ทำอย่างไร?
ใช้คำสั่ง mv สำหรับการเปลี่ยนชื่อไฟล์ เช่น การที่จะเปลี่ยนชื่อไฟล์จาก log.txt เป็น new_log.txt ให้ใช้คำสั่งว่า mv log.txt new_log.txt ซึ่งถ้าไฟล์ดังกล่าวไม่ได้อยู่บนไดเรกทอรีที่ทำงานอยู่ปัจจุบัน ก็เพียงใส่พาธเต็มของไฟล์นั้น เช่นเดียวกับกรณีทั่วไป
นอกจากนี้ คุณยังสามารถใช้คำสั่ง mv เพื่อย้ายไฟล์จากตำแหน่งหนึ่งไปอยู่อีกตำแหน่งได้ ซึ่งลักษณะการทำงานคล้ายกับการกด Cut > Paste ในโอเอสแบบกราฟิกทั่วไป ตัวอย่างเช่น การย้ายไฟล์ log.txt (ที่อยู่ในไดเรกทอรีที่ใช้งานอยู่ปัจจุบัน) ไปยังไดเรกทอรี /home/himanshu ให้พิมพ์คำสั่งว่า mv log.txt /home/himanshu
ส่วนการคัดลอกไฟล์จากไดเรกทอรีหนึ่งไปสู่อีกไดเรกทอรีหนึ่งนั้น ใช้คำสั่ง cp ซึ่งการป้อนอากิวเมนต์เหมือนกับในคำสั่ง mv กรณีย้ายไฟล์ โดยต้องระบุต้นทางและปลายทาง เช่น cp log.txt /home/himanshu จะเป็นการคัดลอกไฟล์ log.txt (โดยไฟล์ที่ถูกคัดลอกมีชื่อไฟล์เหมือนต้นฉบับ) ไปยังไดเรกทอรี /home/himanshu เป็นต้น
สำหรับการลบไฟล์ทิ้ง ให้ใช้คำสั่ง rm โดยคำสั่งนี้ต้องการอากิวเมนต์เป็นชื่อไฟล์ที่ต้องการลบทิ้ง เช่น คำสั่ง rm log.txt จะลบไฟล์ข้อความ log.txt ที่อยู่บนไดเรกทอรีที่ใช้งานอยู่ปัจจุบันทิ้งไป ขณะที่ถ้าพิมพ์ rm /home/himanshu/practice/log.txt จะเป็นการลบไฟล์ดังกล่าวที่อยู่ภายในไดเรกทอรี practice ทิ้งแทน
ในการลบไดเรกทอรี ให้พิมพ์ออพชั่น -r ในคำสั่ง rm เพิ่ม ตัวอย่างเช่น rm –r /home/himanshu/practice/ จะเป็นลบไดเรกทอรี practice พร้อมกับไดเรกทอรีย่อยและไฟล์ภายในทั้งหมดทิ้ง
  1. วิธีค้นหาไฟล์
การค้นหาไฟล์ภายในไดเรกทอรีที่ต้องการ เราจะใช้คำสั่ง find ซึ่งคำสั่งนี้ต้องการพาธของไดเรกทอรีเป้าหมาย และชื่อไฟล์เป็นอากิวเมนต์ ตัวอย่างเช่น การค้นหาไฟล์ที่ชื่อ inheritance.cpp ภายในไดเรกทอรี /home/himanshu นั้น เราจะใช้คำสั่งในลักษณะตามรูปด้านล่าง
ผมใช้คำสั่ง sudo ขึ้นต้นก่อนคำสั่งอื่น เพื่อให้สิทธิ์การสั่งคำสั่งถัดไปนี้เป็นระดับเจ้าของระบบ (Super User) เนื่องจากถ้าไดเรกทอรีเป้าหมายเป็นของผู้ใช้คนอื่น หรือผู้ใช้ปัจจุบันไม่มีสิทธิ์เข้าถึง จะไม่สามารถรันคำสั่งนี้ได้ เป็นต้น (แต่สำหรับคุณแล้วอาจไม่จำเป็นต้องใช้ sudo นี้ก็ได้ หรือถ้าจะใช้ คุณก็ต้องรู้รหัสผ่านของเจ้าของระบบ)
ถ้าไม่ได้ระบุพาธเป็นอากิวเมนต์เพิ่มนอกจากชื่อไฟล์ คำสั่ง find จะทำการค้นหาไฟล์ชื่อดังกล่าวในไดเรกทอรีปัจจุบันแทน
นอกจากนี้ คุณยังสามารถใช้ไวลด์การ์ด (เช่น เครื่องหมาย * ที่แทนข้อมูลใดๆ ทั้งหมดในส่วนนั้น) กับคำสั่ง findเพื่อค้นหาไฟล์ที่ตรงกับกฎที่ระบุไว้ทั้งหมด เช่น ถ้าคุณต้องการค้นหาไฟล์ที่สกุล .c ที่อยู่ในไดเรกทอรี /home/himanshu/practice ทั้งหมด ให้ใช้คำสั่ง find ตามรูปด้านล่าง ซึ่งเครื่องหมาย “*” นี้ เป็นไวลด์การ์โ (Wildcard) ที่ใช้แทนค่าข้อมูลที่เป็นตัวเลขหรือตัวอักษรใดๆ ตัวอย่างเช่น tech* อาจแทนคำว่า tech, techspot, techreport เป็นต้น
  1. เราจะค้นหาข้อความภายในไฟล์ต่างๆ ได้อย่างไร?
การค้นหาข้อความภายในไฟล์ต่างๆ นั้น ใช้คำสั่ง grep ซึ่งคำสั่งนี้ต้องการอากิวเมนต์เป็นข้อความที่ต้องการค้นหาหรือ Keyword กับชื่อไฟล์เป้าหมาย โดยเอาต์พุตที่ได้จะเป็นข้อความแต่ละบรรทัดที่มีคีย์เวิร์ดอยู่ภายใน ตัวอย่างเช่น การค้นหาทุกบรรทัดภายในไฟล์ /home/himanshu/practice/wazi/gdb/test.c ที่มีคีย์เวิร์ด ptr เราจะใช้คำสั่ง grep ดังรูปต่อไปนี้
นอกจากนี้ เราสามารถใส่ออพชั่น –n  กรณีที่ต้องการให้คำสั่ง grep แสดงเลขที่บรรทัดในเอาต์พุตด้วย ดังนี้

เทคนิค: สำหรับการค้นหาคีย์เวิร์ดที่ต้องการ ในไฟล์หลายไฟล์ที่อยู่บนไดเรกทอรีปัจจุบันนั้น สามารถใช้ไวลด์การ์ด * แทนชื่อไฟล์ได้
แต่จำไว้ว่า คำสั่ง grep นี้ ไม่ได้ค้นหาไฟล์ภายในไดเรกทอรีย่อยโดยดีฟอลต์ด้วยเหมือนในคำสั่ง find แต่อย่างไรก็ดี คุณสามารถเปิดให้ค้นไฟล์เป้าหมายในไดเรกทอรีย่อยได้ด้วยการใส่ออพชั่น –R ในคำสั่ง grep
  1. ฟีเจอร์ Auto-complete ในคอมมานด์ไลน์เป็นอย่างไร?
ขณะที่ทำงานบนคอมมานด์ไลน์ของลีนุกซ์นั้น การพิมพ์พาธ, ชื่อไฟล์, หรืออากิวเมนต์ยาวๆ ก็ดูน่ารำคาญพอสมควร แต่คุณสามารถใช้ปุ่ม tab ในการเติมข้อความให้สมบูรณ์โดยอัตโนมัติ (ฟีเจอร์ Auto-complate) สำหรับชื่อไฟล์หรือพาธยาวๆ ได้อย่างง่ายได้ เช่น การพิมพ์พาธ /home คุณอาจพิมพ์แค่ /ho แล้วกด tab ซึ่งเชลล์ของคอมมานด์ไลน์จะเติมข้อความที่เหลือให้คุณโดยอัตโนมัติ
จากกรณีข้างต้น เชลล์สามารถเดาชื่อเต็มๆ เป็น home ได้ง่ายเพราะไม่มีไดเรกทอรีชื่ออื่นที่ขึ้นต้นเหมือนกันในไดเรกทอรีรูท /  แต่กรณีที่เชลล์เจอชื่อที่ขึ้นต้นเหมือนกันขณะกำลัง Auto-complete เชลล์จะแสดงผลรายการข้อความที่เป็นไปได้ทั้งหมดให้คุณดู แล้วเปิดโอกาสให้คุณพิมพ์ตัวอักษรเพิ่มเติมให้เชลล์ทราบว่าคุณต้องการพิมพ์ข้อความไหน
ตัวอย่างดังรูป:
เชลล์ได้แสดงชื่อไดเรกทอรีทั้งหมดที่สามารถทำ Auto-complete ให้ได้ ดังนั้น ถ้าคุณต้องการพิมพ์คำว่า techspot ก็เพียงแค่พิมพ์ตัว c อีกตัวเพิ่มก่อนกด tab เพื่อให้เชลล์รู้ว่าคุณต้องการข้อความไหน เป็นต้น
  1. รูท (Root) คืออะไร?
รูท (Root)  คือผู้ใช้ที่มีอำนาจควบคุมระบบลีนุกซ์บนเครื่องทั้งหมด ซึ่งมีความสามารถหลายอย่างที่ผู้ใช้ทั่วไปทำไม่ได้ เช่น เปลี่ยนผู้ใช้เจ้าของไฟล์แต่ละไฟล์ หรือเพิ่มหรือลบไฟล์จากไดเรกทอรีของระบบ เป็นต้น ดังนั้น บัญชีผู้ใช้ที่เป็นรูทจะใช้กับผู้ที่ทำหน้าที่ดูแลระบบ หรือซิสเต็มแอดมินเท่านั้น
โดยไดเรกทอรีที่อยู่สูงสุดของระบบลีนุกซ์ จะแทนด้วยแค่เครื่องหมายสแลช (/) เรียกไดเรกทอรีนี้ว่า รูทไดเรกทอรี ซึ่งเป็นไดเรกทอรีเดียวกันกับที่มีไดเรกทอรี home ที่บรรจุไดเรกทอรีจำเพาะของแต่ละผู้ใช้อยู่ภายใน อย่างไรก็ดี อย่าสับสนกับไดเรกทอรี home ของผู้ใช้ที่เป็น root ซึ่งก็คือไดเรกทอรีชื่อ root ที่อยู่บนรูทไดเรกทอรีหรือ / อีกทีนั่นเอง
  1. แล้วหน้า “man” คืออะไร?
ถ้าคุณต้องการศึกษารายละเอียดเพิ่มเติมของคำสั่งต่างๆ บนลีนุกซ์ คุณสามารถเปิดดูคู่มือการใช้คำสั่งต่างๆ นั้นได้ในหน้า man (ย่อมาจาก Manual) ซึ่งมีมาให้ตั้งแต่ติดตั้งระบบ สำหรับการเปิดหน้า man นี้ เพียงพิมพ์คำสั่ง man ตามด้วยชื่อคำสั่งที่ต้องการศึกษา ตัวอย่างเช่น พิมพ์คำสั่งว่า man rm จะเป็นการเปิดหน้าคู่มือที่เกี่ยวกับการใช้คำสั่ง rm ทั้งอากิวเมนต์และออพชั่นที่ใช้ เป็นต้น นั่นคือ คุณสามารถศึกษาการใช้งานลีนุกซ์เพิ่มเติมได้ด้วยตนเองผ่าน Manual ลักษณะนี้
ทั้งหมดที่ผมกล่าวในบทความนี้ เป็นเพียงแค่บันไดก้าวแรกเท่านั้น คอมมานด์ไลน์บนลีนุกส์ยังสามารถใช้ทำงานได้หลากหลายมากมาย การฝึกฝนและเชี่ยวชาญในแต่ละคำสั่งที่กล่าวไว้ข้างต้นจะเป็นพื้นฐานให้ต่อยอดการใช้งานแบบมืออาชีพต่อไปในอนาคต
ที่มา: http://www.enterpriseitpro.net/?p=3502

วันจันทร์ที่ 7 พฤศจิกายน พ.ศ. 2559

Hacker

Hacker คืออะไร
     Hacker คือ ผู้ที่มีความรู้ความเข้าใจในระบบคอมพิวเตอร์อย่างสูงมาก ไม่ว่าจะเป็นเรื่องเครือข่าย , ระบบปฏิบัติการ  จนสามารถเข้าใจว่าระบบมีช่องโหว่ตรงไหน หรือสามารถไปค้นหาช่องโหว่ได้จากตรงไหนบ้าง เมื่อก่อนภาพลักษณ์ของ Hacker จะเป็นพวกชั่วร้าย ชอบขโมยข้อมูล หรือ ทำลายให้เสียหาย  แต่เดี๋ยวนี้ คำว่า Hacker หมายถึง Security Professional ที่คอยใช้ความสามารถช่วยตรวจตราระบบ และแจ้งเจ้าของระบบว่ามีช่องโหว่ตรงไหนบ้าง อาจพูดง่ายๆว่าเป็น Hacker ที่มีจริยธรรมนั่นเอง ในต่างประเทศมีวิชาที่สอนถึงการเป็น Ethical Hacker หรือ แฮกเกอร์แบบมีจริยธรรม ซึ่งแฮกเกอร์แบบนี้เรียกอีกอย่างว่า White Hat Hacker ก็ได้ ส่วนพวกที่นิสัยไม่ดีเราจะเรียกว่าพวกนี้ว่า Cracker หรือ Black Hat Hacker ซึ่งก็คือ มีความสามารถเหมือน Hacker ทุกประการ เพียงแต่พฤติกรรมของ Cracker นั้นจะเป็นการกระทำที่ขาดจริยธรรรม เช่น ขโมยข้อมูลหรือเข้าไปทำลายระบบคอมพิวเตอร์ให้ทำงานไม่ได้ เป็นต้น
วิธีการที่ Hacker และ Cracker ใช้เข้าไปก่อกวนในระบบ  Internet มีหลายวิธี แต่วิธีที่นิยมมากมี 3 วิธี ดังนี้
1.Password Sniffers เป็นโปรแกรมเล็กๆที่ซ่อนอยู่ในเครือข่าย และถูกสั่งให้บันทึกการ Log on และรหัสผ่าน (Password) แล้วนำไปเก็บในแฟ้มข้อมูลลับ
2. Spooling เป็นเทคนิคการเข้าสู่คอมพิวเตอร์ที่อยู่ระยะทางไกล โดยการปลอมแปลงที่อยู่อินเนอร์เน็ต (Internet Address) ของเครื่องที่เข้าได้ง่ายหรือเครื่องที่เป็นมิตร เพื่อค้นหาจุดที่ใช้ในระบบรักษาความปลอดภัยภายใน วิธีการคือ การได้มาถึงสถานภาพที่เป็นแก่นหรือราก (Root) ซึ่งเป็นการเข้าสู่ระบบขั้นสูงสำหรับผู้บริหารระบบ เมื่อได้รากแล้วจะสร้าง Sniffers หรือโปรแกรมอื่นที่เป็น Back Door ซึ่งเป็นทางกลับลับๆใส่ไว้ในเครื่อง
3. The Hole in the Web เป็นข้อบกพร่องใน World -Wide-Web (WWW ) ซึ่งเป็นส่วนหนึ่งที่อยู่ในอินเทอร์เน็ต เนื่องจากโปรแกรมที่ใช้ในการปฏิบัติการของ Website จะมีหลุมหรือช่องว่างที่ผู้บุกรุกสามารถทำทุกอย่างที่เจ้าของ Site สามารถทำได้

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


ประเภท

ไวต์แฮต

ไวต์แฮต สามารถผ่าเข้าระบบรักษาความปลอดภัย โดยไม่มีเจตนาร้าย ตัวอย่างเช่นทดสอบระบบรักษาความปลอดภัยของตนเอง

เกรย์แฮต

เกรย์แฮต อยู่ระหว่างแบล็กแฮตกับไวต์แฮต เกรย์แฮตจะท่องโลกอินเทอร์เน็ตและเจาะเข้าไปในระบบคอมพิวเตอร์ เพื่อเตือนผู้ดูแลว่าระบบของพวกเขาถูกแฮ็ก จากนั้นพวกเขาเสนอที่จะซ่อมแซมระบบให้ โดยมีค่าจ้างเล็กน้อย[5]

บลูแฮต

บลูแฮต คือบุคคลนอกบริษัทที่ปรึกษาด้านความปลอดภัยของคอมพิวเตอร์ที่สามารถทดสอบหาบั๊กก่อนที่ระบบจะถูกใช้จริง

แบล็กแฮต

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

แฮคเกอร์

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

สคริปต์คิดดี้ส์

สคริปต์คิดดี้ส์ (Script - Kiddies) คือแฮคเกอร์ (Hacker) หรือ แฮคกิง (Hacking) ประเภทหนึ่งมีจำนวนมากประมาณ 95 % ของแฮคกิง (Hacking) ทั้งหมด ซึ่งยังไม่ค่อยมีความชำนาญ ไม่สามารถเขียนโปรแกรมในการเจาะระบบได้เอง อาศัย Download จากอินเทอร์เน็ต



ตัวอย่างแฮกเกอร์ชื่อดัง

ประวัติและผลงานของแฮกเกอร์ชื่อดังของโลก
Johan Helsingius
มีนามแฝงว่า Julf เขาเป็นผู้จัดการของ Anonymous Remailer ที่มีชื่อเสียงที่สุดในโลกเรียกว่า Penet.fi แต่ในที่สุดเขาก็ปิดกิจการลงในเดือนกันยายน ปี 1996 เนื่องจากตำรวจอ้างว่า Church of Scientology ได้รับความเสิยหายอันเกิดจากการมีคนนำความลับของพวกเขาไปเผยแพร่โดย ปกปิดตัวเองด้วยบริการของ Helsingius Remailer ที่เขาทำ ซึ่งดำเนินงานโดยคอมพิวเตอร์ 486 และ Harddisk 200Mb เพียงเท่านั้นเอง

John Draper
มีนามแฝงว่า Cap"n Crunch เขาเป็นผู้ริเริ่มในการใช้หลอดพลาสติกที่อยู่ในกล่องซีเรียลมาทำให้โทรศัพท์ ได้โดยไม่ต้องเสียเงิน ด้วยเหตุนี้เขาจึงได้รับการขนานนามว่า "เจ้าพ่อการแคร็กโทรศัพท์" หรือที่เรียกกกันว่า "phreaking" ตอนที่ยังเป็นวัยรุ่นเขาพยายามทำให้โทรศัพท์คืนเหรียญมาทุกครั้งที่หยอดลงไป เครื่องมือที่เขาชอบใช้คือ whistle (เครื่องเป่า) จากกล่อง Cap"n Crunch cereal โดย whistle ดังกล่าวจะให้กำเนิดคลื่นเสียงขนาด 2600 hertz ซึ่งเพียงพอจะสามารถโทรศัพท์ได้โดยจะต้องใช้ร่วมกับ bluebox (กล่องสีน้ำเงินจะช่วยให้สามารถโทรศัพท์ฟรีได้)

Kevin Mitnick
มีนามแฝงว่า "Condor" อาจจะเรียกได้ว่าเป็น cracker ที่มีคนรู้จักมากที่สุดในโลก Mitnik เริ่มต้นด้วยการเป็น phone phreak ตั้งแต่ปีแรกๆ Mitnik สามารถ crack เว็บไซต์ทุกประเภทที่คุณสามารถนึกได้ รวมถึงเว็บไซต์ทางการทหาร บริษัททางการเงิน บริษัทซอฟแวร์ และบริษัททางด้านเทคโนโลยีอื่น ๆ (เมื่อเขาอายุ 10 ขวบ เขาสามารถ Crack เว็บไซต์ของ North American Aerospace Defense Command) เขาถูกจับเพราะเขาดันเจาะ เข้าไปในคอมพิวเตอร์ของผู้เชี่ยวชาญด้านรักษาความปลอกภัย ชาวญี่ปุ่นชื่อ Tsutomu Shimomura ทำให้เอฟบีไอตามล่าตัวเขา และถูกสั่งห้ามใช้ หรือเข้าใกล้คอมพิวเตอร์ ในปัจจุบันเขาออกจากคุกแล้ว เขียนหนังสือความปลอดภัย ด้าน hacker อยู่
Vladimir Levin
จบการศึกษามาจาก St. Petersbrurg Tekhnologichesky University นักคณิตศาสตร์คนนี้มีประวัติไม่ค่อยดี จากการที่เข้าไปรวมกลุ่มกับ Cracker ชาวรัสเซียเพื่อทำการปล้น Citibank"s computers ได้เงินมา $10ล้าน ในที่สุดก็ถูกจับโดย Interpol ที่ Heathrow Airport ในปี 1995
Mark Abene
หรือที่รู้จักกันดีในนามของ Phiber Optik เขามีพรสวรรค์ในการเรียนรู้เกี่ยวกับระบบโทรศัพท์ค่อนข้างมาก มากเสียจนต้องเข้าไปอยู่ในคุกถึง 1 ปี เนื่องจากพยายามจะส่งข้อความให้เพื่อน Cracker ด้วยกัน แต่ข้อความนั้นโดนจับได้เสียก่อน เด็กคนนี้เป็นที่ชื่นชอบของเหล่าวัยรุ่นมากเนื่องจากฉลาดและบุคลิกดี นิตยสาร New York และแมนฮัตตันคลับถึงกับจัดเขาให้เป็น 1 ใน 100 ของบุคคลที่ฉลาดที่สุดในเมือง เขาเป็นคนที่ชอบรับประทานมันฝรั่งบด (mashed potatoes) จากร้าน KFC เป็นที่สุด
Kevin Poulsen
มีความเป็นมาที่คล้ายกับ Mitnik มาก Poulsen ถูกรู้จักกันดีในฐานะที่เขามีความสามารถควบคุมระบบโทรศัพท์ของ Pacific Bell ได้ (ครั้งหนึ่งเขาใช้ความสามารถพิเศษ นี้ชนะการแข่งขันทางวิทยุซึ่งมีรางวัลเป็นรถเปอร์เช่ เขาสามารถควบคุมสายโทรศัพท์ได้ ดังนั้นเขาจึงชนะการแข่งขันครั้งนั้นได้ เขาได้บุกรุกเข้าสู่เว็บไซต์แทบทุกประเภท แต่เขามีความสนใจในข้อมูลที่มีการป้องกันเป็นพิเศษ ต่อมาเขาถูกกักขังเป็นระยะเวลา 5 ปี Poulsen ถูกปล่อยในปี 1996 และกลับตัวในการใช้ชีวิตอย่างเห็นได้ชัด
Robert T.Morris
มีชื่อแฝงว่า rtm เขาเป็นลูกชายของหัวหน้านักวิทยาศาสตร์ใน National Computer Security Center ซึ่งเป็นส่วนหนึ่งของ National Security Agency(NSA) เขาจบการศึกษาจาก Cornell University และโด่งดังมาจากที่หนอนอินเทอร์เน็ทแพร่ระบาดในปี 1998 ทำให้คอมพิวเตอร์นับพันต้องติดเขื้อและทำงานล้มเหลว เครื่องมือที่เขาใช้ตอนยังเป็นวัยรุ่น คือ แอคเคาท์ซูเปอร์ยูเซอร์ของเบลล์แลป
Justin Tanner Peterson
รู้จักกันในนาม Agent Steal, Peterson อาจเป็นผู้ที่มีชื่อเสียงอย่างมาก ในเรื่องการ crack บัตรเครดิต ดูเหมือน Peterson จะถูกชักจูงด้วยเงินแทนที่จะเป็นความอยากรู้อยากเห็น เพราะการขาดคุณธรรมประจำใจของเขาเองที่นำหายนะมาสู่เขาและผู้อื่น อย่างเช่น ครั้งหนึ่ง เมื่อเขาโดนจับ เขากลับทิ้งเพื่อนของเขา รวมทั้ง Kevin Poulsen เพื่อเจรจาต่อรองกับ FBI เพื่อที่จะเปิดโปง ทำให้เขาได้รับการปล่อยตัว ต่อมาภายหลังได้หนีไป และก่ออาชญากรรมเช่นเดิม
ที่มาจาก เว็บโซนไอที

กฎหมายอาญา ที่เกี่ยวข้องได้แก่ "ประมวลกฎหมายอาญาว่าด้วยความผิดฐานทำให้
เสียทรัพย์" การที่ Hacker หรือ Cracker เข้าไปทำอะไรก็แล้วแต่กับเครื่องคอมพิวเตอร์ของท่านหรือกับเวบไซต์ของท่าน ด้วยวิธีข้างต้นหรือวิธีอื่นใด จนทำให้เครื่องคอมพิวเตอร์ของท่านหรือเวบไซต์ของท่านไม่สามารถให้บริการ ลูกค้าได้ ทำให้ต้องได้รับความเสียหาย หรือทำให้ข้อมูลขัดข้อง เสียหาย เสื่อมค่าหรือถูกทำลาย จากสภาพที่เป็นอยู่เดิม อันนี้ก็อาจเป็นความผิดฐานทำให้เสียทรัพย์ได

กฎหมายแพ่งและพานิชย์ ที่เกี่ยวข้องได้แก่ "ประมวลกฎหมายแพ่งและพานิชย์
เรื่องละเมิด" (มาตรา 420) นี่เป็นมาตรายอดนิยมเลยทีเดียวเมื่อตอนที่ผมยังเรียนอยู่ ใครที่เรียนกฎหมายแล้วยังท่องมาตรานี้ไม่ได้คงยากที่จะสอบผ่านวิชาละเมิด เพราะมาตรานี้ถือเป็นหัวใจสำคัญ

ถ้าการกระทำของ Hacker หรือ Cracker ถือได้ว่าเป็นการจงใจทำให้ข้อมูลคอมพิวเตอร์หรือเวบไซต์ของท่านเสียหาย ก็จะได้รับคุ้มครองตามกฎหมายนี้

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

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

ถ้ากฎหมายที่ว่าออกมาเมื่อไหร่และถ้ามีโอกาส ผมจะนำประเด็นที่น่าสนใจและเป็นสาระสำคัญของกฎหมายดังกล่าวมาให้อ่านกันนะ ครับ

วันศุกร์ที่ 4 พฤศจิกายน พ.ศ. 2559

ทางเลือกใหม่ที่จะเข้าสู่อินเตอร์เน็ตด้วย Linux

ทางเลือกใหม่ที่จะเข้าสู่อินเตอร์เน็ตด้วย Linux


โดย ธีรภัทร มนตรีศาสตร์

         ในปัจจุบัน Linux เป็นระบบปฏิบัติการที่กำลังได้รับความสนใจเพิ่มขึ้นอย่างมาก เนื่องจากมีการแจกจ่าย
ให้แก่ผู้ใช้โดยไม่เสียค่าใช้จ่าย นอกจากนี้ยังมีซอฟต์แวร์ประเภทต่าง ๆ สนับสนุนเป็นจำนวนมาก จึงมีการนำลีนุกซ์
มาใช้ประโยชน์ในด้านต่าง ๆ อย่างกว้างขวาง ทั้งในงานด้านเดสทอป และระบบเครือข่าย
         การเชื่อมต่อเข้าสู่อินเตอร์เน็ตเป็นการนำลีนุกซ์มาใช้ประโยชน์ได้ทั้งในฐานะเครื่องเดสทอป คือ ใช้งาน
อินเตอร์เน็ตทั่วไป หรือในฐานะของเซิร์ฟเวอร์ เช่น คอนเน็คเข้าสู่อินเตอร์เน็ตเพื่อรับส่งอีเมล์ หรือเป็นอินเตอร์เน็ต
เกตเวย์ ซึ่งสามารถทำได้หลายวิธี 
         เนื่องจากมีโปรแกรมที่ช่วยจัดการเกี่ยวกับการเชื่อมต่อเข้าสู่อินเตอร์เน็ตนี้เป็นจำนวนมาก เช่น การใช้โปรแกรม 
Linuxconf , โปรแกรม kppp ที่มาพร้อมกับ KDE หรือ RH3 ทีมาพร้อมกับ GNOME ซึ่งโปรแกรมทั้งหลายเหล่านี้
ล้วนแล้วแต่ช่วยอำนวยความสะดวกให้แก่ผู้ใช้ โดยมีลักษณะเป็นเมนู หรือไดอะล๊อกช่วยให้สามารถคอนฟิกได้ง่าย และ
รวดเร็ว 
         แต่ในที่นี่จะเสนออีกวิธีหนึ่ง โดยใช้โปรแกรมในระดับ Console คือ โปรแกรม wvdial ( ออกเสียงว่า "วีฟไดอัล" )
การเชื่อมต่อเข้าสู่ ISP ด้วย wvdial
          ในกรณีที่ต้องการเชื่อมต่อเข้าสู่ Internet Service Provider โดยการใช้โมเด็ม จะต้องทำการสั่งงาน
       โมเด็มผ่าน Daemon ชื่อ pppd ซึ่งจะควบคุมการสื่อสารกับฝ่ายตรงกันข้าม ด้วยโปรโตคอล PPP
          การสั่งงาน pppd สามารถกระทำได้หลายวิธี เช่น การใช้โปรแกรม kppp ซึ่งเป็นซอฟต์แวร์ที่รันบน KDE 
     จึงต้องอาศัยการทำงานบนระบบ X Window ทำให้ไม่เหมาะสมกับการสั่งให้เชื่อมต่อเข้าสู่อินเตอร์เน็ตจาก 
     Console ,จาก Script หรือแบบตั้งเวลาไว้ล่วงหน้า
โปรแกรม wvdial - Dial-up Networking for Linux
           โปรแกรม wvdial เป็นโปรแกรมที่ทำหน้าที่ควบคุมการติดต่อกับ ISP ผ่าน pppd โดยสั่งงานผ่าน
       Text Console และการเขียน Script ได้ มีส่วนประกอบ 2 ส่วน คือ
         1. ส่วนตัวโปรแกรม wvdial เอง ซึ่งจะอยู่ที่ /usr/bin/wvdial และ /usr/bin/wvdialconf
         2. Configuration File ของ wvdial คือ  /etc/wvdial.conf   

เราสามารถตรวจสอบการติดตั้งโปรแกรม wvdial นี้ได้ด้วยคำสั่ง rpm ดังนี้

rpm -qi wvdial
      ก่อนที่จะใช้งาน wvdial จะต้องเตรียมการต่าง ๆ เสียก่อน ดังนี้
         1. ติดตั้งโมเด็มเข้ากับเครื่องคอมพิวเตอร์ และเปิดโมเด็มไว้ด้วย
         2. ล๊อกอินเข้าระบบในฐานะ root แล้วเรียกโปรแกรม wvdialconf 
             เพื่อสร้าง Configuration File ขึ้นดังนี้

wvdialconf /etc/wvdial.conf
          โปรแกรม wvdialconf จะทำการตรวจค้นหาโมเด็มที่ต่ออยู่ที่พอร์ตอนุกรม แล้ววิเคราะห์หาค่า 
       Initialize String ที่เหมาะสมโดยอัตโนมัติ จากนั้นจะสร้างแฟ้ม /etc/wvdial.conf ขึ้นเอง

Scanning your serial ports for a modem
port scan <*1> :  S0
tty S1 <*1>  :  ATQ0  V1   E1  -  -   OK
tty S1 <*1>  :  ATQ0  V1   E1   Z -  -   OK  
tty S1 <*1>  :  ATQ0  V1   E1   S0=0  -  -   OK
tty S1 <*1>  :  ATQ0  V1   E1  S0=0&C1  -  -   OK
tty S1 <*1>  :  ATQ0  V1   E1  S0=0&D2  -  -   OK
tty S1 <*1>  :  ATQ0  V1   E1  S0=0&C1  S11  = 55  - -   OK
tty S1 <*1>  :  ATQ0  V1   E1  S0=0&C1 S11  = 55  +FCLASS  -  -   OK
ttyS1<*1>    :  Modem  Identifier  :  ATI - - 336
ttyS1<*1>    :  speed   2400  :  AT  -  -  OK 
ttyS1<*1>    :  speed   4800  :  AT  -  -  OK
ttyS1<*1>    :  speed   9600  :  AT  -  -  OK
ttyS1<*1>    :  speed   19200  :  AT  -  -  OK
ttyS1<*1>    :  speed   38400  :  AT  -  -  OK
ttyS1<*1>    :  speed   57600  :  AT  -  -  OK
ttyS1<*1>    :  speed   115200  :  AT  -  -  OK
ttyS1<*1>    :  Max speed is 115200 ;  that should be safe.
ttyS1<*1>    :  AT Q0  V1  E1  S0=Q &C1  &D2  S11 = SS   +  FCLASS =0 - - OK
Port Scan <*1>  :  S3
Found a modem  on  /dev/ttyS1
/etc/wvdial  conf  :  Can't  read config file  /etc/wvdial.conf  :  No such file or 
directory
ttyS1 < Info >  :  speed 115200;  init  "ATQ0 V1 E1 S0=0  &C1  &D2  S11=55  + FCLASS=0"

      3. ใช้ Text Editor เช่น pico เปิดแฟ้ม /etc/wvdial.conf ขึ้น จะเห็นข้อความภายในดังนี้

pico /etc/wvdial.conf


ข้อความที่ wvdialconf สร้างขึ้นในแฟ้ม wvdial.conf
[Dialer Defaults]
Modem = /dev/ttyS1
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0
; Phone = 
; Username = 
; Password = 

     4.  แก้ไขข้อความส่วนที่เกี่ยวกับ Username ,Password และ Phone 
          ให้ตรงกับ Internet Account ที่ต้องการใช้งาน

[Dialer Defaults]
Modem = /dev/ttyS1
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0
Phone = 5516000
Username = myloginname
Password = secretword

     5. เมื่อต้องการใช้งานให้เรียกคำสั่ง wvdial จาก Console ได้โดยตรง

wvdial

     wvdial จะเริ่มสั่งให้โมเด็มโทรออกไปยังเลขหมายที่กำหนดไว้ในแฟ้ม wvdial.conf 
     และทำการเชื่อมต่อเข้ากับทางผู้ให้บริการอินเตอร์เน็ต ดังรูป

- - > WwDial  :  Internet dialer version 1.41
- - > Initializing  modem
- - > sending  :  ATZ
ATZ
OK
- - > sending  :  ATQ0   V1  E1  S0=0  &C1  &D2  S11=55  +FCLASS=0
ATQ0  V1  E1  S0=Q  &C1  &D2   S11=55  +FCLASS=0
OK
- - >  Modem  initialized.
- - >  sending:ATDT   5516000
- - >  Waiting  for  carrier.
ATDT  5516000
CONNECT  115200/V42BIS
- - > Carrier  detected.  Waiting  for  prompt .
Welcome  to  INTERNET  KSC 
Username:
- - >  Looks  like  a  login   prompt .
- - >  sending  :  nutnok
nutnok1
password: 
- - > Looks  like  a  password  prompt . 
- - > Sending  :  ( Password )
- - > Don't  know what to do !  Starting  pppd  and  hoping for the best . 
- - > Starting  pppd at Mon Mar 26  17:34:56  2001

     6. เมื่อเชื่อมต่อได้สำเร็จแล้ว ให้เปิด Virtual Terminal ขึ้นใหม่ โดยกด Alt-F2 จะเป็นการเปิด tty2 
         แล้วล๊อกอินเป็น root
     7. ทดลองใช้คำสั่ง route -n เพื่อตรวจสอบการทำงานของ pppd หาก pppd ทำงานจะเห็น route 
         ของ device ที่ชื่อ ppp0 ปรากฏขึ้นดังรูป

Kernel IP routing table
Destination      Gateway          Genmask          Flags    Metric       Ref    Use    Iface
192.168.0.1      0.0.0.0          255.255.255.255  UH       0         0        0      eth0
203.155.35.227   0.0.0.0          255.255.255.255  UH        0     0        0      ppp0
192.168.0.0      0.0.0.0          255.255.255.0    U           0         0        0      eth0
127.0.0.0        0.0.0.0          255.0.0.0        U           0         0        0        lo
0.0.0.0          203.155.35.227   0.0.0.0          UG         0         0        0      ppp0

     8. เนื่องจากการท่องไปในเครือข่ายอินเตอร์เน็ตจำเป็นต้องอาศัยการ resolve ชื่อโดเมนเนมจากโดเมนเนมเซิร์ฟเวอร์
         ( DNS Server ) จึงต้องกำหนดค่าไอพีแอดเดรสของโดเมนเนมเซิร์ฟเวอร์ของผู้ให้บริการอินเตอร์เน็ตให้แก่ลีนุกซ์
         ด้วย โดยใส่ใว้ในแฟ้ม /etc/resolv.conf  ดังนี้

pico /etc/resolv.conf
nameserver 203.155.33.1
nameserver 202.44.144.33

         จากตัวอย่างเป็นหมายเลขไอพีแอดเดรสของ DNS Server ของ KSC

     9. หลังจากบันทึกแฟ้ม /etc/resolv.conf แล้ว ให้ทดสอบโดยการ ping ไปยังเว็ปไซต์อะไรก็ได้ เช่น 
         www.yahoo.com เป็นต้น

ping www.yahoo.com -i15

PING www.yahoo.akadns.net (204.71.200.74) from 203.155.129.178 : 56(84) bytes of data.
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=0 ttl=242 time=929.3 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=1 ttl=242 time=839.9 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=2 ttl=242 time=930.0 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=3 ttl=242 time=869.9 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=4 ttl=242 time=920.0 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=5 ttl=242 time=869.9 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=6 ttl=242 time=920.0 ms
64 bytes from www9.yahoo.com (204.71.200.74): icmp_seq=7 ttl=242 time=919.9 ms

--- www.yahoo.akadns.net ping statistics ---
9 packets transmitted, 9 packets received, 0% packet loss
round-trip min/avg/max = 839.9/902.0/930.0 ms


         เนื่องจากคำสั่ง ping จะกระทำอย่างต่อเนื่อง ดังนั้นจึงเป็นการช่วยให้เกิดการติดต่อไปยังผู้ให้บริการ
         อินเตอร์เน็ตอย่างต่อเนื่อง เปรียบเสมือนการใช้โปรแกรมประเภท Stay Connect ซึ่งช่วยให้ปัญหาที่
         คอนเน็คชั่นจะถูกตัดลดน้อยลงได้

     10. ในขณะนี้การเชื่อมต่ออินเตอร์เน็ตได้เสร็จสมบูรณ์แล้ว พร้อมที่จะใช้งานได้ หากต้องการใช้งานใน 
        X Window ก็สามารถเข้าสู่ X Window ด้วยคำสั่ง startx และใช้งาน Netscape Communicator 
        ได้ทันที

     

การปรับแต่งให้มีตัวเลือกในการเชื่อมต่อผู้ให้บริการอินเตอร์เน็ต
        หากมี Internet Account จำนวนมากกว่า 1 แห่ง และต้องการเลือกใช้งานได้ สามารถแบ่งคอนฟิกของ 
        wvdial.conf ออกเป็น section ย่อย ๆ ได้ดังนี้

[Dialer Defaults]
Modem = /dev/ttyS1
Baud = 115200
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0
[ KSC ]
Phone = 5516000
Username = myloginname
Password = secretword
[ LOXINFO ]
Phone = 7329999
Username = anothername
Password = secretkey

        จากตัวอย่าง แสดงให้เห็นว่ามี 2 Internet Account ชื่อ KSC และ Loxinfo ซึ่งสามารถเลือกใช้งานได้จาก
        การระบุชื่อของ section ต่อท้ายคำสั่ง wvdial เช่น หากต้องการเชื่อมต่ออินเตอร์เน็ตด้วย KSC ให้เรียกคำสั่ง

wvdial ksc

 เมื่อต้องการเชื่อมต่อด้วย Loxinfo ให้เรียกคำสั่ง

wvdial loxinfo
การยกเลิกการทำงานของ wvdial
        การยกเลิกการเชื่อมต่อกับผู้ให้บริการอินเตอร์เน็ต หรือออกจากโปรแกรม wvdial สามารถทำได้โดย
        กด Ctrl-C เพื่อออกจากโปรแกรม หรือ จะใช้วิธี Kill Process ที่ wvdial กำลังทำงานอยู่ก็ได้ 

killall wvdial

       หลังจากที่ได้ทดลองใช้งาน wvdial แล้ว จะเห็นได้ว่ามีความสะดวกในการคอนฟิกพอสมควร รวมทั้งยังมี
       ความแม่นยำในการคอนเน็คดีกว่า kppp ของ KDE และข้อสำคัญคือมีความยืดหยุ่นในการประยุกต์ใช้งานมากกว่า 
       เนื่องจากสามารถเรียกใช้งานได้จาก script ที่เราเขียนขึ้นได้นั่นเอง
 
ที่มา : http://www.itdestination.com/articles/wvdial/

วันจันทร์ที่ 31 ตุลาคม พ.ศ. 2559

มารู้จักกับ Linux Desktop Environment



มารู้จักกับ Linux Desktop Environment


สวัสดีครับทุกท่าน จากบทความที่ผมเคยเขียนไว้ในครั้งก่อน อาจจะเคยพูดถึง DE อยู่บ่อย วันนี้มาดูกันครับว่าเจ้า DE มันคืออะไร DE ก็คือ Desktop Environment คือส่วน Graphic User Interface ที่ผู้ใช้สามารถใช้งาน OS ผ่าน Graphic Mode เช่นเดียวกับ Windows หรือ Mac แต่สำหรับ Linux แล้วมี Desktop Environment ให้คุณเลือกใช้มากมาย และที่เป็นที่นิยมนั้น มี 4 แบบด้วยกัน คือ GNOME,KDE,Xfce และ LXDE โดยทั้ง 4 อย่างนี้ใช้งานโดยการที่คุณลากเมาส์ไปในตำแหน่งที่ต้องการแล้ว Click เท่านั้นครับ เมื่อเราสอบถามคนที่เคยใช้ Desktop Environment ทั้ง 4 แบบ ทุกคนก็ให้ความเห็นไปต่างๆ นาๆ ว่าชอบ Xfce,KDE,GNOME หรือ LXDE อย่างไร เช่นคนที่ใช้ Computer รุ่นเก่าก็มักจะชอบ Xfce หรือ LXDE คนใช้ Computer รุ่นใหม่ๆ ก็จะชอบ GNOME หรือ KDE ซึ่งเราจะสรุปรายละเอียดเกี่ยวกับ Desktop Environment แต่ละแบบให้คุณดังนี้

GNOME 

(GNU Network Object Model Environment) ซึ่งขณะนี้ได้พัฒนาจาก Version 2.x มาเป็น Version 3 แล้ว โดยคุณมักจะพบ GNOME ติดตั้งบน Linux ตระกูลใหญ่ๆ เช่น Debian,Ubuntu, Fedora และ CentOS
screenshot-gnome2
  • GNOME 2 มี Taskbar อยู่ 2 แถบ คือบนและล่าง ซึ่งส่วนบนเป็นส่วนของ Menu bar ส่วนแถบบาร์ด้านล้างเป็น แถบเสริม
    ในการทำงาน GNOME 2.x ใช้ RAM น้อยกว่า GNOME 3 แต่ใช้ CPU สูงกว่า GNOME 3 แต่อย่างไรก็ตามก็ยังใช้ RAM และ CPU น้อยกว่า Unity และ KDE
ความต้องการของระบบสำหรับ GNOME 2.x
RAM : 384 MB
CPU : 800 MHz
  • GNOME 3
GNOME 3 คือ ตัวล่าสุดซึ่งพัฒนาต่อมาจาก GNOME 2.x
gnome3
ความต้องการของระบบสำหรับ GNOME 3
RAM : 768 MB
CPU : 400 MHz

KDE

KDE (K Desktop Environment) เป็น Desktop Environment ที่มีหน้าตาเหมือน Microsoft Windows เป็นอย่างมาก ซึ่งเหมาะกับผู้ที่เคยใช้ Windows เป็นอย่างดี โดยมี Start Menu อยู่ทางล่างซ้ายของหน้าจอ ซึ่งปัจจุบันคือ Plasma 5
kde
KDE เป็น Default Desktop Environment ของ Linux ตระกูล OpenSUSE, PCLinuxOS และ Mandriva
ความต้องการของระบบสำหรับ KDE
RAM : 615 MB
CPU : 1 GHz

Xfce

korora-xfce-apps
เป็น Desktop Environment ที่ใช้ Resource น้อยกว่า GNOME หรือ KDE ซึ่ง Xfce เป็นตัวเลือกที่ดีที่สุดที่จะเลือกใช้สำหรับ Computer รุ่นเก่า Xfc เป็น Default Desktop Environment ของ Xubuntu และ PCLinuxOS
ความต้องการของระบบสำหรับ Xfc
RAM : 192 MB
CPU : 300 MHz

LXDE

PCLinuxOS-LXDE_1
LXDE (Lightweight X11 Desktop Environment) เป็น Desktop Environment อีกตัวหนึ่งที่น่าสนใจ เพราะกิน Resource น้อยมาก
เป็นทางเลือกที่ดีเยี่ยมสำหรับ Computer รุ่นเก่า
LXDE หน้าตาคล้ายกับ Windows รุ่นเก่า (เช่น Windows 98 or 2000) ซึ่งเป็น Default Desktop Environment ของ Lubuntu
ความต้องการของระบบสำหรับ LXDE:
RAM : 128 MB
CPU : 266 MHz
และตัวสุดท้ายคือ…

Unity

Canonical-to-Drop-GNOME-Control-Center-and-Fork-Its-Own-Unity-Control-Center-408170-2

Unity ได้รับการออกแบบโดย Canonical ใช้สำหรับ Netbook และปัจจุบันเป็น Desktop Environment เริ่มต้นของ Ubuntu ตั้งแต่ 11.04
ความต้องการของระบบสำหรับ Unity:
RAM : 1 GB
CPU : 1 GHz
เป็นยังไงกันบ้างครับ สำหรับ DE หวังว่าทุกท่านคงจะกระจ่างนะครับว่า DE คืออะไร มีอะไรบ้าง หน้าตาเป็นยังไง อันน่าใช้ ชอบอันไหน อยากใช้อันไหนก็เลือกได้ตามสบายเลยนะครับ ขอบคุณ บทความดีๆ จากเว็บ debianthailand ด้วยนะครับ (ขออภัยหากผมนำบทความนี้มาแล้ว ดูไม่เหมาะสม หรือละเมิดลิขสิทธิ์อะไร ก็แจ้งผมได้เลยนะครับ) สำหรับบทความนี้ขอจบไว้เพียงเท่านี้นะครับ แล้วพบกันใหม่ครับ สวัสดีครับ

9 AUTOCAD Best Practices : เพื่อการทำงานที่มีประสิทธิภาพสุดๆ

วันนี้มีเทคนิคการทำงานมาฝาก หลายๆคนคงต้องใช้ Autocad เป็นเหมือนอุปกรณ์ประจำตัว และอาจจะคิดว่าทำได้ดีอยู่แล้ว แต่รู้ไหมคะว่าอาจจะมีบางอ่าง เฮ้ยย!!... บางอย่างที่ทำให้เร็วและเป๊ะได้ยิ่งกว่าเดิมอีก แค่ปรับ basic ง่ายๆที่คุณรู้อยู่แล้ว
AUTOCAD Best Practice

อะไรคือ Best Practice? ทำไมต้องมี ?

ก่อนอื่นต้องขอพูดถึง คำว่าBest Practice ก่อนค่ะ เพราะเป็นคำที่ใช้บ่อยมากถึงมากที่สุดในการทำงานที่นี่ และการจัดการระบบ Work flow เพื่อให้ทำงานเร็ว ไว สะดวก และมีคุณภาพ โดยที่นำกลับมาแก้ไขได้ง่าย และนำไปสื่อสารต่อได้ง่าย ไม่ใช่เพียงแค่ทำให้เสร็จครั้งต่อครั้ง แต่มีสร้างระบบการทำงานที่มีประสิทธิภาพระยะยาวค่ะ

ไม่มีก็ทำงานได้เร็วได้ไม่ใช่เหรอ?1

บางทีการที่เราทำงานเร็ว อาจจะไม่ได้แปลว่า ทำงานดีก็ได้ หรือ ถ้าดีแล้ว มันอาจจะมีอะไรที่ดีกว่านี้ ที่ทำให้เรากลับมาแก้ง่าย ไม่ต้องไปเจอปัญหาบางอย่างที่คาดไม่ถึง และส่งต่อไฟล์งานเราให้คนอื่นใช้ต่อง่าย โดยภาพรวมการใส่ใจตรงนี้จะทำให้ Productivity ในการทำงานสูงขึ้นกว่า ใส่เกียร์เดินหน้า ดับเครื่องชน แล้วตอนหลังมาแก้ที วินาศสันตะโร คนมาใช้ต่ออาจจะอยากด่าเราถึงบรรพบุรุษได้ การใช้ Best Practice อาจจะงงๆ ตอนแรกๆเพราะเราต้องลองทำอะไรที่เราไม่ชินมือในวันแรก แต่พอทำสักครั้งสองครั้งพอชิน มันจะเป็นระบบที่เปลี่ยนให้การทำงานทั้งหมดง่ายขึ้น เร็วขึ้น และตกหล่นน้อยมาก 

Faster! Better! Stronger!!

ส่วนตัว จอมเป็นคนที่ Obsess กับการทำงานเร็ว และมีประสิทธิภาพมากมาก คือ ขยับให้น้อยที่สุดแต่ได้งานมากที่สุด สมัยแรกทำเร็วนะ แต่มานั่งแก้ทีหลัง แล้วคนอื่นเอาไปใช้ต่อไม่ได้ มันก็ไม่ใช่ นั่นยังไม่มีประสิทธิภาพ สุดท้าย ปรับวิธีทำงานจนทำให้ทำงานไว ได้ดั่งใจ ไม่ต้องเปลืองแรงเปลืองเวลา และสุดท้าย คือได้กลับบ้านนอน โดยไม่เสียเวลากับเรื่องไม่เป็นเรื่องค่ะ การต้องอดนอนกับเรื่องไม่เป็นเรื่อง ไม่ถือว่าเป็นความขยัน เราต้องเสียเหงื่ออย่างมีคุณค่าค่ะ 

"ฉันไม่ใช่ทาสของ Autocad"

ถ้าเราไม่ใช้งานtool อย่างที่มันสร้างมาให้ใช้ อย่างเต็มประสิทธิภาพของมัน เราจะเสียเวลาไปเปล่าๆ กลายเป็นมันใช้เรา ไม่ใช่เราใช้มัน ในเวลาเท่ากันแทนที่จะได้ของคุณภาพดีดีออกมา กลายเป็นอะไรก็ไม่รู้ Tool มันสร้างมาอำนวยความสะดวกเรา เราต้องใช้มันให้เป็น Autocad ทำได้เยอะมหาศาลค่ะ
จอม..เป็นคนต้องทำงานให้เร็ว ไว และถูกต้องค่ะ ถ้าช้าจอมจะหงุดหงิดมาก ถ้าต้องทำอะไรจับจด จอมจะหาทางที่ทำให้เร็วขึ้น จอมไม่เชื่อว่าจะต้อง Go a hard (and stupid) way ในการแก้ปัญหา Autocad มันเป็นโปรแกรมที่เขียน Script มาดีมาก เราแค่ยังรู้มันไม่พอ
วันนี้ จอมเลยมี 9 ข้อง่ายๆ ที่ควรทำใน Autocad ที่ลองเอาไปปรับใช้กัน ถ้าใครไม่เชื่อไม่ว่ากันค่ะ แต่ว่าบางทีปัญหามันอาจจะเกิดขึ้นมาจากสิ่งเหล่านี้ที่เรามองข้ามไป 
9-best-practice-Autocad1

1. Know the linetypes



9-best-practice-Autocad2

ใช้ Polyline ดีกว่า Line

Line เป็นฟอแมตข้อมูลที่ง่ายกว่า Polyline (Shortcut PL) ถ้าพูดในเชิงโปรแกรมมิ่ง และใช้ง่ายกว่าสำหรับUser แต่ line มีข้อจำกัดเยอะ เด็กจบใหม่หรือนักเรียนหลายคน มักชอบใช้ Line ไม่ว่าจะด้วยเพราะมันพิมพ์ง่าย เพราะแค่ L และแต่ละเส้นไม่ต่อกันทำให้ย้ายไปมาง่าย (คือ จอมก็เคยเป็นมาก่อนตอนรับงานนอกครั้งแรก โดนดุมา จำจนวันนี้เลย..เพราะไม่มีปัญหาตอนเรียน แต่มีปัญหาตอนทำงาน)แต่จริงๆควรจะใช้ Polyline ก่อน เพราะจะช่วยลดเวลาในการแก้ปัญหาที่จะตามมาในอนาคต และ Polyline มีคุณสมบัติมากกว่า Line ทำให้มีความflexible เอาไปใช้ต่อได้ง่ายกว่า
อันนี้อาจจะเป็นอะไรที่หลายคนไม่เห็นด้วย แต่ว่าถ้าเราต้องทำงานที่ซับซ้อนมากพอ และในเวลาที่จำกัด ใช้ Polyline ทำงานเร็วกว่าในระยะยาว ต่างคนต่างใจ เลือกให้เหมาะกับสถานการณ์
ตอนนี้ จอมแทบไม่เจอเหตุผลอะไรที่ต้องใช้ line เลย (บริษัทจอมด้วย) Polyline เป็นเส้นที่แทบไม่มีปัญหา และเอาไปใช้ต่อได้เยอะมากสุด (most versatile)
สิ่งที่ Polyline เหนือกว่า Line เห็นๆ
เรื่อง 2D
  • สร้าง Curve ต่อได้เลย
  • Move ง่าย
  • Offset ไม่ต้องมาทริม
  • Rotate จะมานั่งเลือ1กหลายอันทำไม
  • Stretch
  • Hatch ง่าย เพราะถ้าเป็น closed polyline ใช้ by object แทนที่จะ pick point (ใครเจอคอมเรา crash ตอน pick pointพื้นที่ที่ดูโง่ๆง่ายๆ น่าจะเข้าใจ)
  • Extra editing function
เรื่อง 3D
  • Closed Polyline เอาไปขึ้น Surface , Extrude 3D ได้


9-best-practice-Autocad-spline

ใช้ Spline ให้ถูกที่ถูกเวลา อย่าพร่ำเพรื่อ

Spline นี่มันช่วยเราเขียนเส้นโค้งได้สวยSexyดีทีเดียว เพราะมันเหมือน NURBS มันเหมาะตอน Sketch idea แต่ไม่ใช่เขียนแบบ Construction
เวลาทำงานจริงมันไม่เป๊ะและสุดท้ายต้องมานั่ง convert เป็น Polyline พอconvert เท่านั้นแหละ Vertices เป็นล้าน!!! ไฟล์ใหญ่บาน สุดท้ายต้องมาวาด PLใหม่ หรือ Weed มันอีก.. (step เริ่มเยอะ) .. นี่ก็เป็นอีกเหตุผลที่ไฟล์ไม่ clean
Hatch ก็ไม่สะดวกค่ะ
ต้องรู้ว่าจะใช้ตอนไหนค่ะ ใช้ให้ถูกที่ก็จะมีประโยชน์มากค่ะ แต่ถ้าใช้พร่ำเพรื่อก็จะเป็นการสร้าง"งาน"ให้ตัวเองมาแก้เอง


2. Purge!!! + Keep it clean : but not over simplified

บางทีปัญหาหนึ่งที่ Autocad โหลดไฟล์ช้า หรือ Crashบ่อย คือ ขยะเยอะ เส้นซ้ำกันซ้อนทับกันก็มี ต้องคอยลบอะไรที่ไม่ใช่ทิ้ง เช่น ใช้คำสั่งสามอันนี้ ที่ใช้ได้บ่อยค่ะ
  • Purge อันนี้ใช้ก่อนเลย ใช้บ่อยมาก จะเอา layer ที่ไม่ใช้ทิ้งไปด้วยค่ะ9-best-practice-Autocad-purge
  • overkill ช่วยลบเส้นที่เหมือนกันที่ซ้อนแล้วเราไม่รู้ (มีแน่ แค่เราไม่รู้ ลืมไปแล้ว ไรงิ)9-best-practice-Autocad-overkill
  • mapclean (AutoCAD Civil3D) อันนี้ให้เราเลือกเยอะมากค่ะ รวมทั้งมี weed polyline ในนี้ด้วย เจอปัญหาถ้าอันแรกไม่แก้ ตามมาด้วยกันนี้เลย
9-best-practice-Autocad-mapcleanเราควรทำให้มันสะอาด แต่ไม่ใช่ว่า simplify มันจนไม่มี layer อันนี้ไม่ใช่แล้ว!!




3. Organize : จัดการระบบไฟล์ให้มีระเบียบ ใช้เลเยอร์ให้คุ้ม

จัดระเบียบ!!การทำไฟล์ให้สะอาด มันเป็นคนละเรื่องกับการมีเลเยอร์เยอะ มีเลเยอร์เยอะที่แยกตามชนิดของข้อมูลเป็นสิ่งที่ดีมากค่ะ Don’t be afraid of using layers นี่คือตัวอย่างค่ะ อาจจะดูเยอะ แต่เราแค่ต้อง label ให้เรารู้ว่าอะไรเป็นอะไร ที่สำคัญคือมีแล้ว ใส่ให้ถูกเลเยอร์ ไม่งั้นจะหากันลำบาก
โศกนาฏกรรม layer9-best-practice-Autocad-layer0คือ สิ่งหนึ่งเลยที่ทำงานที่ไทยแล้วปวดหัวมาก คือ เส้นใน Autocad มันปนมั่วในเลเยอร์ จอมเคยเจอดราฟแมนที่ไทย ส่งไฟล์มาให้ เขียนทุกอย่างใน layer 0 แล้วเปลี่ยนสีเอา หรือบางอันมีเลเยอร์ แต่ว่าประตูไปอยู่ในเลเยอร์ผนังไรงิ... คือ…อันนี้ห่วยที่สุดของที่สุด เพราะคนอื่นเอาไปใช้ต่อไม่ได้แก้ไม่ได้ แก้ทีต้องแก้แบบโง่ๆคือนั่งลบทีละเส้นๆ จะบ้าเหรอ ไม่มีเวลาทำไรไร้สาระแบบนั้น Program เค้าไม่ได้สร้างมาแค่นี้..โอย ขึ้นๆๆ
Layer Management ต้องใส่ให้ถูกเลเยอร์9-best-practice-Autocad-layerคือ มีแล้วก็ต้องใช้ และใส่มันไปตามที่ที่มันควรจะอยู่

Layiso9-best-practice-Autocad-layisoคือ ถ้าแบ่งตาม เลเยอร์อ่ะ เราก็ layiso มันออกได้แล้วไง สบายจะตาย ยิ่งพอเราไม่ทำงานนี้นานนานนะคะ ถ้าไม่มีการแบ่งเลเยอร์ที่ดี ซวยค่ะ งานเข้าแน่นอน โชคดีนะคะ บางทีเราต้องการ plot ไม่เหมือนกัน บางset เราต้องplot เส้นนี้เป็นน้ำหนักปกติ และ อีก set เราอยากทำอีกแบบให้มันจางลง เห็นแค่ลางๆ ถ้าเอาไปไว้ layer เดียวกัน แล้วจะเลือกกันยังไง? แค่คิด...ก็ต้องเสียเวลาไปแก้ปัญหาที่ไม่จำเป็นแล้ว เสียเวลามว๊ากกกกก
Layer set Manager
ถ้าเราจัด layer ดีดีแต่แรก เวลาจะเลือกobject เราเลือกและเปลี่ยนมันตาม layer สบายกว่ากันเยอะมาก เข้าใจตรงกันนะ9-best-practice-Autocad-layer2ยิ่งตอนนี้ Autocad มี Layer set manager โอ้โห ไฟล์เดียว set combination ของเส้นกี่แบบก็ได้ แบบแรก เปิดแค่ layer 1 3 9 และ อีกแบบ เปิด 2 4 5 6 นี้มันสุดยอดไปเลยยยยย


4. POWER OF ATTRIBUTE : เข้าใจคุณสมบัติของอย่างถ่องแท้

เช่น NEVER EVER…change the color of object(Goes by Layer)

Change by layer..unless you know what you are doing so well

คือ อย่างที่เคยบอกข้อที่แล้วว่าโดนวางยา...ทุกอย่างอยู่ layer 0 แทบกรี๊ด
แต่ที่ร้ายกว่านั้นคือ ถ้าเปลี่ยนสีมันเป็นสีเฉพาะของมัน ถ้าเรา xref ไปที่อื่น มันก็จะเป็นสีนั้นไปเรื่อยๆไม่มีทางเปลี่ยนสีตาม layer9-best-practice-Autocad-layercolorถ้าเรารู้ว่าเราอยากได้แบบนั้น โอเคค่ะ เรารู้ว่าเราทำอะไรอยู่ แต่ถ้าเราไม่ได้คิดอะไร ปัญหาที่จะตามมาคือ... ตอนที่เราอยากเปลี่ยนสีมัน... แล้วแทนที่จะเลือกมันง่ายๆ ไปกดตรงเลเยอร์... เราสร้างงานให้ตัวเอง...!!!!!! ต้องมานั่ง select similar แล้วสมองเราก็ต้องมาประมวลผลกับอะไรเล็กๆน้อยๆที่ไม่จำเป็น
คืนนี้ยังอีกยาวไกล เอาแรงไปใช้กับอะไรที่มันคุ้มค่าดีกว่ามานั่งจับจด เชื่อยังว่าจอมอยากใช้ทุกวินาทีให้คุ้มที่สุด



5. Keep world’s coordinate & Learn UCS | รักษาจุดพิกัดจริง

งานทุกงานที่ วิศวกร และ ภูมิสถาปนิกทำ ส่วนมากจะ coordinate ค่ะ ถ้าเราเอามันออกมาจาก GIS หรือ Surveyor เค้าให้มันมาแบบมีพิกัดในไฟล์ เราก็ควรจะรักษาไว้ อันนี้เป็นปัญหาใหญ่ในการทำงานร่วมกันกับหลายสาขา และการก่อสร้างในโครงการขนาดใหญ่ หรือโครงการที่มีการสำรวจรังวัดค่ะ คือ การละเลยจุดนี้ เป็นการทำให้จุดเชื่อมต่อระหว่างการออกแบบของ วิศวกร สถาปนิก และ ภูมิสถาปนิก หายไป ไม่มีอะไรจริงอีกต่อไป.. เพราะจะมา overlay ยังไงให้มันพอดีเป๊ะ
ปัญหาที่พบบ่อยคือ สถาปนิกย้ายมันไปนอกจุดเพื่อ study แล้วส่งกลับมาให้Consultantอื่นไม่ตรงที่เดิม ปัญหาคือ คนอื่นต้องลากมาใส่ให้ลง site แล้วพอใส่ไม่ลง...มาบอกว่า มันเลื่อนนี่ มันShift(หาย) แล้วมัน Off
คือ…มันต้องมีจุดอ้างอิงให้เอามาใส่ได้ค่ะ แล้วถ้าใช้ True coordinate ตอน xref หรือเอามา paste มันต้องลงที่เดิมของมันอยุ่แล้ว ทุกคนมีหน้าที่รับผิดชอบในการวางตำแหน่งของตัวเอง ถ้าสถาปนิกส่งตึกมา เออ แลนสเคป แกไปเลื่อนๆให้มันพอดีนะ... ถ้าเป็นโครงการรีสอร์ทที่มีบังกะโลแยกๆ ให้แลนวาง เพราะเป็น prototype เออ นั่นได้นะคะ แต่คิดดูตึกใหญ่ๆกลางเมือง มาให้เลื่อน และมันจะถูกไหม ทำไมถึงโยนภาระหน้าที่ที่จริงๆเราต้องกำหนดให้ถูกต้องเองไปให้ชาวบ้าน ที่อเมริกา..ทุกอย่าง true coordinate ค่ะ ไม่งั้น Shift แล้ว nightmare ของทั้งโครงการ
บางคนบอกว่าที่ต้องย้ายต้องRotate เพราะมันทำงานยาก จอมแนะนำให้ใช้ UCS ในการปรับองศาเวลาทำงานแล้วมันปรับกลับมาเป็น World ได้ค่ะ นี่ไม่ใช่ข้ออ้างค่ะ
หรือเพราะ Sketchup อ่านตาม Coordinate หรือห่างจาก 0,0,0ไม่ดี อันนี้ก็ควรจะแยกไฟล์ไปทำ Sketchup ต่างหากค่ะ ย้ายไปเลย จอมเข้าใจ แต่อย่าให้มาลำบากชาวบ้านใน AutuoCAD เวลาต้อง Coordinate นะจ้ะ ;)

6. Use xref

การแบ่งไฟล์ xref หลายคนบอกยุ่งยากวุ่นวาย อาจจะเพราะเราทำงานคนเดียว แต่ถ้าเราทำงานกับคนอื่นและต้องshare file กับ consultant อื่นหรือ มี base file ที่เป็นที่ยึดถาวรให้เรา xref1 เข้ามา เราจะ update ง่ายมาก แถมลดขนาดของไฟล์ Autocad ให้ไม่ใหญ่ด้วย
ไม่รก :
การมี xref ทำให้เราเปิดปิดสิ่งไม่จำเป็นได้ง่ายด้วย เช่น…พวกไฟล์ระบบ อย่างระบบระบายน้ำ ไฟ gas ลองคิดดูว่าเอามารวมกัน มันจะรกขนาดไหน เราไม่ได้ต้องการใช้มันตลอดเวลาด้วย มีไว้เปิดปิด

xref ที่อเมริกาเป็นสิ่งที่จำเป็น :
ส่วนหนึ่งคือ การที่เราไม่ embed ข้อมูลของคนอื่นที่อาจจะเปลี่ยนอีก หรือแปลว่าเราไม่ควรไปเปลี่ยนของเค้า อย่างfileพวกระบบ เราก็แค่เอามาเทียบเพื่อออกแบบให้มันเหมาะสมกับระบบ แต่ไม่ใช่เอามา paste ลงของเรา เพราะเค้าอาจจะเปลี่ยนข้อมูล แล้วทีนี้ถ้าเค้าอัพเดท...ซวยป่ะล่ะ จำได้มะ... ว่าไฟล์นั้นมีเลเยอร์อะไรบ้าง? จะเอาไปหมดไหม... งานเข้าอีกแล้ว แค่ต้องคิดว่าจะต้องเลือกเลเยอร์อะไรก็เสียเวลาละ... เสียเวลาๆๆ xref แต่แรกก็จบละ
ยกตัวอย่าง xref file เช่น การ xref ไฟล์ *Base (survey), Landscape (Hardscape), Arcihtecture, Planting (softscape), Lighting, Utility, Contour, Spot elevation เป็นต้น ทีนี้เวลาเรา Share file ระหว่าง consultants เราส่งแค่ไฟล์ที่เราupdate และเมื่อมันอยู่ใน Coordinate พิกัดเดิม เราไม่ต้องมาเลื่อนอะไร มันมา reference ที่ 0,0,0 เลย
จอมอาจจะ intense มากเรื่องนี้ แต่สำคัญมากจริงๆค่ะ ทำงานง่ายกว่าล้านเท่า ในการติดต่อ ที่ทำงานจอมและ consultants ที่ทำงานร่วมก็แยกหมดค่ะ ไม่มีใครไม่ใช้ xref

Teamwork
ข้อดีอีกอย่างคือ เราแยกไฟล์แปลว่าเรากับเพื่อนร่วมทีม ไม่ต้องแย่งกันทำงานบน file เดียวกัน เช่น ในงาน landscape จอมอาจจะทำผังHardscape หลัก แต่อีกคนอยู่ในไฟล์ trees ที่ xref ต้นไม้มาบนไฟล์ที่จอมทำ เค้าก็ทำของเค้าเวลาใครสักคน Update มันก็จะอัพทั้งคู่
แต่ว่าต้องเข้าใจระบบของการ xref ไม่งั้นมันจะ nest กันไปมา อันนั้นทำไฟล์ช้าไปซะงั้นอ่ะ แทนที่จะทำให้ไฟล์เร็ว



7. Learn Lisp Routine

9-best-practice-Autocad-lispLisp routine เป็นสิ่งที่ทำให้ทุกความสบาย..เป็นจริงได้ใน Autocad!!
อย่างที่บอกไปอะไรที่ต้องเสียเวลาทำ จอมจะหาทางอื่นก่อน และเราก็พบทางสว่างที่ไม่มีที่สิ้นสุด เช่นอันนี้ คืออันที่จอมใช้ประจำและแชร์ Tips นี้กับที่ออฟฟิส
Command “tlen” is to measure the total linear length วัดความยาวเส้นทั้งหมดที่เลือกพร้อมกัน เหมาะกับหาความยาวของผนังทั้งหมดทีเดียว
Command “aream” to get all area of polylines at (you can drag over all of them, unlike usual “area” that you have to select individually.หาพื้นที่ทุกอันในนั้นไม่ต้องมานั่งเลือกทีละอัน
Command “vcount” to count vertex of the polylines, I used it in Construction document, planting set, to count the amount of trees at the connectors (the line that snap at the center of shrub / trees to tell it is the same species)ใช้นับจุดบนเส้นค่ะ
These are 3 I used a lot.
Command “pld” is polyline diet (if I remember the shortcut correctly) I used it sometimes if the mapclean / weed polylines are not enough. I used to clean the lines and reduce the vertex.อันนี้คล้าย mapclean แต่ง่ายกว่า ใช้ลดจุดใน polyline
ไว้เรื่อง Lisp routine ถ้าสนใจบอกมานะคะ จอมจะแยกเป็นอีกบทความให้เลย


8. Real File VS Study

  • แบ่งไฟล์จริงสำหรับ ใช้จริง(สะอาด) กับไฟล์Study ที่เราใช้ทดลอง(รกได้)
  • Don’t lay it on the side, unless it is the study รักษา Coordinate ในไฟล์หลัก แต่ในไฟล์ทดลอง อยากทำอะไรก็ทำ
  • เซฟใส่วันที่แยก เผื่ออยากได้อะไรจากในนั้น และที่สำคัญพยายามรักษา coordinate เดียวกันไว้ เวลาcopy จะได้ paste in place ได้


9. Think about next step : 3D making

9-best-practice-Autocad-3d-layerคิดถึงการจะเอาไปใช้ทำ 3D ต่อด้วย เวลาจอมได้ไฟล์จากคนอื่นจอมแยกได้ชัดเลยว่าคนนี้ มีความรู้ความเข้าใจในการเขียนทั้ง 2D และ 3D เพราะเค้าเอามาให้เราใช้ต่อได้ง่ายๆเวลาจอมจะช่วยมาทำโมเดลต่อ เอาจริงๆ ไม่ขออะไรมาก ขอแค่..
  • clean, no junk
  • เส้นต่อกัน ไม่เหลื่อม เหมือนอย่างที่แบบก่อสร้างควรจะเป็น เส้นจบ
  • แยกเลเยอร์ตามชนิดวัสดุด้วย ไม่ใช่แค่ Hardscape จะดีมาก
  • Closed polyline ได้นี่..รักเลย <39-best-practice-Autocad-closed-polyline
อันนี้คือตัวอย่างเวลาจอมทำ 3D ที่ทำงาน จอมแยกแต่ละ layer ตามวัสดุเลย เวลาทำงานก็ง่ายเพราะจอมก็ค่อยๆทำทีละ layer มีchecklistตัดมันออกทีละข้อ จอมทำงาน scale ใหญ่และมีความซับซ้อนสูงเยอะมาก ทำให้ต้องแบ่งเลเยอร์เยอะ จะได้ทำงานง่ายๆ ใช้layiso แล้วก็ ตูมๆ!! อัดมันทีละเลเยอร์9-best-practice-Autocad-3d

สรุป : Toolsเป็นเครื่องทุ่นแรง ไม่ใช่ให้มันมากินแรงเรา

ออโต้ แคด ปัญหา งาน
นี่เป็น 9 ข้อที่ไม่ใช่แค่จอมใช้ประจำ แต่รวมไปถึงออฟฟิสที่จอมทำงานด้วยก็มีระบบชัดเจนมากค่ะ และมันทำให้การทำงานร่วมกับคนอื่นง่าย และปัญหาก็น้อยลง เวลาผ่านไปเราก็ลืมละว่าเราจัดระบบมันยังไง แต่ถ้าเรามีระบบที่เข้าใจได้ง่าย (Intuitive) จะทำให้แก้ง่ายสบายใจค่ะ
จอมอยากทำงานให้เสร็จไว และดีดี แต่ไม่ใช่เสร็จแล้วจะได้กลับบ้านหรอกค่ะ เพราะถ้างานไม่ดี เราก้ต้องมาแก้ค่ะเวลาทำงานที่นี่เค้าไม่เคยปล่อยให้หลุดแม้แต่นิดเดียว ถ้าเราเอาแค่คร่าวๆไปให้เค้าดู เสียเวลามาแก้ไม่เท่าไหร่ แต่เสียเครดิตนี่เอาคืนไม่ได้ค่ะ ทำงานดีดี จะได้กลับบ้าน นอนหลับฝันดี เพราะเราไม่ได้หมกอะไรไว้ ;)
ปีที่แล้ว มีเด็กมาฝึกงานและดูจะมีความมั่นใจในการทำ Cad มาก แต่พอเอาเข้าจริงๆ คนทำต่อนี่แทบจะเอาเท้าก่ายหัว...เจ้านายเลยส่งจอมไปเทรน คือ มีปัญหาให้ตามแก้ตลอด และเค้าคิดว่าแบบนี้ก็ได้นี่ ก็ดีอยู่แล้วนี่ แต่พออธิบายให้ฟัง และทำให้ดูเค้าเลยเริ่มเข้าใจ เพราะเราไม่ได้ทำงานคนเดียว และไม่ได้ทำไปเรื่อยๆ เราต้องแข่งกับเวลาในขณะที่คุณภาพต้องได้ด้วย จอมเลยคิดว่าบางทีการเอาเรื่องนี้มาแบ่งปันน่าจะมีประโยชน์ไม่มากก็น้อยค่ะ เพราะตอนจอมเรียนจบ จอมก็มั่นใจแบบที่น้องฝึกงานมาเลยค่ะว่าเราเร็วและคล่อง แต่ว่าตอนนี้จอมว่าจอมได้รู้อะไรเยอะขึ้น มันมีอะไรอีกเยอะมากที่ให้เราดียิ่งๆขึ้นไปไม่ใช่แค่ชั่วโมงบิน แต่เป็น Best Practice หรือแนวทางน่าปฏิบัติที่ทำให้เราทำงานได้ดียิ่งๆขึ้นค่ะ
ไหนไหนมันก็เป็นโปรแกรม เป็นเครื่องมือที่เราถนัดอยู่แล้ว จะถนัดให้มันมากกว่านี้..จะเป็นอะไรไป? มันจะได้เป็นเครื่องทุ่นแรงเรา ไม่ใช่ให้มันมาใช้งานเราเยี่ยงทาสeating while doing cad work
แล้วคุณมีเทคนิค หรือ แนวทางน่าปฏิบัติ(Best Practice) อะไรอีกบ้างคะ? ถ้าจอมลืมอะไรไป เพิ่มเติมมาได้เลยค่ะ มาแบ่งปันกัน
หรือถ้าสนใจอย่างให้เจาะเรื่องไหนเป็นพิเศษบอกได้นะคะ เช่นเรื่อง Lisp Routine ถ้าสนใจเดี๋ยวมาขยายเป็น VDO ก็ได้ค่ะจะได้เข้าใจง่าย ยังไงอยากได้อะไร ลอง request มานะคะ
เรามาเป็นเทพ Autocad ไปด้วยกันค่ะ ว่าแล้ว...ก็ไปลุยลองทำกันเลย!!

ขอบคุณที่ติดตามนะคะ :)

ที่มา: https://dreamaction.co/9-autocad-best-practice/

Laravel

  Laravel Framework คือ PHP Framework ตัวหนึ่งที่ถูกออกแบบมาเพื่อพัฒนาเว็บแอพพลิเคชั่นต่างๆ ในรูปแบบ MVC (Model Views Controller) ซึ่งมีการแ...