นโยบายการจัดการความรู้ มหาวิทยาลัยสงขลานครินทร์ 1.ให้ใช้เครื่องมือการจัดการความรู้ผลักดัน คุณภาพคน และกระบวนทำงาน 2.ส่งเสริมการแลกเปลี่ยนประสบการณ์การทำงาน จากหน้างาน 3.ส่งเสริมให้มีเวทีเรียนรู้ร่วมกัน

นาย ฉัตรชัย จันทร์พริ้ม
Ico64
เครือข่าย
สมาชิก · ติดตาม: 4 · ผู้ติดตาม: 5

อ่าน: 3382
ความเห็น: 6

Windows Utilities สำหรับ Unix User

ทำ Windows ให้คล้าย Unix ด้วย Cygwin แต่งานบางอย่างยังต้องใช้ เครื่องมือของ Windows เอง

Cygwin เป็นชุดของโปรแกรมที่ทำให้สภาพแวดล้อมของการทำงานบน Windows ให้คล้าย Unix หรือ ถ้าจะให้จำเพาะเจาะจงลงไป ก็คงต้องบอกว่าทำให้คล้าย Linux เพราะ จาก Web page หน้าแรกของ cygwin เองก็บอกว่า องค์ประกอบสำคัญสองส่วนของ  cygwin ก็คือ  dll ที่ทำหน้าเป็น Linux API Emulation และ ชุดของเครื่องมือที่ทำให้ สามารถใช้งานได้ใกล้เคียงกับระบบบน Linux

ซึ่งส่วนใหญ่ถ้าจะว่าไปก็เป็น tools ที่สามารถเรียกใช้งานได้จาก command line

ซึ่งถ้าจะว่าไปก็ไม่ได้จำกัดอยู่แค่นั้น ถ้าใครตั้งใจจริงจะเอา tools บน GUI อย่างเช่น X-windows หรือ window manager อย่างเช่น XFCE ไปใช้งานบน Windows โดยผ่าน cygwin ก็สามารถทำได้เช่นเดียวกัน ในกรณีนั้นๆ เครื่องมือหลายอย่างก็อาจจะไม่มีประโยชน์มากสักเท่าไหร่ เพราะบน Opensource Tools หลายตัวที่ใช้งานอยู่บน GUI ก็มีแบบที่เป็น native สำหรับ Windows อยู่เองแล้ว ไม่ว่าจะเป็น OpenOffice.Org หรือจะเป็น Webbrowser อย่างเช่น Firefox หรือ IDE + Development Tools อย่างเช่น Eclipse และ ถ้าเป็นงานบางอย่าง /หลายอย่าง เครื่องมือของ Windows เองก็น่าจะเหมาะสมกว่า ถ้าไม่มีปัญหาในเรื่องของ license หรือ virus ... ซึ่ง ... เอ่อขอ bye จะไม่กล่าวถึงอีกต่อไปในที่นี่

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

การใช้ Cygwin บน Windows เป็น solution สำหรับข้อขัดข้องหลายๆอย่าง ที่หลังจากพยายามใช้ Wine บน Linux ไม่สามารถใช้งาน Windows Application ได้อย่างที่ต้องการได้ --- สถานการณ์ช่วงหลังอาจจะดีขึ้น ผมไม่ได้กลับไปใช้งาน Wine นานพอควรแล้ว

อย่างไรก็ตาม บันทึกนี้ไม่ได้จะเป็นบันทึกสำหรับ แนะนำให้ใช้ cygwin

    -- ผู้ที่ต้องการใช้ และ จำเป็นที่ต้องใช้ ก็คงจะรู้จักเครื่องมือนี้ดีอยู่แล้ว

    -- ผู้ที่ไม่จำเป็นต้องใช้ ถึงแนะนำไป ก็คงได้รับคำตอบเหมือนเดิมว่า Windows มันดีอยู่แล้ว cygwin ไม่เห็นจะมีประโยชน์อะไร ... สำหรับผู้ใช้กลุ่มนี้ แนะนำให้ลองใช้ Ubuntu หรือ Fedora น่าจะเป็นคำแนะนำที่สร้างสรรค์กว่า

