ผู้ใช้ ระบบปฏิบัติการ Windows อาจรู้จักกับ Command Prompt (Cmd) เป็นอย่างดีอยู่แล้ว ถึงแม้ว่าปัจจุบัน ระบบปฏิบัติการ Windows จะมี ส่วนประสานงานกับผู้ใช้ (User Interface) ในรูปแบบกราฟิก (Graphical User Interface หรือ GUI) หรือส่วนต่อประสานกราฟิกกับผู้ใช้ ที่ช่วยให้เราสามารถใช้งานคอมพิวเตอร์ได้อย่างสะดวกมากยิ่งขึ้น
แต่โปรแกรม (หรือจะเรียกว่า "แอป" ก็ได้) Command Prompt ที่มีติดเครื่องมากับระบบปฏิบัติการ Windows มาตั้งแต่ยุคเริ่มต้นของคอมพิวเตอร์ ก็ยังเป็นโปรแกรมที่ถูกใช้งานมาจนถึงปัจจุบัน โดยเฉพาะการใช้เพื่อแก้ไขหรือสั่งการคอมพิวเตอร์ในแบบที่ GUI ไม่สามารถทำได้
ข้อมูลเพิ่มเติม : ระบบปฏิบัติการ Windows มีประวัติความเป็นมาอย่างไร ?
แต่อย่างไรก็ตามหลายคนอาจไม่ทราบว่า Windows ยังมีอีกโปรแกรมหนึ่งที่สามารถใช้งานด้วยวัตถุประสงค์เดียวกับ Command Prompt นั่นก็คือ Windows PowerShell ดังนั้นบทความนี้เราจะพาทุกคนมารู้จักกับ Windows PowerShell เพิ่มเติมกัน
และนอกจากนี้แล้ว ยังรวมไปถึงข้อแตกต่างระหว่าง Command Prompt และ Windows PowerShell นั้นคืออะไร ? มาดูเลย
Command Prompt (Cmd) คือโปรแกรมรูปแบบ Command-Line Interpreter หรือโปรแกรมรับคำสั่งภาษาสคริปต์เป็นข้อความเพื่อใช้สั่งการทำงานคอมพิวเตอร์โดยตรง แทนที่จะใช้กราฟิกโหมด (GUI) ของ Windows ซึ่งปกติมักจะนิยมใช้เพื่อตั้งระบบการทำงานอัตโนมัติในคอมพิวเตอร์ เช่น ต้องการสั่งให้คอมพิวเตอร์ปิดเองเวลากี่โมง เป็นต้น โดยใช้คำสั่ง (Script) ของโปรแกรม หรือ รันชุดคำสั่งที่ผู้ใช้เขียนไว้ใน Batch file (.bat)
บางครั้งประโยชน์ของ Command Prompt ก็อาจช่วยให้เราสามารถจัดการแก้ปัญหาคอมพิวเตอร์ได้อย่างง่ายดายและรวดเร็ว ไปจนถึงการใช้งานทั่วไป เช่น
- ipconfig = การเช็คหมายเลขที่อยู่ไอพี (IP Address)
- calc = เปิดโปรแกรม เครื่องคิดเลข
- netstat = ตรวจสอบการเชื่อมต่ออินเทอร์เน็ตด้วยคำสั่ง
โปรแกรม Command Prompt ถือว่าเป็นโปรแกรมที่อยู่คู่กับ Microsoft มานาน ดั้งเดิมเคยเป็นโปรแกรมสำหรับระบบปฏิบัติการ DOS (Disk Operating System) ของ Microsoft ในยุคแรก ๆ ที่มีการใช้งานคอมพิวเตอร์ ก่อนจะกลายมาเป็น Windows อย่างทุกวันนี้
Command Prompt อาจเป็นที่รู้จักกันในชื่อเรียกอื่น เช่น Windows Command Processor, Cmd Prompt หรือ cmd.exe
สำหรับวิธีการเปิดใช้งานใน ระบบปฏิบัติการ Windows มีได้หลายวิธี เช่น การเปิดผ่าน "แอป Run" เพื่อทำการส่งคำสั่งด้วยการพิมพ์ (Run Command) ด้วยการกด "ปุ่ม Windows + R" → พิมพ์ว่า "cmd" ก็สามารถเปิด โปรแกรม Command Prompt ขึ้นมาได้แล้ว
หรือจะเปิดผ่าน "เมนู Windows Search" โดยพิมพ์ค้นหาชื่อโปรแกรมตรง ๆ ว่า "Command Prompt" ไปเลยก็ได้
PowerShell หรือ Windows PowerShell เป็น โปรแกรมรับคำสั่งภาษาสคริปต์ของ Windows เช่นเดียวกับ Command Prompt ที่ถูกพัฒนาขึ้นมาจาก .NET Framework สามารถใช้บริหารจัดการ ระบบปฏิบัติการ Windows และ Windows Server ด้วยภาษาคำสั่งที่มีชื่อว่า 'cmdlet'
จุดเด่นของของ Microsoft PowerShell คือภาษาที่จดจำง่าย โดยออกแบบให้เป็น 'Object Oriented Programming' หมายถึงศัพท์คำสั่งต่าง ๆ จะให้ความสำคัญกับวัตถุนามธรรม โดยจะประกอบด้วย กริยา และ คำนาม (Verb-Noun) เช่น
หากเป็นคำสั่งที่เราใช้ สั่งปิดเครื่อง (Shutdown) ถ้าเป็นของ Command Prompt จะใช้คำว่า "shutdown /s" ขณะที่ PowerShell หรือ cmdlet จะใช้รูปประโยคที่ชัดเจนกว่าคือ "Stop-Computer"
หรือถ้าเป็นคำสั่ง เช็คหมายเลขที่อยู่ไอพี (Check IP Address) ที่เราใช้บ่อย ๆ ใน Command Prompt อย่าง "ipconfig" แต่ถ้าพิมพ์สั่งใน PowerShell เราสั่งมันได้ด้วยประโยคธรรมดา ๆ อย่าง "Test-Connection - (ชื่อคอมพิวเตอร์) " ได้เลย
เช่นเดียวกับ Command Prompt บน Windows สามารถเปิดใช้ PowerShell ได้โดยไปที่ "แอป Run" เพื่อทำการพิมพ์คำสั่ง (Run Command) ด้วยการกด "ปุ่ม Windows + R" แล้วพิมพ์ว่า 'PowerShell' หรือว่าจะค้นหาใน "เมนู Windows Search" ก็ได้ตามสะดวก
ภาพประกอบ : https://www.howtogeek.com/163127/how-PowerShell-differs-from-the-windows-command-prompt/
PowerShell ใช้ภาษาสคริปต์ cmdlet ที่จดจำได้ง่ายกว่าและเอื้อต่อการทำงานที่ซับซ้อน เช่น คำสั่งที่ใช้ปรับแต่งการทำงานของฮาร์ดแวร์ในเครื่องไม่ว่าจะเป็น แรม (RAM) หรือ ฮาร์ดดิสก์ (Harddisk) หรือการตั้งค่าความปลอดภัยของระบบในระดับ Admin Level นอกจากนี้ยังมีตัวช่วยอย่างคำสั่ง "Get-help" ที่เราสามารถพิมพ์เพื่อขอดูตัวอย่างวิธีใช้งานคำสั่งอื่น ๆ รวมถึงหน้าคอนโซลก็แตกต่าง เพราะสามารถเขียนชุดคำสั่งสคริปต์และดีบัคสคริปต์ได้เลยทำให้มีความยืดหยุ่นค่อนข้างสูง เหล่าแอดมินระบบสามารถทำงานได้อย่างมีประสิทธิภาพ
ในขณะที่ Command Prompt ใช้รันคำสั่ง DOS พื้นฐาน และมีความสามารถจำกัด เช่น อาจใช้เช็ค แรม (RAM) หรือ เคลียร์แรมได้ ส่วนคำสั่งที่ซับซ้อนจะต้องใช้การรันด้วยไฟล์ที่เก็บชุดคำสั่ง (Batch File) เอาไว้เท่านั้น แต่ก็ไม่สามารถเข้าถึงการทำงานใน ระดับผู้บริหาร หรือ ผู้ดูแล (Admin Level) ส่วนใหญ่ที่มีใน ระบบปฏิบัติการ Windows
PowerShell สามารถแปลงเอาต์พุต (Output) ที่ได้จากการเขียนสคริปต์นำไปประมวลผลต่อเป็นทอด ๆ เหมือนกับท่อที่เรียกว่า "Pipelines" หรือ "Piping" ถ้าอธิบายภาษาบ้าน ๆ หมายถึงว่า เมื่อเราเขียนคำสั่งใดแล้วออกมาเป็นผลลัพธ์ หรือ เอาต์พุต ตัวผลลัพธ์เหล่านั้นจะกลายเป็นคำ (Object) ที่ให้ผู้ใช้สามารถหยิบไปใช้ประมวลผลต่อเนื่องพร้อมกับคำสั่งอื่น ๆ บนคอนโซลได้นั่นเอง ทำให้เอื้อต่อการเขียนสคริปต์ให้กระชับมากยิ่งขึ้น รวมถึงยังสามารถใช้เขียนสคริปต์การทำงานให้โปรแกรมต่าง ๆ ภายในระบบให้สามารถโต้ตอบกันได้ด้วย ถือว่าเป็นระบบที่ยืดหยุ่นต่อการออกแบบคำสั่งทำงานที่ซับซ้อน
ในขณะที่ Command Prompt นั้นเอาต์พุตจะมีลักษณะเป็นข้อความล้วน ๆ ทำให้เวลาเขียนคำสั่งก็จะจบการทำงานในตัว เลยรันได้แค่การทำงานพื้น ๆ ไม่สามารถหยิบเอาต์พุตมาประมวลผลต่อเนื่องได้ และสร้างการทำงานต่อเนื่องเหมือน PowerShell
นามแฝง (Aliases) ในที่นี้หมายถึงการใช้ภาษาสคริปต์ที่กำหนดเองได้ ซึ่งเป็นคุณสมบัติของ PowerShell ที่ Command Prompt ไม่มี หรือกล่าวคือคำสั่ง cmdlet แต่ละอันผู้ใช้สามารถกำหนดคำเพื่อใช้แทนคำสั่งนั้นได้ เช่น คำสั่ง Get-Location เราสามารถตั้งเป็นคำสั้น ๆ เอาไว้ใช้เองเช่น "loc" โดยทุกคำสั่งสามารถมีนามแฝงได้หลายคำ แต่นามแฝงที่กำหนดต้องแทนความหมายแค่คำสั่งเดียว
ถือเป็นฟีเจอร์ที่อำนวยความสะดวกให้ผู้ใช้งานในการกำหนดความยืดหยุ่น และ ตั้งค่าภาษาที่เหมาะกับการทำงานของตัวเอง
PowerShell vs Command Prompt | |
PowerShell | Command Prompt |
เปิดตัวในปี ค.ศ. 2006 (พ.ศ.2549) สร้างจาก .Net Framework | เปิดตัวในปี ค.ศ. 1981 (พ.ศ.2524) มาจาก ระบบปฏิบัติการ DOS |
เปิดใช้งานด้วย Command Run และพิมพ์ "PowerShell" | เปิดใช้งานด้วย Command Run และพิมพ์ "cmd" |
รันคำสั่งด้วย Batch files และ cmdlet | รันคำสั่งด้วย Batch Files และ DOS |
สามารถกำหนด นามแฝง (Aliases) สำหรับคำสั่ง cmdlet | ไม่สามารถกำหนดนามแฝงนามแฝง (Aliases) สำหรับคำสั่ง DOS |
PowerShell ลำดับการทำงานร่วมกันได้ในสคริปต์เดียวด้วย 'Pipelines' | เขียนสคริปต์และรันจบในบรรทัดเดียว |
Output ในรูปแบบ Object | Output ในรูปแบบข้อความ หรือ ตัวอักษร (Text) เท่านั้น |
สนับสนุนคลังช่วยเหลือ (Get - Help) ในการเขียนสคริปต์ต่าง ๆ | - |
คอนโซล ISE (Integrated Scripting Environment) | Command-Line Interface แบบดั้งเดิม |
เข้าถึงคลัง Programming ในระบบ .Net framework | - |
เข้าถึงการทำงานในระบบ Admin ของ Windows ได้โดยตรง | เข้าถึงการทำงานผ่าน ปลั๊กอินจากภายนอก |
สามารถเชื่อมต่อกับผลิตภัณฑ์ Microsoft Cloud | - |
ใช้งานได้ในระบบปฏิบัติการ Linux | - |
ใช้เขียนสคริปต์การทำงานของโปรแกรมทุกประเภท | ใช้เขียนสคริปต์การทำงานได้เฉพาะโปรแกรมประเภทคอนโซล |
|
งานเขียนคืออาหาร ปลายปากกา ก็คือปลายตะหลิว |