Please wait...
SOLUTIONS CORNER
การป้อนคำสั่งคอมพิวเตอร์ของคุณผ่าน Command line interface (CLI)

การป้อนคำสั่งคอมพิวเตอร์ของคุณผ่าน Command-line interface (CLI)



อินเตอร์เฟสบรรทัดคำสั่ง (Command Line Interface: CLI) อาจจะไม่สวยงามเท่ากับส่วนต่อประสานกราฟิกกับผู้ใช้ (Graphical User Interface: GUI) แต่มันมีประสิทธิภาพมากกว่า
 
ผู้เชี่ยวชาญด้านIT ส่วนใหญ่คุ้นเคยกับอินเตอร์เฟสบรรทัดคำสั่ง (Command Line Interface: CLI) ในขณะที่หลายคนมีความสุขกับการคลิกไปมาในสภาพแวดล้อมแบบกราฟิก (Graphical Environment) และจะหันไปใช้มันก็ต่อเมื่อมีเหตุจำเป็นจริงๆ เท่านั้น ซึ่งโดยปกติแล้วจะเป็นเช่นนั้นได้ก็ต่อเมื่อมีบางสิ่งบางอย่างผิดปกติกับระบบปฏิบัติการของพวกเขา
 
หากจะว่าไปแล้วมันก็คล้ายๆ กับส่วนต่อประสานกราฟิกกับผู้ใช้ (GUI) ที่ทุกคนรู้จักดี เพราะอินเตอร์เฟสบรรทัดคำสั่ง (CLI) ก็เป็นอีกหนึ่งวิธีในการพูดคุยสื่อสารกับคอมพิวเตอร์ ซึ่งผู้ใช้ในยุคแรกๆ นั้น การสั่งงานและการควบคุมคอมพิวเตอร์ยังต้องใช้สวิตช์ หลังจากนั้นDigital Computer ก็ได้ถือกำเนิดขึ้น มันเป็นเครื่องที่ทำงานแบบ Electromechanicalหรือที่เรียกกันว่าการทำงานแบบกึ่งไฟฟ้ากึ่งจักรกล โดยการส่งคำสั่งและข้อมูลเข้าไปในเครื่องนั้นจะใช้เทปกระดาษเจาะรู ก่อนที่จะพัฒนาไปสู่เครื่องพิมพ์ทางไกลหรือเครื่องเทเลไทป์ (Teletype) ซึ่งต่อมานั้นเป็นยุคของ Electronic Terminals และนั่นก็คือจุดเริ่มต้นของ CLI มันช่วยให้คุณพิมพ์คำสั่งที่ซับซ้อนสำหรับคอมพิวเตอร์ของคุณ แทนที่จะขยับเมาส์ไปมารอบๆ และแม้ว่ามันจะไม่สวยงามเท่ากับ GUI แต่มันก็มีประสิทธิภาพมากกว่า
 
ด้วยประสิทธิภาพที่มากกว่าCLI จึงทำงานได้เร็วกว่า สมมติว่าคุณต้องการค้นหาไฟล์ทั้งหมดที่มีการเปลี่ยนแปลงในเดือนพฤษภาคม ปี 2006คุณสามารถทำได้ในWindows โดยการเปิด Explorer แล้วคลิกในหน้าต่างค้นหาเพื่อเรียกปุ่ม วันที่แก้ไข (Date Modified) จากนั้นให้ลองเลือกวันที่ใดก็ได้จากมัน เพื่อดูว่ามันปรากฏในช่องค้นหาหรือไม่ ต่อจากนั้นให้คุณคลิกที่วันที่เพื่อเรียกใช้ปฏิทิน และเลือกย้อนกลับไปยังเดือนพฤษภาคม ปี 2006 จากนั้นให้คลิกเลือกตั้งแต่วันที่ 1พฤษภาคม 2006และกด Shift + Click เพื่อเลือกวันที่ต่อเนื่องไปจนถึงวันที่31 พฤษภาคม 2006จากนั้นกด Enter
 

คุณคิดว่าวิธีนี้ทำให้คุณต้องยุ่งยากใช่หรือไม่?