บันทึกนี้มีเพราะ ผมพบปัญหาในการใช้เครื่องมือของ cygwin ว่าไม่สามารถทำงานได้ครบตามที่ต้องการ

ซึ่งจะว่าไป เรื่องนี้จะไปโทษความสามารถของ tools ของ cygwin ก็คงไม่ถูกนัก เพราะเป็น tools ที่พัฒนามาใช้งานบน Linux และสำหรับงานบางอย่างที่เกี่ยวข้องกับระบบภายในของ Windows เอง การที่จะเข้าถึงส่วนนั้นได้ โดยใช้ tools ของ Linux ก็คงไม่สามารถเข้าไปใช้งานได้ครบสมบูรณ์

ปัญหานั้นก็คือ การดูและจัดการ process ของ Windows

สำหรับ unix/linux จะมีคำสั่งเช่น ps, top, kill ซึ่งใช้ในการดู, ส่งสัญญาณ หรือ หยุด process บน cygwin ก็จะมีคำสั่งเหล่านี้เหมือนกัน เพียงแต่ว่า process ที่สามารถมองเห็นได้ โดยคำสั่ง top หรือ ps จะเห็นเฉพาะ process group ที่เริ่มจาก session ของ cygwin นั้นๆเท่านั้น ส่วนของ process ที่เริ่มนอกเหนือจากนี้ หรือ process ของ windows เองจะมองไม่เห็นจากคำสั่ง ps,top หรือ kill ของ cygwin เอง

ปัญหานี้สามารถแก้ได้โดยใช้เครื่องมือของ Windows ที่มีอยู่แล้ว และสามารถเรียกใช้ได้จาก command line เช่นเดียวกัน

คำสั่งที่สามารถใช้แทน ps ได้ ก็คือ tasklist.exe

คำสั่งที่สามารถใช้แทน kill ได้ ก็คือ taskkill.exe

เพราะฉะนั้น ถ้าต้องการหา process ที่ใช้ memory มากที่สุดในขณะนั้นๆ ก็สามารถใช้คำสั่ง

$ tasklist.exe | awk '{ print $5,$1,$2 }' |  sed -e 's/,//' | sort -n | tail -5

สำหรับ list process และ process id ที่ใช้หน่วยความจำที่มากที่สุด 5 ตัวออกมาได้

และ ถ้าเลือกที่จะ หยุด process โดยการใช้ command line แทนที่จะปิด application ตามปกติ ก็สามารถใช้คำสั่ง

$ taskill.exe /pid PID

แทนที่ PID  โดยใช้หมายเลข PID ที่ได้จากคำสั่ง tasklist นั่นแหละครับ ถ้าหากว่า process นั้นๆ ไม่ยอมหยุดทำงาน และ อยากจะได้ อานุภาพที่เทียบเคียงได้กับ ''ศาตราวุธ หมายเลข 9'' ของคำสั่ง kill บน linux ก็ใช้นี่ได้เลยครับ -- /f

$ taskill.exe /f /pid PID 

สำหรับผู้ที่เสนอว่า taskmgr.exe น่าจะเป็นคำตอบที่ 'ง่าย' กว่า แทนที่จะต้องมานั่งพิมพ์คำสั่ง อะไรเยอะแยะมากมาย click, click เลือก ก็ทำได้เหมือนกัน ... ผมก็ เอ่อ ... ขอตัวกลับก่อนก็แล้วกันครับ ... :)

Sections: Miscellaneous
License: สงวนสิทธิ์ทุกประการ Copyright
created: 09 December 2008 17:34 Modified: 09 December 2008 17:37 [ Report Abuse ]
ดอกไม้
People Who Like This
 
Facebook
Twitter
Google

Other Posts By This Blogger

ความเห็น

Ico48
panyarak (Recent Activities)
10 December 2008 21:49
#39006

เคยลองเล่นดูนิดหน่อย สำหรับคนที่ชอบ Unix ก็จะพบว่า เป็นอะไรที่วิเศษมากครับ

