วันนี้เห็นข่าวเรื่องโปรแกรมยอดนิยมบนลินุกซ์ที่ใช้แบบคอมมานด์ไลน์ เลยต้องขอเขียนถึงสักหน่อย แต่ดูๆ มีโปรแกรมที่เราใช้ประจำไม่เยอะเท่าไหร่แฮะ อาจจะเป็นเพราะไม่ได้ทำงานเป็นผู้ดูแลระบบโดยตรงก็เป็นได้ ส่วนใหญ่เป็นแค่ผู้ดูแลระบบสมัครเล่น แต่ใช้ลินุกซ์สำหรับงานอื่นๆ มากกว่า โปรแกรมที่เคยใช้และติดอันดับก็มี
- Screen
อันนี้เป็นโปรแกรมหลักสำหรับทำผลการทดลองต่างๆ เลย screen คือโปรแกรมจำลองเทอร์มินัลบนเทอร์มินัลอีกที หรืออาจจะเรียกว่าเป็นโปรแกรมจัดการวินโดว์บนเทอร์มินัลก็ได้ ทำให้เราสามารถรันโปรแกรมหลายๆ โปรแกรมบนเทอร์มินัลตัวเดียวกันได้ โดยจะดีกว่าการรันแบบแบคกรานด์ตรงที่ screen จะจำลองเทอร์มินัลให้เรา ทำให้สามารถเรียกดูโปรแกรมที่กำลังรันได้ โดยไม่จำเป็นต้องสั่งให้เก็บผลการทำงานลงไฟล์ เช่นแต่เดิมเราอาจจะเรียกโปรแกรมโดยmyprogram &> output.log & tail -f output.log (เรียกดูผลที่เก็บไว้ในไฟล์)
จะสามารถเปลี่ยนไปใช้แค่ว่าscreen myprogram
จากนั้นก็กด Ctrl-A-D เพื่อให้กลับมายัง command prompt เดิม เวลาจะเรียกดูการทำงาน ก็ใช้screen -r
นอกจากนี้ถ้าต้องการให้เก็บผลการทำงานไว้ในไฟล์โดยอัตโนมัติ ก็แค่ไปสร้างไฟล์ .screenrc ไว้ใน home แล้วเขียนในไฟล์นั้นว่าdeflog on
จะทำให้ screen สร้างไฟล์ screenlog.0 เพื่อเก็บผลการทำงานให้ทุกครั้ง - Pine
โปรแกรมสำหรับอ่านเมลบนคอนโซล ใช้บ่อยมากสมัยเรียนอยู่จุฬาฯ ซึ่งโปรแกรมอ่านเมลแบบที่ใช้ POP3 ยังไม่เป็นที่นิยมเหมือนทุกวันนี้ ตอนนี้ไม่ได้ใช้แล้ว เปลี่ยนมาใช้ Mail บน OS X กับ Thunderbird อ่านแทน เนื่องจากมีคุณสมบัติต่างๆ ดีกว่า รวมถึงพวกภาษาไทย และจัดการแยกเมลขยะให้อัตโนมัติด้วย - Lynx
โปรแกรมเบราเซอร์บนคอนโซล โปรแกรมนี้ก็ใช้บ่อยเหมือนกันตอนอยู่จุฬาฯ เดี๋ยวนี้ไม่ค่อยได้ใช้บ่อยนัก แต่จะได้ใช้เสมอ เวลาติดตั้ง Gentoo Linux เนื่องจากช่วงแรกยังต้องรอคอมไพล์ xorg-x11 ให้เสร็จก่อน ระหว่างนั้น ถ้าต้องการค้นหาข้อมูลมาใช้กำหนดค่าต่างๆ ก็ต้องพึ่ง lynx เป็นหลัก - MySQL
โปรแกรมจัดการฐานข้อมูลยอดนิยม ซึ่งได้ใช้เสมอๆ โดยเวลาต้องการทำเว็บเก็บข้อมูล หรือรับลงทะเบียนต่างๆ แหะๆ เนื่องจากขี้เกียจเขียนฟังก์ชันจัดการข้อมูลเอง ใช้ MySQL ไปเลยก็ง่ายดี แถมเร็วด้วย ที่จริงในแง่ของระบบจัดการฐานข้อมูลแล้ว MySQL ยังมีข้อจำกัดอยู่เยอะ แต่ถ้าทำงานง่ายๆ ก็ไม่ค่อยได้ใช้หรอก ถ้าต้องการความสามารถแปลกๆ ก็อาจจะเปลี่ยนไปใช้ PostgreSQL แทนได้ (แต่เคยได้อ่านที่ไหนว่า ประสิทธิภาพในแง่ความเร็ว จะสู้ MySQL ไม่ได้)
ที่ติดอันดับมีแค่นี้แหละ นอกนั้นขอพูดถึงโปรแกรมยอดนิยมส่วนตัว ที่ไม่ติดอันดับบ้าง
- Vim
โปรแกรมบรรณาธิกรณ์หลักที่ใช้อยู่ทุกวันนี้ จำได้ว่าครั้งแรกอ.ญาใจซึ่งสอนภาษาซีตอนปีหนึ่งแนะนำให้ใช้ ความรู้สึกแรกคือทำไมมันใช้ยากอย่างนี้(วะ) เช่น มีแบ่งเป็นโหมดด้วย ว่าจะสั่งงาน หรือจะพิมพ์ข้อความ แถมคำสั่งต่างๆ ก็ต้องจำหมด ไม่สะดวกเอาซะเลย จำได้ว่าตอนนั้นไม่ได้ใช้หรอกใช้ pico แทน มาเริ่มใช้งาน vi จริงๆ จังๆ ก็ตอนไปอยู่ญี่ปุ่นมั้ง หลังจากเริ่มเบื่อ Mule ซึ่งอืดมากๆ สำหรับเครื่องในยุคนั้น พอเริ่มใช้งาน เริ่มคุ้นและจำคำสั่งต่างๆ ได้ ก็จะรู้สึกว่า vi สะดวกมาก ยิ่งเป็น vim ด้วย จะมีคำสั่งเพิ่มเติมหลายๆ อย่าง ทำให้สามารถเขียนโปรแกรมหรือพิมพ์งานต่างๆ ได้เร็วกว่าโปรแกรมบรรณาธิกรณ์อื่นๆ เยอะ ไม่จำเป็นต้องยกมือไปจับเมาส์ด้วย ตัวอย่างเช่น ถ้าจะค้นหาข้อความ ก็แค่กด escape แล้วก็กด / ตามด้วยข้อความแค่นั้นเอง จะแทรกบรรทัดใหม่ไปอยู่ที่บรรทัดก่อนตำแหน่งที่จะแทรก กด o แล้วเริ่มพิมพ์ได้เลย ไม่จำเป็นต้องกด end ไปท้ายบรรทัดก่อน แล้วตามด้วย enter แถมเวลาเขียนโปรแกรมก็มีระบบจัดย่อหน้าให้พร้อม - Awk
โปรแกรมสำหรับจัดการและแก้ไขข้อมูลในไฟล์ข้อความ เวลามีไฟล์ซึ่งเก็บข้อมูลในลักษณะที่หนึ่งบรรทัดเท่ากับหนึ่งเรคคอร์ด และแต่ละเรคคอร์ดมีข้อมูลหลายๆ อย่าง คั่นด้วยตัวอักษรอะไรสักอย่าง เช่น , หรือ : แล้วเกิดอยากได้ข้อมูลบางตัว อยากตัดบางตัวออก หรืออยากหาผลการคำนวณบางอย่าง จะทำงานได้เร็วมาก ถ้าใช้ awk เพราะเขาออกแบบมาเพื่องานแบบนี้โดยเฉพาะ ไม่จำเป็นต้องไปเสียเวลาเขียน perl ซึ่งอาจจะไม่ช้ามาก แต่ก็ไม่น่าจะเร็วกว่า awk ยิ่งถ้าใช้ C ด้วย ไม่มีทางสู้ awk ได้เลย เพราะกว่าจะเขียนโปรแกรมเสร็จก็แย่แล้ว เช่น ถ้ามีข้อมูลว่า0001:12:23 0002:13:45 0003:15:78 0004:22:90
แล้วต้องการหาผลรวมของแต่ละเรคคอร์ด ก็จะใช้ awk ว่าawk 'BEGIN {FS=":"}; { sum = $2 + $3; print $1":"sum }'
โดย BEGIN {}; เป็นส่วนสำหรับกำหนดค่า หรือสั่งงานก่อนเริ่มอ่านไฟล์ โดยมีการกำหนดให้แบ่งฟิลด์ด้วยเครื่องหมาย : ส่วน {} ถ้ดมาจะถูกเรียกทำงานเรคคอร์ดละครั้ง ซึ่งจะกำหนดให้หาผลรวมระหว่างฟิลด์ที่สองกับฟิลด์ที่สาม แล้วก็พิมพ์ค่าฟิลด์ที่หนึ่งกับผลรวม - Find
โปรแกรมนี้ก็ใช้บ่อยเหมือนกัน เวลาหาไฟล์ไม่เจอ ที่จริงคำสั่งนี้ยืดหยุ่นมาก สามารถค้นหาไฟล์โดยกำหนดเงื่อนไขได้หลายรูปแบบมากๆ ไม่ได้จำกัดเฉพาะชื่อไฟล์เท่านั้น สามารถหาไฟล์โดยกำหนดขนาด กำหนดวันที่เปลี่ยนแปลงหลังสุดก็ได้ แถมสร้างเป็นลิสต์ของไฟล์ที่ต้องการส่งต่อไปให้คำสั่งอื่นๆ ได้อีก เคยใช้ find สำหรับแบคอัพข้อมูลเหมือนกัน โดยใช้สร้างลิสต์ของไฟล์ที่มีการเปลี่ยนแปลงใหม่กว่าไฟล์ที่กำหนด เพื่อจะได้เลือกเฉพาะไฟล์นั้นไปเก็บไว้ เป็นการแบคอัพเฉพาะส่วนที่เปลี่ยนแปลง ใช้ง่ายดีเหมือนกันนะ - Tail
โปรแกรมนี้ใช้บ่อยเหมือนกัน เวลาต้องการแก้ปัญหาต่างๆ ให้เครื่อง เพราะเวลาดู log ถ้าใช้ less ก็จะเสียเวลาเลื่อนไปบรรทัดท้ายๆ เนื่องจากไฟล์จะยาวมากๆ การใช้ tail จะช่วยแสดงส่วนท้ายๆ ของไฟล์ได้ง่ายกว่า
ที่ใช้บ่อยๆ ก็มีแค่นี้ล่ะมั้ง ไว้นึกออกแล้วจะมาเขียนต่อ
1 comment:
แต่ก่อนสมัย Internet ยังเป็นคล้ายๆ BBS
คือ โทรเข้าไป แล้วก็ขึ้นมาเป็น Prompt ให้ใส่ Username แบบ Telnet เลย
เคยลองซ่าเปิด vi ขึ้นมาเล่น (หลังจากไปอ่านจากที่ไหนมาไม่รู้)
แล้วออกจากโปรแกรมไม่ได้ !!!
จะ Ctrl-C, Alt-X ฯลฯ ก็แล้ว ก็ไม่มีปัญญาออกซะที
สุดท้ายต้องตัดสายโมเด็ม เสียตังค์ฟรีเลย -_-"
Post a Comment