ของมันต้องมี ต้องใช้ Z shell Zsh คลูๆ บน Windows 10 + VSCode

Max Veerapat Kumchom
Grean Developers Family
4 min readAug 10, 2018

--

สวัสดีครับผมแมกซ์นะครับ วันนี้เช่นเคย มีอะไรดีๆมาแชร์ สำหรับ Zsh คงเป็นที่คุ้นเคยสำหรับผู้ใช้สาย Linux และ macOS กันเป็นอย่างดี เรียกได้ว่าถ้าใครใช้ Bash ธรรมดาเช้ยเชย 😊 แต่สำหรับผู้ใช้ Windows แล้วดูจะห่างไกล (อาจจะผมคนเดียวก็ได้) เพราะใช้ Git Bash ก็เพียงพอมาตลอด จนไปเจอว่าคนที่ใช้ macOS ทำไม command line มันถึงคล่องตัว และ มันสวยจัง ใช้โปรแกรมอะไรกัน จนมาหาๆ โอ้วเค้าใช้ zsh รวมกับพวก plugin โน้นนี่เข้าไป สวยแถมยังโคตรพาวเวอร์ฟลู 🤭

มาเริ่มกันเลยทำความเข้าใจกันก่อนเล็กน้อย สำหรับ Z shell หรือ (Zsh) เนี้ย มันคืออะไร… มันคือ shell ตัวหนึ่ง เอาไว้ให้เราสามารถใช้คำสั่งแบบ command line ซึ่งบน Linux, macOS เขาก็มีเหมือนกัน พื้นฐานที่มีติดมา กับระบบปฏิบัติการก็คือ Bash ของ Windows คือ Cmd 🤪

แล้วที่นี้ของที่มันมีมาให้ ใครๆก็รู้ว่ามันไม่คลู พื้นๆเบเบ สาวๆเห็นคงไม่กรี๊ด เหมือน IE ที่มีไว้แค่โหลด Chrome ต่อให้จะออกเวอร์ชั่นใหม่ๆมา คนก็ไม่มองน่าเศร้า ถึง Windows จะมี PowerShell มาให้ใช้แต่มันก็ยังไม่สุดอยู่ดี 😖

Zsh นั้นเป็น Unix shell ทำให้คำสั่งต่างๆ เป็นในรูปแบบของ Unix และด้วยเหตุผลเดียวกันนั้น Linux และ macOS เลยสามารถใช้ Zsh ได้เลยแค่ติดตั้งง่ายๆ ด้วยความสามารถมากมาย ทำให้ตอบโจทย์ในการใช้เขียนโปรแกรมเป็นอย่างดี ตั้งค่าให้เหมาะสมกับการใช้ตามผู้ใช้ และสิ่งที่เราต้องใช้อีกก็คือ “Oh My ZSH!” ตัวช่วยตั้งค่าและติดตั้ง Plugins และ Themes ให้กับ Zsh ของเรา 😲

สรุปนะครับ เราต้องการ Linux + zsh + Oh My Zsh แต่เราใช้ Windows ! 😡

เริ่มกันเลย ข้อแรกเราต้องการ Linux ทางออกเราคือ Windows Features ของ Windows 10 ชื่อ Windows Subsystem For Linux (WSL) ทำให้เราสามารถรัน Ubuntu บน Windows 10 แบบ Native ได้เลย ผมไม่ VM นะครับ เบาหวิวแน่นอน แถมมองเห็นไดร์บนเครื่องเรา, IP บน Network เดียวกัน 🤗

และสิ่งที่ต้องทำต่อจากนี้คือ…

1.อัพเดท Windows ของคุณซะ! 😘 เพราะความสามารถนี้มาพร้อมกับการใช้งานแบบ Stable บน Windows 10 Build 1703 ขึ้นไปนะครับ

2. เปิดใช้งาน Windows Subsystem For Linux (WSL) เข้าผ่าน Control Panel\Programs\Programs and Features >>> คลิก Turn Windows features on or off แล้วติ๊กถูกต้อง Windows Subsystem For Linux เลย 🤔

3. ต้อง Restart… ครับ เพื่อทำการเปิด Features 😍

4.เข้า Microsoft Store ครับ เราจะไปโหลด Ubuntu กัน 😎

*** สำหรับวิธีลงแบบอื่น ก็มีนะครับ สำหรับคนไม่อยากลงผ่าน Microsoft Store แต่ผมเลือกทางนี้เพราะ มันง่ายดี

วิธีอื่นเชิญทางนี้ครับ https://docs.microsoft.com/en-us/windows/wsl/install-win10 มีทางเลือก Ubuntu, OpenSUSE, SLES ให้เราเลือกลงได้เลย

5. Install Ubuntu 18.04 ไปเลยตัวนี้ใหม่สุดครับ กดไป ขนาดแค่ 214.60 MB ลงเสร็จก็ Launch ได้เลย 😝

6. หลังจากเรา Launch จะมีหน้าต่าง Ubuntu 18.04 ปรากฏ ให้เราทำการตั้งค่า username และ password สำหรับใช้ในระบบ Ubuntu 🤩

ในขั้นตอนนี้ เราก็ได้ตอบโจทย์แรกคือมี Linux ที่เป็น Ubuntu เป็นที่เรียบร้อย