ในอินเตอร์เฟสบรรทัดคำสั่ง (Command Line Interface) สไตล์ Linux คุณสามารถพิมพ์ :
 

find . -type f -newermt 20060501 ! -newermt 20060601”
 
นี่เป็นคำสั่งที่จะใช้ป้อนให้กับคอมพิวเตอร์ เพื่อค้นหาไฟล์ทั้งหมดที่ใหม่กว่าวันที่ 1 เดือนพฤษภาคม ปี 2006แต่จะไม่เก่ากว่าวันที่31 เดือนพฤษภาคม ปี 2006 อย่างไรก็ตามคำสั่งนี้อาจจะดูเหมือนว่าเขียนไปเรื่อยเปื่อยหรือตีความไม่ได้ แต่เมื่อใดก็ตามที่คุณใช้เวลาในการเรียนรู้เรื่องเหล่านี้ มันจะทำให้คุณเป็นพ่อมดที่สามารถเนรมิตสิ่งต่างๆ ได้อย่างรวดเร็ว
 
อินเตอร์เฟสแบบCLI ไม่เพียงแต่จะเพิ่มความเร็วให้กับการทำงานของGUI เท่านั้น แต่มันยังช่วยให้คุณทำในสิ่งที่ GUI ทั้งหลายไม่สามารถทำได้ สมมติว่าคุณทำงานให้กับบริษัทX Corp และคุณก็ต้องเขียนคู่มือปฏิบัติงานอยู่ตลอดเวลา ซึ่งเมื่อสัปดาห์ที่แล้ว พวกเขาได้ทำการเปลี่ยนชื่อเป็น Y Corp ผู้จัดการของคุณจึงสั่งให้คุณเปลี่ยนชื่อในเอกสารทั้งหมดในช่วงห้าปีที่ผ่านมาให้เป็นY Corp ตามชื่อของบริษัทใหม่ นั่นจึงทำให้อีกหลายร้อยคนต้องจมอยู่กับโครงสร้างของโฟลเดอร์ (Folder Structure) ที่ลึกลงไปถึงหกชั้น
 
อย่างไรก็ตาม คุณสามารถค้นหาเอกสารเหล่านั้นใน Windows GUI ได้อย่างง่ายดาย แต่การเปลี่ยนแปลงข้อความทั้งหมดนั้นจะเป็นฝันร้ายสำหรับพวกเขา ซึ่งในอินเตอร์เฟสบรรทัดคำสั่ง (Command Line Interface) ของ Linux คุณสามารถทำสิ่งเหล่านี้ได้ด้วยหนึ่งบรรทัดต่อไปนี้ เพียงแค่พิมพ์ :
 

“ find . -type f -exec sed -i 's/X Corp/Y Corp/g' {} +”
 
สิ่งนี้จะทำการค้นหาไฟล์ทั้งหมดในสารบัญที่เก็บรวบรวมรายชื่อไฟล์ (Directory) และจากนั้นจะใช้ฟังก์ชั่นการแทนที่ (Replacement Function) โดยการใช้คำสั่งsed เพื่อสลับข้อความ ซึ่งฟังก์ชั่นนี้จะช่วยให้คุณประหยัดเวลาไปได้มากเลยทีเดียว หรืออีกทางเลือกหนึ่ง คุณสามารถบอกกับหัวหน้าของคุณได้เลยว่าคุณต้องทำมันทั้งหมดนี้ด้วยตนเอง และจากนั้นคุณก็ใช้เวลาตลอดทั้งสัปดาห์เพื่อดูวิดีโอความรู้ใหม่ๆ ที่คุณต้องการได้อย่างสบายๆ 
 
อินเตอร์เฟสบรรทัดคำสั่งหรือCLI จะมีประสิทธิภาพมากยิ่งขึ้นก็ต่อเมื่อคุณเชื่อมโยงหลายๆ คำสั่งเข้าด้วยกัน โดยใช้เอาต์พุต (Output) ของคำสั่งหนึ่งในฐานะอินพุต (Input)สำหรับถัดไป นอกจากนี้ Modern CLI ก็ยังสามารถเขียนได้แม้กระทั่งสคริปต์ ดังนั้น คุณจึงสามารถเขียนโปรแกรมขนาดเล็กเพื่อทำงานซ้ำๆ ได้มากมาย มันจึงเป็นเรื่องง่ายที่จะอธิบายว่าทำไมผู้ดูแลระบบผู้เชี่ยวชาญ (Expert System) จึงเลือกใช้ CLI มากกว่า GUI นั่นเป็นเพราะพวกเขาสามารถใช้มันสำหรับการทำAutomated Task ระดับแอดวานซ์ (Advanced Level) ได้นั่นเอง
 