Ico48
Our Shangri-La (Recent Activities)
11 December 2008 02:30
#39011

เอาไว้ลองเล่นดูครับ

สำหรับผู้ที่เสนอว่า taskmgr.exe น่าจะเป็นคำตอบที่ 'ง่าย' กว่า แทนที่จะต้องมานั่งพิมพ์คำสั่ง อะไรเยอะแยะมากมาย click, click เลือก ก็ทำได้เหมือนกัน ... ผมก็ เอ่อ ... ขอตัวกลับก่อนก็แล้วกันครับ ... :)

8-)

ผมลองแอบตามไปดูตามบันทึก ลองทดสอบ PSPP ทดแทน SPSS ของท่าน วิภัทร ศรุติพรหม แต่ยังไม่ได้ลองเล่นจริงจัง

พบว่าตอนติดตั้ง ตัวติดตั้งจะใส่ Cygwin ให้ด้วย เท่าที่ดูสภาพแวดล้อมของ PSPP ก็จะเหมือนกับสภาพแวดล้อมบน Linux ยังไงยังงั้น

ส่วน Wine นั้นไม่เคยลองเหมือนกัน เคยลองปล้ำกับ Windows emulator ตัวไหนอยู่พักนึงจำไม่ได้แล้ว พักหลังก็เลิกเหมือนกัน

แต่ที่แน่ๆ ถ้า Wine (ไวน์) ล่ะก็ ต้องถามเกลอผมโน่น ท่าทางตอนนี้ เมืองเล็กๆ และใกล้ๆ (แถมไกลๆ) คงหามาลองซะเกลี้ยงแล้ว

เอ่อ ... ขอตัวกลับก่อนก็แล้วกันครับ ... :

8-)

เราเอง

 

Ico48
วรวุธ (Recent Activities)
11 December 2008 09:25
#39019

ตอนนี้หากต้องใช้ Windows ผมจะใช้ virtual machine ครับ  ซึ่งมีให้ใช้ฟรีทั้งของ VMware และ VirtualBox   ซึ่งในอดีตผมใช้ VMware แต่ปัจจุบันหันมาใช้ VirtualBox อยู่ครับ

ปัญหาที่มีบ้างคือ Computing power ที่ต้องแบ่งมาครับ ทั้ง CPU และ RAM (ผมมี 2 GB) ทำให้บางครั้งเกิดกิเลส อยากได้เครื่องที่เร็วแรงแรมเยอะขึ้นไปอีกครับ   แต่เมื่อมาคิดดูก็ใช้ Windows ไม่บ่อยมากครับ  ก็เลยใช้เครื่องเดิมต่อไป ครับ

(จริงๆแล้ว ถ้ามีเวลาหรือความรู้พอ optimize ดีๆ ก็คง ใช้ได้ดีไปอีกนานครับ ตอนนี้ Tablet PC ของผม 5 ปีแล้วครับ  กะว่าจะใช้ให้ได้อีกสัก 2 ปี)

วรวุธ

พบว่าตอนติดตั้ง ตัวติดตั้งจะใส่ Cygwin ให้ด้วย เท่าที่ดูสภาพแวดล้อมของ PSPP ก็จะเหมือนกับสภาพแวดล้อมบน Linux ยังไงยังงั้น

นั่นอาจจะเป็นเพราะว่า PSPPเป็นส่วนหนึ่งของ GNU มั้งครับ เลยต้องมี tools อื่นๆของ GNU ซึ่งในที่นี้ติดตั้งผ่าน cygwin เอาไว้ใช้งานด้วย

ผมไม่ค่อยได้ใช้ software ทางด้านสถิติสักเท่าไหร่ เลยไม่ค่อยคุ้นเคยว่า มันมีความจำเป็นมากน้อยสักเท่าไหร่ ที่ต้องการ tools อื่นๆเข้ามาร่วมด้วย เพื่อให้ทำงานนั้นๆไปได้