7. ไม่รอช้าสั่งอัพเดทซอฟแวร์ใน Ubuntu เราให้ล่าสุดก่อน ผ่านคำสั่ง 🤨

sudo apt-get update

8. ติดตั้ง zsh ต่อเลย หลังจากนั้น เช็คว่าการติดตั้งสำเร็จ ผ่านการเรียกเช็คเวอร์ชั่น ผ่านคำสั่ง 🤤

sudo apt-get -y install zsh
zsh --version

เรียบร้อยเราตอบโจทย์อีกอัน คือมี zsh แล้ว ตั้งค่าอีกนิดหน่อย ทำให้ zsh เป็น default shell ของระบบนี้ ผ่านคำสั่ง

chsh -s /bin/zsh

9. ติดตั้ง Oh My Zsh ต่อกันเลย ผ่านคำสั่ง 🤔

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

เรียบร้อบ ถึงตรงนี้ เรามีครบแล้วครับ Ubuntu + zsh + Oh My Zsh

10. ยังไม่สวยเลยอะ ความสามารถยังไม่มา ทำการแก้ไขการตั้งค่ากันหน่อย ผ่านคำสั่ง 😄

vi ~/.zshrc
หรือ
nano ~/.zshrc

เขินจังใช้ nano แก้ไฟล์ 😊 vi หรือ vim เจอกันรอบหน้าครับ สิ่งที่เราจะแก้คือไฟล์ .zshrc ครับตรง ZSH_THEME ครับผมเลือกเป็น “agnoster” ตัวนี้เห็นใช้เยอะเลย 🙄

และในส่วนของ plugins ผมก็ลงตาม example ไปก่อน ซึ่งตรงนี้แหละครับ ความสนุกของมัน เพื่อนๆสามารถ หา themes และ plugins เจ๋งๆมาลงเอง อย่างเช่น (Autocompleted, Auto Correct, Alias) เพิ่มความสามารถให้สุดยอดไปอีก

แก้ไขเสร็จ ctrl + o (Save), ctrl + x (Exit) สำหรับ nano

11. ปิดและเปิดขึ้นมาใหม่ ให้มันอ่านการตั้งค่าใหม่ เปิดด้วยการค้นหา Ubuntu 18.04 ผ่าน Start Menu เรานั้นแหละ 🤔

อ้าวทำไมมันเงิบแบบนี้ Theme อะไรเนี้ยเลือกมาอย่างดี ทำไมเป็นแบบนั้น

12. ลง Fonts ก่อนสิจะได้แสดงผลถูกต้อง Powerline fonts 🙂

sudo apt-get install fonts-powerline

วิธีลงตามข้างบน ตั้งค่าให้เรียบร้อยผมเลือกใช้ฟอร์น Fira Code ส่วนข้างล่างทำให้ wsl.exe ของเรามีสีสวยๆนะครับ ไม่ทำก็ได้เพราะเราจะใช้ผ่าน VSCode

13. แต่ใช้แยกกับ Editor มันไม่แจ่มเลย ต้องสลับจอไปมา นำมันมาใช้กับ VSCode ก่อน และก็สวย เพิ่มเติมด้วย Themes ของ VSCode ได้อีกด้วย 😘

ไปที่การตั้งค่า File >>> Perferences >>> Settings 😁

"terminal.integrated.shell.windows": "C:\\Windows\\System32\\wsl.exe"

เป็นการตั้งค่าให้ VSCode ของเราใช้ wsl.exe เป็น Termimal หลักนะครับ สังเกตว่า Path ของ Termimal เราจะเปิดขึ้นมาตามที่ VSCode ของเราเปิด Project อยู่

cd /mnt/c
ในที่นี้หมายถึงเรามาถึงไดร์ C ของคอมเรา

Path /mnt/ นั้นเป็นคล้ายเราเปิด My Computer ขึ้นมา ที่จะมองเห็นทุกๆไดร์ของเรา ทำให้เราสามารถเข้าถึงไฟล์ทุกๆไฟล์ในเครื่องเราได้แล้ว 😯

😻 ทริปเล็กๆน้อย จากที่ผมลองเล่น 🤯

notepad.exe
go.exe run main.go
cmd.exe
  • และ Oh My Zsh ช้าเวลาใช้งานผ่าน wsl แต่ prezto ลื่นไหลกว่า https://github.com/sorin-ionescu/prezto
  • Theme Pure ลื่นไหลมากๆ ไม่กระตุก
  • path ของ ubuntu นั้นอยู่ใน
C:\Users\<username>\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState

ก็เรียบร้อยแล้วนะครับ สำหรับวิธีใช้ zsh เท่ๆคลูๆ แบบเห้ย Windows ตูก็ทำได้นะ หวังว่าจะเป็นประโยชน์กับเพื่อนๆ ผมก็เพิ่งมาเล่นวันนี้เหมือนกัน เดี๋ยวคราวหน้ามี Plugins อะไรดีๆ มาแชร์กันอีกครั้ง เพราะ zsh เนี้ยยังเล่นอะไรได้อีกเยอะเลย 🧐 ขอบคุณทุกท่านที่แวะเข้ามาอ่านนะครับ

--

--