ดังนั้น เราลองมาดูว่า CLI ต่างๆ นั้นทำงานกันอย่างไร? มันใช้ "Shell"ซึ่งเป็นโปรแกรมที่แปลงคำสั่งของคุณแล้วส่งพวกมันไปยังKernel ที่เป็นส่วนสำคัญของระบบปฏิบัติการ (Operating System) ซึ่งจะดำเนินการกับพวกมันและสร้างผลลัพธ์ (Output) โดย Shell จะถ่ายทอดกลับมาหาคุณ นอกจากนี้มันยังสามารถทำงานบนคอมพิวเตอร์ของคุณเองหรือบนเซิร์ฟเวอร์จากระยะไกล (Remote Server) ซึ่งโปรแกรมที่จะช่วยให้คุณสามารถเข้าถึงในการใช้Shell จากระยะไกลนั้น ได้แก่ Telnet หรือ Secure Shell (SSH)
 
แท้จริงแล้ว Command Line Shell นั้น เริ่มต้นจากระบบ Unix และรุ่นก่อนๆ ของพวกเขา โดยหนึ่งในรุ่นแรกๆ ของ Shell ก็คือ Runcomมันเป็นโปรแกรมที่พัฒนาขึ้นที่MIT ในช่วงกลางทศวรรษที่หกสิบ ซึ่งอนุญาตให้ผู้ดูแลระบบรันคำสั่งมากมายเป็นแบทช์ไฟล์ (Batch File) หลังจากนั้น Thompson Shell ก็ถือกำเนิดขึ้นในปี1971 แต่ส่วนใหญ่ก็เป็นเพียงล่าม (Interpreter) ที่รันคำสั่งตามที่ผู้ใช้พิมพ์ไว้ พร้อมทั้งความสามารถในการเขียนสคริปต์ที่มีข้อจำกัดบางอย่าง ต่อมา Shellก็ได้ถูกพัฒนาขึ้นอีกครั้งด้วยการสร้างBourne Shell หรือเป็นที่รู้จักกันในนามของ "sh" และหนึ่งในผู้สืบทอดตำแหน่งที่โด่งดังที่สุดก็คือBash Shell หรือที่เรียกกันว่า "Bourne Again Shell" มันได้รับการเปิดตัวครั้งแรกในปี 1989โดย Bashที่เป็น Shellประเภทแจกฟรี (Open Source) นั้น ก็ได้กลายมาเป็นมาตรฐานในระบบ Linux อย่างแท้จริง แต่ก็ยังมีตัวเลือกอื่นๆ ให้คุณได้เลือกใช้อีกมากมาย
 
ในส่วนของ Microsoftเองก็ยังมีประวัติศาสตร์อันยาวนานของตัวเองเกี่ยวกับCLI โดยระบบปฏิบัติการMS-DOS แบบดั้งเดิมนั้นใช้พื้นฐานของ CLI และ Windows รุ่นแรกๆ ก็เป็นเชลล์ GUI ที่ทำงานบน DOS ความพยายามต่อไปนี้ เช่น Xenix (เป็นระบบปฏิบัติการ เวอร์ชั่นหนึ่งของ UNIX ที่ Microsoft นำมาพัฒนาเพื่อให้ใช้ได้กับไมโครคอมพิวเตอร์) และ OS/2 ทำให้ Windows NT กลายมาเป็นพื้นฐานสำคัญสำหรับ "Modern Windows" และสิ่งนี้ก็ถูกนำมาเสริมให้กับ CMD.exe Shell ซึ่งได้รับการออกแบบให้มีความสอดคล้องกับเวอร์ชันก่อนหน้านี้ (Backwards Compatibility) กับ DOS CLI
 