ผมติดตั้ง cygwin บน windows เพราะความจำเป็นส่วนตัว บางอย่าง อย่างเช่น ผมต้องการ bash shell และ text utilities และ vi บน Windows เพื่อให้ทำงานได้สะดวกมากขึ้น ซึ่ง ถ้าใครเคยจำเป็นต้องใช้ cmd shell บน windows แล้วเทียบกับ bash หรือ more บน windows เทียบกับ less หรือ text editor ที่สามารถใช้งานได้ โดยไม่ต้องใช้ GUI .... เอ ขอดูนิดนึง ...

โอ้ว ... จอร์จ ... มันยังอยู่ ทั้งสองตัวครับ ทั้ง edlin และ edit -- เป็น text editor ที่มีใช้งานอยู่บน DOS และ อย่างน้อยที่สุด บน xp ก็ยังมีอยู่ ใครที่ใช้ vista หรือ windows ตัวใหม่กว่านั้น ช่วยตรวจสอบให้หน่อยก็ดีครับ ว่ายังมีโปรแกรมทั้งสองตัวนี้อยู่อีกหรือเปล่า

ผมเคย "ลอง" ใช้ edlin และ เคยใช้ edit ซึ่งก็เทียบไม่ได้กับ vi

editor หลายตัวที่มีใช้งานอยู่บน Windows -- ที่ผมได้ลองใช้ก็มี notepad, wordpad (ไม่เชิงเป็น editor), notepad++, และหลายตัวที่เป็นส่วนหนึ่งของ IDE Tools เป็นเครื่องมือที่ดี ใช้งานสะดวก มี feature หลากหลายดีแต่ทั้งหมดเหล่านั้น ก็ต้องใช้ผ่าน GUI ไม่เหมาะกับความต้องการที่ผมต้องการใช้จาก command line และ ในบางกรณี ต้องการใช้ในลักษณะของ script

เพราะฉะนั้นเครื่องมือที่ cygwin มีให้เลยเป็นสิ่งจำเป็น สำหรับการใช้ชีวิตบน Windows

แต่ถ้าหากมีเครื่องคอมพิวเตอร์ ที่ OS จำเป็นจะต้องเป็น Windows -- และผมจำเป็นจะต้องใช้เครื่องนั้น -- และผมต้องการ Web Browser -- ผมคงเลือกใช้ Firefox สำหรับ Windows มากกว่าที่จะติดตั้ง cywin และใช้งาน lynx จาก command line ของ Windows ครับ

ตอนนี้หากต้องใช้ Windows ผมจะใช้ virtual machine ครับ  ซึ่งมีให้ใช้ฟรีทั้งของ VMware และ VirtualBox   ซึ่งในอดีตผมใช้ VMware แต่ปัจจุบันหันมาใช้ VirtualBox อยู่ครับ 

อันที่จริง Windows ที่ผมใช้งานอยู่ ก็อยู่บน VirtualBox บน debian เหมือนกันครับ ซึ่งผมก็สามารถใช้งาน tools ทั้งบน debian และ Windows ไปได้พร้อมกัน แต่งานบางอย่าง ก็ไม่สะดวกเท่าไหร่ ที่ต้องส่งไปมาระหว่าง ทั้งสองระบบ การมี tools อย่าง cygwin บน Windows ทำให้งานเสร็จเร็วขึ้นครับ

Notebook เครื่องใหม่ที่ผมใช้งานอยู่ก็มี RAM อยู่ 2 GB และ harddisk 250GB ซึ่ง ทั้งสองอย่างมากกว่า Notebook ตัวแรกที่ผมมี 4 เท่า (ส่วน CPU แค่ 2 เท่า :) ในราคาเพียง 3/4 ของ Notebook ตัวแรก

(จริงๆแล้ว ถ้ามีเวลาหรือความรู้พอ optimize ดีๆ ก็คง ใช้ได้ดีไปอีกนานครับ ตอนนี้ Tablet PC ของผม 5 ปีแล้วครับ  กะว่าจะใช้ให้ได้อีกสัก 2 ปี)

