ในฐานะนักพัฒนาซอฟต์แวร์ที่ใช้เวลาส่วนใหญ่ในการเขียนโค้ดบน OSX และ Linux เราอยากรู้ว่าการตั้งค่าบรรทัดคำสั่งสมัยใหม่ใน Windows มีหน้าตาเป็นอย่างไร
แบบสำรวจนักพัฒนาซอฟต์แวร์ของ StackOverflow ช่วยเตือนเรามีนักพัฒนาซอฟต์แวร์ที่ใช้ Windows มากกว่าระบบปฏิบัติการอื่นๆ เราจึงสงสัยว่าเครื่องมือที่มีนั้นเทียบเท่ากับที่เราเคยใช้ใน *nix Land หรือไม่
หลังจากได้เวลาประเมินสภาพแวดล้อมของเครื่องมือ Windows CLI แล้ว เราตัดสินใจเลือกชุดเครื่องมือที่เราคิดว่าช่วยให้เราไปถึงจุดนั้นได้ถึง 95%
เมื่อสิ้นสุดวัน เราก็พบกับสิ่งต่างๆ ต่อไปนี้
- PowerShell
- ConEmu
- PSReadLine
- PSGet
- ช็อกโกแลต
- บาบูน (ไม่บังคับ)
ดูหมายเหตุเพิ่มเติมเกี่ยวกับสิ่งที่เครื่องจักรแต่ละชนิดมอบให้แก่คุณได้ที่ด้านล่าง
PowerShell (เชลล์)
- ตั้งอยู่ใกล้กับ "เชลล์" จริงมากกว่า cmd.exe มาก ทำให้เรามีสภาพแวดล้อมการเขียนสคริปต์ที่มีประสิทธิภาพสำหรับระบบอัตโนมัติของงาน การเปรียบเทียบกับ Bash หรือ zsh นั้นเป็นเรื่องยุติธรรม
- เติมข้อความไดเรกทอรีและชื่อไฟล์อัตโนมัติ
- เติมชื่อแอปพลิเคชันอัตโนมัติ
- มีชื่อแทนและคำสั่งที่ผสานการทำงาน (เรียกว่า cmdlets - เช่น
Select-String
เป็นgrep
,Invoke-Elevated
เหมือนsudo
,Sort-Object
เหมือนกับsort
และGet-Process
แสดงกระบวนการที่ทำงานอยู่ทั้งหมด) หากย้ายจาก Shell อื่นไปยัง PS แล้วSet-Alias
จะช่วยให้คุณจับคู่ชื่อแทนที่คุณคุ้นเคยกับไฟล์ที่เทียบเท่าของ Windows ได้ ตัวอย่างเช่นSet-Alias server python -m http.server 8000
เปิดตัวเซิร์ฟเวอร์ Python เมื่อมีการใช้ชื่อแทนserver
- คุณจะคงชื่อแทนไว้ในโปรไฟล์ PowerShell ได้
- รองรับการเชื่อมต่อแบบท่อ เช่น Unix Unix แตกต่างจาก Unix ตรงที่เป็นตัวเชื่อมวัตถุแทนสตรีมข้อความ คุณต้องทำความคุ้นเคยกับขั้นตอนนี้ แต่หลีกเลี่ยงการแยกวิเคราะห์เมื่อต้องการนำที่พักออก
- รองรับโมดูล PSGet เป็นเครื่องมือจัดการแพ็กเกจสำหรับ PowerShell ซึ่งช่วยให้คุณขยายเวลาได้อย่างง่ายดาย
- ลองใช้ Posh-Git ซึ่งเป็นสคริปต์ PowerShell สำหรับ git เพื่อรับการเติมแท็บตามบริบท
หากสนใจเรื่องเบ็ดเตล็ด เรามาดูคำตอบว่าเหตุใด MS ถึงสร้าง PowerShell จากสถาปนิกหัวหน้า
PSReadLine (โปรแกรมช่วยแก้ไขคอนโซล)
- ปรับปรุงประสบการณ์การแก้ไขคอนโซลให้ดียิ่งขึ้นอย่างมาก
- การไฮไลต์ไวยากรณ์เมื่อเริ่มพิมพ์คำสั่ง ระบุข้อผิดพลาดทางไวยากรณ์ด้วยอักขระสีแดง ">" อย่างชัดเจน
- แป้นลัดที่ปรับแต่งได้สูง
- การเติมข้อความอัตโนมัติแบบ Bash
- การค้นหาประวัติแบบ Bash/zsh (Ctrl + R) การข้ามผ่านประวัติคำสั่งที่มีประสิทธิภาพด้วย ดูคำสั่งหลายบรรทัดก่อนหน้าได้ง่ายๆ โดยใช้แป้นลูกศรแทนที่จะเป็นเพียงบรรทัดสุดท้ายของคำสั่ง
- การสนับสนุนที่เหมาะสมสำหรับการคัดลอก/วาง/ตัด (Ctrl+C/X/V ควรทำงานได้ดี)
- การสนับสนุนที่ดีสำหรับการเลิกทำ/ทำซ้ำ
- การบันทึกประวัติเป็นแบบอัตโนมัติ
หรืออาจเลือกใช้ Clink ซึ่งมีชุดฟีเจอร์ที่คล้ายกันแต่ไม่ได้เขียนขึ้นสำหรับ PowerShell โดยเฉพาะ
ConEmu (โฮสต์คอนโซล)
- โปรแกรมจำลองคอนโซลขั้นสูงที่คุณจะเรียกใช้ Shell ที่ต้องการได้
- รองรับการเปิดเทอร์มินัลหลายรายการในแท็บต่างๆ ทำให้การเปิดเทอร์มินัลเป็นผู้ใช้คนละคนเป็นเรื่องธรรมดา
- ปรับแต่งได้มากที่สุด - ทุกอย่างตั้งแต่ทางลัดไปจนถึงการเลือกข้อความและสีของแถบสถานะสามารถเปลี่ยนแปลงได้
- รองรับการดูแบบแบ่งหน้าจอ
- แอป GUI แบบง่ายสามารถเรียกใช้ในแท็บ
- การรองรับรายการ Jump ของ Windows 7 ขึ้นไป
- สนับสนุนการปรับขนาดหน้าต่างให้ราบรื่น
- การลบรอยหยักของแบบอักษรใน Windows
- แท็บเริ่มต้นสามารถปรับแต่งทั้งหมดเพื่อเริ่มต้นในไดเรกทอรีหนึ่งๆ
- การคัดลอก/วางอัจฉริยะ
ผู้ใช้บางคนก็ยังคงสนุกกับการใช้ Console2 และ Scott Hanselman ก็ได้เขียนโพสต์บล็อกเกี่ยวกับเรื่องนี้
CM
หมายเหตุที่ส่งคือ Cmder แพ็กเกจโปรแกรมจำลองคอนโซลที่รวม ConEmu, Clink และ msysgit เอาไว้ เพื่อมอบผู้ช่วย Git Cmder จะมอบประสบการณ์ที่งดงามยิ่งขึ้นให้กับ ConEmu ตามค่าเริ่มต้นโดยใช้รูปแบบสีแบบโมโนไก
นอกจากนี้ Cmder ยังรวมประโยชน์อื่นๆ เล็กๆ น้อยๆ ไว้ด้วย เช่น การผสานรวมกับแอป GUI อย่าง Sublime Text
ช็อกโกแลต (ตัวจัดการแพ็กเกจ)
- โดยพื้นฐานแล้วจะทำงานที่บ้านสำหรับ Windows ซึ่งช่วยให้คุณสามารถดึงแอป Windows ที่ชื่นชอบได้อย่างสะดวกสบาย ขณะนี้มีแพ็กเกจประมาณ 3,000 รายการที่สามารถอัปเดตโดยใช้ ช็อกโกแลตโดยตรง
- แตกต่างจาก Nuget NuGet มีไว้สำหรับไลบรารีการพัฒนา ช็อกโกแลตเป็นเครื่องมือจัดการแพ็กเกจเครื่องแบบไบนารีและสร้างขึ้นบนโครงสร้างพื้นฐานของ NuGet
- มีบิลด์ที่ไม่มีเสียงอย่างมีประสิทธิภาพ
นอกจากนี้คุณอาจสนใจเรียนรู้เกี่ยวกับ OneGet ซึ่งเป็นเครื่องมือจัดการแพ็กเกจ..manager ของ Microsoft ซึ่งควรทำงานร่วมกับ chocolatey ใน Windows 10 ด้วย
Babun (กำหนดค่าล่วงหน้าของ Cygwin)
- Cygwin (สภาพแวดล้อมที่คล้าย Linux สำหรับ Windows) ที่ปราศจากความแปลกประหลาดแต่ก่อน การติดตั้งโดยรวมจะตรงไปตรงมามากขึ้นอย่างมากเมื่อใช้โปรแกรมติดตั้ง Babun หากคุณเชี่ยวชาญด้าน Unix และต้องการหลีกเลี่ยงการเรียนรู้เกี่ยวกับ PowerShell ก็ควรพิจารณาใช้ Cygwin/Babun
- มีผู้จัดการแพ็กเกจที่เรียกว่า
pact
(คล้ายกับbrew
เล็กน้อย) ที่คล้ายกับapt-get
ซึ่งถือเป็นเรื่องใหญ่เพราะคุณต้องเรียกใช้ตัวติดตั้ง Cygwin อีกครั้งเมื่อเพิ่มแพ็กเกจแทนที่จะเป็นเพียงแพ็กเกจ - Vim ติดตั้งล่วงหน้าและกำหนดค่าไว้แล้ว
- การรองรับแบบผสานรวมสำหรับ oh-my-zsh
- อัปเดตอัตโนมัติ