อย่างไรก็ตาม อีกไม่นานก็คงจะปรากฏความจริงว่า CMD.exe Shell นั้นไม่เพียงพอสำหรับงานสมัยใหม่ที่มีความซับซ้อน ดังนั้น Microsoft จึงได้คิดค้น PowerShell ขึ้นมา และนี่ก็เป็น CLI เชิงวัตถุ (Object-Oriented CLI) ที่มีความสลับซับซ้อนมากยิ่งขึ้น ที่จะช่วยให้ผู้ใช้สามารถจัดการกับทุกส่วนของระบบปฏิบัติการ Windows
 
เมื่อพูดถึง Microsoft Open-Sourced PowerShell ในปี 2017 ได้มีการคิดค้น PowerShell Core ขึ้นมา ซึ่งในขณะนี้มีให้บริการไม่เพียงแต่สำหรับWindows เท่านั้น แต่มันยังสามารถทำงานได้บน Linux หรือแม้แต่บน Mac และนี่ก็เป็นส่วนหนึ่งของการซึมซับที่กว้างขึ้นระหว่างMicrosoft และโลกของ Linux ในขณะที่พวกเขาก็เคยทำการเปิดตัว Windows Subsystem for Linux (WSL) มาแล้วครั้งหนึ่งในปี 2016ที่ผ่านมา ซึ่งเป็นการอนุญาตให้โปรแกรม Linux ทำงานบน Windowsได้ นั่นจึงหมายความว่าผู้ใช้ Windows สามารถที่จะใช้ Bash Shell ได้แล้วเช่นกัน
 
หมายเหตุทางเทคนิคที่จะกล่าวในที่นี้ก็คือ: คุณไม่สามารถเข้าถึง CMD.exe Shell  หรือ PowerShell ได้โดยตรง ดังนั้นในขณะที่คุณเปิดมันขึ้นมา พวกเขาจะเรียกหา Windows Consoleซึ่งถือว่าเป็นหน้าบ้าน (Front-End) ของอินเทอร์เฟซผู้ใช้แบบข้อความ (Text Interface) ของ Microsoft สำหรับ CMD.exeและสิ่งนี้เองที่ทำให้Console เปรียบเสมือนโปรแกรม Terminal ซึ่งเป็นช่องทางที่จะช่วยให้คุณสามารถควบคุมBash Shells และ Shells อื่นๆ บนเครื่อง Linux และ Mac ได้นั่นเอง
 
ปัจจุบันนี้ สิ่งต่างๆ กำลังก้าวไปข้างหน้า และสำหรับ Microsoft เองก็กำลังเตรียม Windows Terminal ในฐานะของผู้ที่สืบทอดตำแหน่งต่อจากWindows Console ซึ่งมันประกอบไปด้วยฟีเจอร์ใหม่ๆ มากมาย เช่น ความสามารถในการเรียกใช้แท็บหลายๆ แท็บ (Multiple Tabs)รวมทั้งความสามารถในการ Render Emoji (บรรทัดคำสั่งอิโมจิใครพอจะจินตนาการได้บ้าง?)
 
ในช่วงเวลาสามสิบกว่าปีที่ผ่านมานั้น เราเติบโตขึ้นมาพร้อมกับอินเทอร์เฟซแบบชี้ (Point Interface) และแบบคลิก (Click Interface) ขณะที่คนรุ่นต่อไปอาจจะไม่ต้องรู้เรื่องอะไรเลย นอกเสียจากแค่จิ้มๆ ปัดๆ หน้าจอ และที่มากไปกว่านั้นก็คงจะเป็นการใช้เสียงที่เรียบง่ายเพื่อสั่งการ ซึ่งการพัฒนาวิธีการต่างๆ แต่ละอย่างเหล่านี้ทำให้เราหลบเลี่ยงการนำกำลังความสามารถของ CLI ไปใช้ แต่ถ้าคุณต้องการความชำนาญที่เหนือกว่าเครื่องมือของคุณ ความลึกลับของมันก็คุ้มค่าที่จะสำรวจกันต่อไป

ควิกเซิร์ฟ
สินค้า
งานระบบ
บริการ
กิจกรรม
ออนไลน์