สำหรับข้อความข้างล่างนี้ อ่านไป ขอให้นึกถึงภาพเจ้ากระต่าย บักส์ บันนี่ ร้องไห้น้ำตาพุ่งเป็นสายโค้งออกจากตาทั้งสองข้าง และ เอามือ(เท้า?) ตีอกชกตัวไปด้วยนะคร้าบ ...

ฮือๆ จะซ้ำเติมกันปายถึงหนาย .....

Notebook ตัวเก่าที่เพิ่งจะ เจ๊งไป เมื่อ 2-3 เดือนก่อน อายุมัน อีกสิบกว่าวันจะครบ 3 ปี

ไอ้เราก็ตั้งความหวังไว้ว่า ซื้อมาแล้ว ยี่ห้อนี้ รุ่นนี้ เขาว่ามันทน อึดพอๆกับแรด น่าจะใช้งานได้สัก 5 ปีเป็นอย่างต่ำ ถามไถ่ เจ้าของ Notebook แถวนี้ ยี่อห้อเดียวกันแต่รุ่นเก่ากว่า เจ้าของเขาบอกเลขอายุ 5 ปีขึ้น บางราย บ่นแบบ "... เฮ้อ ใช้งานมา 6 ปีแล้ว มันไม่ยอมพังสักที ช้าก็ช้า อยากจะซื้อเครื่องใหม่ แต่มันก็ใช้งานได้อยู่ เฮ้อ ..."

คร้าบ .. ทราบแล้วคร้าบ ...

ได้แต่กัดฟันบอกกับตัวเองว่า ทีใครทีมัน ... ฮึ่ม ทีใครทีมัน ....

Ico48
jahbarung [IP: 124.121.95.8]
07 July 2011 17:26
#66463

เอ่อ....ไม่ทราบว่าถ้าผมเรียนถามท่านอาจารย์ตอนนี้ยังพอมีใครให้คำตอบผมได้อยู่หรือเปล่านะครับ

พอดีผมต้องการใช้ tasklist.exe + taskkill.exe บน linux ผมจึงลง wine บน linux แล้วครับแต่ปัญหาคือ wine ของผมข้างในนั้นมันมีไฟล์ system32 แต่มันดันไม่มี tasklist.exe taskkill.exe มีแต่ notepad.exe taskmgr.exe ที่ผมต้องการใช้ tasklist.exe บน linux เพราะว่าผมกำลังทำงานที่ต้องใช้ เครื่อง server เป็น linux ส่วน client เป็น window ผมอยากจะ tasklist.exe /s \\ipเครื่องwindowที่เป็นclient /user /pass อ่ะครับ เพราะผมไม่รุ้จะเรียกโปรเซสเครื่อง window ยังไงจาก server ที่เป็น linux

.....

ขอความรบกวนท่านอาจารย์ด้วยนะครับ ขอบพระคุณครับ ^ ^

คุณ jahbarung,

ผมไม่เคยใช้งาน tasklist, taskkill บน windows มากไปกว่าแบบพื้นๆ ไม่ซับซ้อน

การใช้งานแบบ remote ไปยังเครื่อง client ก็ยังไม่ได้ลองเหมือนกัน

ถ้า server ของคุณเป็น linux และอยากจะใช้ wine สำหรับการ remote control ไปยังเครื่อง client

ก็อาจจะต้องลอง copy โปรแกรม tasklist.exe กับ taskkill.exe มาทดลองใช้งานบน

linux ผ่านโปรแกรม wine ดูครับ ผมยังไม่เคยทดลองใช้งานแบบนี้เหมือนกันครับ

ไม่แน่ใจว่าจะมีปัญหาในการใช้งานหรือเปล่า ได้ผลอย่างไร เอามาเล่าให้ฟังบ้างก็ดีครับ

ร่วมแสดงความเห็นในหน้านี้

ชื่อ:
อีเมล:
IP แอดเดรส: 3.237.71.23
ข้อความ:  
เรียกเครื่องมือจัดการข้อความ
   
ยกเลิก หรือ