การทำงานอัตโนมัติของ WSL2 อย่างสมบูรณ์ด้วย Zsh และ Oh My Zsh บน Windows

การปรับปรุงครั้งล่าสุด: 26 กุมภาพันธ์จาก 2026
  • WSL2 ช่วยให้คุณสามารถใช้งานระบบ Linux อย่างสมบูรณ์ภายใน Windows และผสานรวมเข้ากับ Zsh เพื่อสร้างเทอร์มินัลที่ทรงพลังและทันสมัย
  • Windows Terminal, Nerd Fonts และ Oh My Zsh ช่วยเพิ่มประสบการณ์การใช้งานทั้งด้านภาพและฟังก์ชันการทำงานด้วยธีม ไอคอน ปลั๊กอิน และชื่อย่อแบบกำหนดเอง
  • สคริปต์ Bootstrap, ไฟล์การตั้งค่า และ Dev Containers ช่วยให้การทำงานอัตโนมัติและการควบคุมเวอร์ชันของสภาพแวดล้อมสำหรับทีมพัฒนาทั้งหมดเป็นเรื่องง่าย
  • การผสานรวมเข้ากับ VS Code และเครื่องมือต่างๆ เช่น NVM, Conda, BAT, LSD หรือ FZF จะสร้างเวิร์กโฟลว์ที่มั่นคงและสามารถทำซ้ำได้

การทำงานอัตโนมัติของ Zsh บน WSL2 บน Windows

หากคุณพัฒนาโปรแกรมด้วยNode.js หรือ Python บน Windows และต้องการความสะดวกสบายของ Linuxโดยไม่ต้องละทิ้งเกม เครื่องมือ หรือขั้นตอนการทำงานที่คุณใช้เป็นประจำ WSL2 และ Zsh อาจเป็นสิ่งที่คุณกำลังมองหาอยู่ การมีระบบปฏิบัติการ Linux ที่แท้จริง พร้อมเทอร์มินัลที่ได้รับการปรับปรุง และทุกอย่างทำงานโดยอัตโนมัติอย่างสมบูรณ์แบบ ทำให้การตั้งค่าสภาพแวดล้อมการพัฒนาไม่ใช่เรื่องยากลำบากอีกต่อไป ต้องเสียเวลาหลายชั่วโมงในการคัดลอกคำสั่ง

ในคู่มือนี้ คุณจะได้เรียนรู้ขั้นตอนอย่างละเอียดและรอบคอบในการสร้างระบบอัตโนมัติสำหรับสภาพแวดล้อม WSL2 โดยใช้ Zsh และ Oh My Zshวิธีการผสานรวมเข้ากับ Windows Terminal และ Visual Studio Code และวิธีการจัดแพ็กเกจเป็นสคริปต์และไฟล์การตั้งค่า เพื่อให้คุณ (หรือใครก็ตามในทีมของคุณ) สามารถจำลองการตั้งค่าเดียวกันได้ภายในไม่กี่นาที แนวคิดคือเพื่อให้คุณใช้เวลาน้อยลงในการแก้ไขปัญหาการตั้งค่า และใช้เวลามากขึ้นในการสนุกกับการเขียนโค้ด

WSL2 คืออะไร และทำไมจึงคุ้มค่าที่จะใช้งานร่วมกับ Zsh?

WSL (Windows Subsystem for Linux) คือเลเยอร์ที่ช่วยให้คุณสามารถใช้งาน Linux ภายใน Windows ได้โดยไม่ต้องใช้เครื่องเสมือนหรือการบูตแบบคู่ที่ยุ่งยาก และด้วย WSL2 ไมโครซอฟต์ได้พัฒนาไปอีกขั้น: มันสามารถรันเคอร์เนล Linux ได้อย่างสมบูรณ์โดยใช้ Hyper-Vซึ่งใช้ทรัพยากรน้อยมากและมีประสิทธิภาพใกล้เคียงกับการติดตั้งแบบดั้งเดิม

ด้วยเหตุนี้ คุณจึงสามารถติดตั้งระบบปฏิบัติการ Linux เช่น Ubuntu, Debian, Kali หรือ Alpineได้โดยตรงจาก Microsoft Store หรือใช้คำสั่ง PowerShell และเพลิดเพลินไปกับระบบไฟล์ Linux, แพ็กเกจ apt, เครื่องมือพัฒนา และแน่นอน เชลล์ขั้นสูงอย่างZshพร้อมOh My Zshและปลั๊กอินต่างๆ

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

ข้อดีของการใช้งาน WSL2 ร่วมกับ Zsh คือZsh มอบประสบการณ์การใช้งานเทอร์มินัลที่เหนือกว่า bash แบบดั้งเดิมอย่างมาก ไม่ว่าจะเป็นการเติมข้อความอัตโนมัติขั้นสูง คำแนะนำ ธีม การผสานรวมกับ Git ปลั๊กอิน NVM ชื่อย่อ การเน้นไวยากรณ์ และอื่นๆ อีกมากมาย ซึ่งเมื่อคุณได้ลองใช้แล้ว คุณจะไม่อยากเลิกใช้เลย

สภาพแวดล้อม WSL2 และ Zsh แบบกำหนดเอง

ติดตั้งและเตรียมใช้งาน WSL2 บน Windows 10 หรือ 11

ก่อนที่เราจะเจาะลึกไปถึงการปรับแต่งระบบอัตโนมัติคุณจะต้องเปิดใช้งาน WSL2 และติดตั้งระบบปฏิบัติการ Linuxก่อน กระบวนการนี้ง่ายกว่าในเวอร์ชันก่อนๆ มาก และเกือบทุกอย่างสามารถทำได้ด้วยคำสั่งเดียว

ในWindows 10 รุ่นล่าสุด (เวอร์ชัน 2004 หรือสูงกว่า) หรือ Windows 11เพียงแค่เปิด PowerShell ในฐานะผู้ดูแลระบบ (ค้นหาในเมนู Start คลิกขวา เลือก “Run as administrator”) แล้วเริ่มการทำงาน:

wsl --install

คำสั่งนี้จะเปิดใช้งานคุณสมบัติเสริมที่จำเป็นดาวน์โหลดเคอร์เนล Linuxตั้งค่าWSL2 เป็นเวอร์ชันเริ่มต้น และติดตั้ง Ubuntu เป็นระบบปฏิบัติการ เริ่มต้นเมื่อกระบวนการเสร็จสิ้น ระบบจะแจ้งให้คุณรีสตาร์ทคอมพิวเตอร์เพื่อใช้การเปลี่ยนแปลง

หากคุณต้องการใช้ระบบปฏิบัติการอื่น คุณสามารถระบุได้ในคำสั่ง เช่น หากต้องการติดตั้ง Debian:

wsl --install -d Debian

คุณสามารถ ตรวจสอบสถานะของระบบปฏิบัติการที่ติดตั้งและเวอร์ชันของระบบปฏิบัติการเหล่านั้นได้ตลอดเวลาด้วยคำสั่ง:

wsl -l -v

และหากคุณต้องการเปลี่ยนดิสโทร หรือลบดิสโทรที่คุณไม่ได้ใช้งานแล้ว คุณก็มีตัวเลือกต่างๆ เช่นดูรายชื่อดิสโทรที่มีให้เลือกทางออนไลน์หรือลบการติดตั้งเฉพาะเจาะจง:

wsl -l -o
wsl --unregister Ubuntu-20.04

เมื่อคุณเริ่มใช้งานการแจกจ่ายครั้งแรก ตัวช่วยสร้างแบบข้อความจะปรากฏขึ้นเพื่อขอให้คุณดำเนินการดังต่อไปนี้ สร้างผู้ใช้ UNIX และรหัสผ่านสำหรับผู้ใช้นั้นนั่นจะเป็นผู้ใช้หลักของคุณใน WSL โดยปกติแล้วพวกเขาจะมีโฟลเดอร์ HOME อยู่ /home/tuusuarioและที่สำคัญคือคุณควรจดชื่อผู้ใช้และรหัสผ่านของคุณไว้ เพราะคุณจะต้องใช้ข้อมูลเหล่านั้นสำหรับงานด้านการบริหารจัดการ sudo.

ตั้งค่า Windows Terminal ให้ทำงานร่วมกับ WSL2

เมื่อคุณติดตั้งและใช้งาน WSL2 เรียบร้อยแล้ว ขั้นตอนต่อไปที่สมเหตุสมผลคือการเพิ่มประสิทธิภาพประสบการณ์การใช้งานบรรทัดคำสั่งใน Windows โดยใช้ Windows Terminalแอปพลิเคชันนี้รองรับแท็บ แผง ธีม ความโปร่งใส โปรไฟล์เฉพาะระบบปฏิบัติการ ฟอนต์ไอคอน และอื่นๆ อีกมากมาย

ติดตั้ง Windows Terminal จากMicrosoft Storeและเมื่อคุณเปิดใช้งาน คุณจะเห็นว่าโดยปกติแล้วจะแสดงโปรไฟล์ PowerShell หรือ CMD เป็นค่าเริ่มต้น จากลูกศรดรอปดาวน์ของแท็บ คุณสามารถเลือกการแจกจ่าย WSL ของคุณ (Ubuntu, Debian เป็นต้น) และเปิดในแท็บใหม่ได้

เพื่อให้ Ubuntu หรือดิสทริบิวชันใดก็ตามที่คุณใช้ใน WSL จะเปิดขึ้นมาโดยค่าเริ่มต้นเสมอคุณสามารถแก้ไขการตั้งค่าได้ Windows Terminal จะบันทึกการตั้งค่าไว้ในไฟล์ JSON ซึ่งสามารถเข้าถึงได้จากเมนูการตั้งค่า ค้นหาช่องดังกล่าว "defaultProfile" และวาง GUID โปรไฟล์ Ubuntu (คุณจะเห็นมันในรายการ) profiles) เป็นค่าหนึ่ง

นอกจากนั้น คุณยังสามารถ ปรับแต่งธีมสีและเพิ่มความโปร่งใสของอะคริลิก เพื่อให้ดูทันสมัยยิ่งขึ้น ตัวอย่างเช่น ในส่วนของ "defaults" สำหรับโปรไฟล์ คุณสามารถกำหนดได้ดังนี้:

  NTFS PLUS บน Linux และระบบไฟล์สำคัญอื่นๆ

"defaults": {
"useAcrylic": true,
"acrylicOpacity": 0.4
}

หากคุณต้องการเพิ่มสีสันให้มากขึ้น คุณสามารถเพิ่ม... แผนการที่กำหนดเอง ในส่วน "schemes" จากไฟล์ JSON โดยกำหนดสีพื้นหลัง สีตัวอักษร และจานสีพื้นฐานของเทอร์มินัล ตัวอย่างทั่วไปคือธีม Solarized ซึ่งคุณสามารถเชื่อมโยงโปรไฟล์ WSL ได้โดยใช้คุณสมบัติ "colorScheme" : "wsl" ในโปรไฟล์ที่เกี่ยวข้อง

Windows Terminal พร้อม WSL2 และ Zsh

ติดตั้งและใช้งาน Zsh + Oh My Zsh ใน WSL2 แบบอัตโนมัติ

เมื่อวางรากฐาน WSL และ Windows Terminal ไว้แล้ว ก็ถึงเวลาเพิ่มประสิทธิภาพให้กับเชลล์อย่างจริงจังZsh เป็นทางเลือกที่มีประสิทธิภาพมากกว่า bash มากและเมื่อรวมกับOh My Zsh แล้วมันจะกลายเป็นเครื่องมือสารพัดประโยชน์สำหรับการทำงานกับ Git, Node, Python และแทบทุกอย่างในเทอร์มินัล

บนระบบปฏิบัติการ WSL ของคุณ (เช่น Ubuntu) เริ่มต้นด้วยการอัปเดตที่เก็บซอฟต์แวร์และติดตั้งแพ็กเกจที่จำเป็นขั้นต่ำ :

sudo apt update
sudo apt install git zsh -y

จากนั้นติดตั้ง Oh My Zsh โดยใช้สคริปต์อย่างเป็นทางการ โดยใช้curl เพื่อดาวน์โหลดตัวติดตั้งและเรียกใช้งานโดยตรง:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

ระหว่างการติดตั้ง คุณจะถูกถามว่าต้องการตั้งค่า Zsh เป็นเชลล์เริ่มต้นหรือไม่ ให้ตอบว่าใช่ หากคุณต้องการตั้งค่าด้วยตนเองในภายหลัง คุณสามารถใช้คำสั่งต่อไปนี้:

chsh -s /bin/zsh

เมื่อเสร็จสิ้นแล้ว ไฟล์การกำหนดค่าจะถูกสร้างขึ้นในไดเร็กทอรี HOME ของคุณ โดยมีชื่อว่า ~/.zshrcทุกอย่างถูกควบคุม: ปลั๊กอิน ธีม ชื่อแทน สภาพแวดล้อม เส้นทาง...

ธีมยอดนิยมมาก ๆ สำหรับ Oh My Zsh คือ แอกนอสเตอร์โดยมุ่งเน้นที่การแสดงข้อมูล Git อย่างชัดเจน หากต้องการเปิดใช้งาน ให้แก้ไขไฟล์ ~/.zshrc โดยใช้โปรแกรมแก้ไขที่คุณชื่นชอบ (ตัวอย่างเช่น) vi ~/.zshrc o nano ~/.zshrc) และตรวจสอบให้แน่ใจว่าหัวข้ออีเมลมีลักษณะดังนี้:

ZSH_THEME="agnoster"

นอกจากนี้ ยังแนะนำให้ดำเนินการดังต่อไปนี้ทั้งใน bash และ Zsh: บังคับให้เชลล์เริ่มต้นในไดเร็กทอรี HOME ของ Linux (ไม่ใช่ในโฟลเดอร์ผู้ใช้ Windows) เนื่องจาก WSL ทำงานได้ดีกว่ามากภายในระบบไฟล์ดั้งเดิมของดิสโทร เพียงเพิ่มข้อความต่อไปนี้ต่อท้าย ~/.zshrc ประโยคง่ายๆ:

cd ~

Nerd Fonts และ Powerline: ไอคอนและสุนทรียภาพในเทอร์มินัล

เพื่อให้ธีม Zsh และ Oh My Zsh แสดงผลได้อย่างถูกต้องคุณต้องใช้ฟอนต์ที่รองรับไอคอนและสัญลักษณ์พิเศษ (ที่เรียกว่าฟอนต์ Nerd หรือฟอนต์ Powerline) มิเช่นนั้น คุณจะเห็นสี่เหลี่ยมแปลกๆ หรือตัวอักษรที่ผิดเพี้ยนในข้อความแจ้งเตือนขั้นสูง

คุณมีสองตัวเลือกยอดนิยม: ติดตั้งแพ็กเกจฟอนต์ Powerline แบบคลาสสิกหรือเลือกใช้ฟอนต์ Nerd Font เฉพาะ เช่นMesloLGS NFหรือHack Nerd Fontวิธีที่รวดเร็วคือการโคลนที่เก็บฟอนต์ Powerline จาก PowerShell ใน Windows โดยเริ่มจากการไปยังโฟลเดอร์ว่างก่อน:

git clone https://github.com/powerline/fonts.git
cd fonts
.\install.ps1

สคริปต์การติดตั้งจะเพิ่มฟอนต์จำนวนหนึ่งลงในระบบโดยอัตโนมัติ จากนั้น ในการตั้งค่า Windows Terminal ให้เลือกฟอนต์ที่ติดตั้งไว้สำหรับโปรไฟล์ WSL ตัวอย่างเช่น:

"fontFace": "DejaVu Sans Mono for Powerline"

หากคุณต้องการแบบอักษรที่ทันสมัยยิ่งขึ้น คุณสามารถดาวน์โหลดแบบอักษร Nerd Font เฉพาะ (เช่นMesloLGS NF Regular.ttf ) จากเว็บไซต์ Nerd Fonts ติดตั้งบน Windows โดยการดับเบิ้ลคลิกและเลือก "ติดตั้ง" จากนั้นเลือกแบบอักษรนั้นเป็นแบบอักษรของคุณในโปรไฟล์ Windows Terminal

หากคุณใช้ธีมขั้นสูงอย่างPowerlevel10kขอแนะนำอย่างยิ่งให้ใช้ Nerd Fonts ในการติดตั้งธีมนี้ คุณสามารถทำตามขั้นตอนต่อไปนี้ในบัญชีผู้ใช้ WSL ของคุณ:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc

หลังจากโหลด Zsh ใหม่ (zsh หรือปิดและเปิดเทอร์มินัลใหม่ ระบบจะเรียกใช้ตัวช่วยแนะนำ (p10k configure) เพื่อปรับแต่งข้อความแจ้งเตือนให้ตรงตามความต้องการของคุณ โดยการสร้างไฟล์ ~/.p10k.zsh พร้อมการตั้งค่าทั้งหมด

ระบบอัตโนมัติขั้นสูงของ WSL2 และ Zsh

ปลั๊กอินที่มีประโยชน์สำหรับ Zsh: เพิ่มประสิทธิภาพการทำงานได้ทันที

ข้อดีอย่างหนึ่งของ Oh My Zsh คือช่วยให้คุณเพิ่มปลั๊กอินเพื่อเพิ่มประสิทธิภาพการทำงานได้อย่างง่ายดาย ปลั๊กอินที่ใช้กันทั่วไปในสภาพแวดล้อมการพัฒนา WSL2 มีรายชื่ออยู่ด้านล่าง

ปลั๊กอินGitเปิดใช้งานโดยค่าเริ่มต้น และจะแสดงสาขาที่คุณอยู่ การเปลี่ยนแปลงที่รอดำเนินการ การเปลี่ยนแปลงที่ยังไม่ได้คอมมิต และอื่นๆ อีกมากมาย ทั้งหมดนี้แสดงโดยตรงในพรอมต์ เหมาะอย่างยิ่งสำหรับการติดตามสถานะของที่เก็บข้อมูลของคุณในขณะที่คุณกำลังเรียกดู

อีกหนึ่งโปรแกรมคลาสสิกคือzsh-autosuggestionsซึ่งจะแนะนำคำสั่งเป็นสีเทาตามประวัติการใช้งานของคุณ ทำให้คุณสามารถยอมรับคำแนะนำได้ด้วยการกดปุ่มเพียงครั้งเดียว และหลีกเลี่ยงการพิมพ์ชุดคำสั่งยาวๆ ซ้ำๆวิธีการติดตั้ง:

git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions

ขอแนะนำอย่างยิ่งให้ใช้zsh-syntax-highlightingซึ่งจะระบายสีคำสั่งตามความถูกต้องของการสะกดคำ การมีอยู่ของไฟล์ที่คุณชี้ไป ฯลฯ ช่วยให้คุณตรวจจับข้อผิดพลาดทางไวยากรณ์ก่อนกด Enterได้

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting

เปิดใช้งานปลั๊กอินเหล่านี้ และเพิ่มข้อความต่อไปนี้ต่อท้ายไฟล์ของคุณ ~/.zshrc บางอย่างเช่น:

source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

อีกหนึ่งปลั๊กอินเสริมที่มีประโยชน์มากคือOh My Zsh sudo plugin ซึ่งช่วยให้คุณสามารถกดปุ่มคีย์ผสมเพื่อ เพิ่ม "sudo" ก่อนคำสั่งสุดท้ายที่เรียกใช้ได้อย่างรวดเร็วตัวอย่างเช่นคุณสามารถดาวน์โหลดได้ที่นี่:

mkdir -p ~/.zsh/sudo-plugin && cd ~/.zsh/sudo-plugin
wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/plugins/sudo/sudo.plugin.zsh

และเปิดใช้งานโดยการเพิ่มลงในของคุณ ~/.zshrc:

source ~/.zsh/sudo-plugin/sudo.plugin.zsh

เครื่องมือบรรทัดคำสั่งขั้นสูง (BAT, LSD, FZF, HTTPie)

เนื่องจากคุณกำลังปรับแต่งเทอร์มินัลอยู่แล้ว การติดตั้งโปรแกรมเสริมบางอย่างก็คุ้มค่าที่จะทำ ทางเลือกที่ทันสมัยแทนสาธารณูปโภคแบบดั้งเดิม ในขณะที่ cat o lsรวมถึงเครื่องมือค้นหาและไคลเอนต์ HTTP ที่ใช้งานง่าย

  วิธีหยุดไม่ให้ Spotify ทำงานเฉพาะในพื้นหลังบนพีซีของคุณ

ค้างคาว นี่คือเวอร์ชัน "โปร" ของ catมี การเน้นไวยากรณ์, การกำหนดหมายเลข, การผสานรวมกับ Git…เหมาะอย่างยิ่งสำหรับการอ่านไฟล์โค้ดโดยตรงในเทอร์มินัล คุณสามารถติดตั้งได้โดยดาวน์โหลดแพ็กเกจที่เกี่ยวข้องจาก GitHub (และปรับให้เข้ากับสถาปัตยกรรมของคุณ):

wget https://github.com/sharkdp/bat/releases/download/v0.20.0/bat_0.20.0_amd64.deb
sudo dpkg -i bat_0.20.0_amd64.deb

เพื่อให้สามารถผสานรวมเข้ากับขั้นตอนการทำงานของคุณได้ คุณสามารถสร้างชื่อเรียกแทนได้ใน ~/.zshrc ดังนั้นเมื่อเขียน cat จริงๆ แล้วผมเรียกใช้ BAT แต่ยังคงใช้ทางลัดไปยังยูทิลิตี้แบบดั้งเดิมอยู่:

alias cat='/bin/bat'
alias catn='/bin/cat'
alias catnl='/bin/bat --paging=never'

สำหรับส่วนของตน LSD แทนที่ ls กับ สีสัน ไอคอน และผลลัพธ์ที่อ่านง่ายขึ้นมากวิธีการติดตั้งคล้ายกับ BAT:

wget https://github.com/Peltoche/lsd/releases/download/0.21.0/lsd_0.21.0_amd64.deb
sudo dpkg -i lsd_0.21.0_amd64.deb

จากนั้นคุณสามารถกำหนดชื่อแทนทั่วไปใหม่เพื่อจัดเรียงไดเร็กทอรี แสดงรายละเอียด ซ่อนไดเร็กทอรี ฯลฯ ตัวอย่างเช่น:

alias ll='lsd -lh --group-dirs=first'
alias la='lsd -a --group-dirs=first'
alias l='lsd --group-dirs=first'
alias lla='lsd -lha --group-dirs=first'
alias ls='lsd --group-dirs=first'

สำหรับการค้นหาแบบโต้ตอบภายในเทอร์มินัลFZFแทบจะขาดไม่ได้เลย: มันจะเรียกใช้เครื่องมือค้นหาแบบเพิ่มทีละน้อยซึ่งผสานรวมกับประวัติการค้นหา เส้นทาง และคำสั่งอื่นๆ การติดตั้งทำได้โดยการโคลนที่เก็บข้อมูลของมันและเรียกใช้สคริปต์การติดตั้ง:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

โปรแกรมติดตั้งจะเพิ่มเข้าไปในส่วนของคุณ ~/.zshrc el source สอดคล้อง (เช่น) [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh) เพื่อให้ทุกอย่างพร้อมใช้งาน สามารถเปิดใช้งานได้ด้วยปุ่มลัด เช่น CTRL + T.

สุดท้ายนี้ หากคุณทำงานเกี่ยวกับ API HTTPie มันมอบประสบการณ์ที่สะดวกสบายกว่ามาก curlมี ผลลัพธ์ที่มีสีสันและไวยากรณ์ที่อ่านง่ายมากคุณสามารถติดตั้งได้โดยการเพิ่ม repository ของมันแล้วใช้คำสั่ง... apt:

curl -SsL https://packages.httpie.io/deb/KEY.gpg | apt-key add -
curl -SsL -o /etc/apt/sources.list.d/httpie.list https://packages.httpie.io/deb/httpie.list
apt update
apt install httpie
apt upgrade httpie

Node.js, NVM, Python และเครื่องมืออื่นๆ ใน WSL2

หนึ่งในเหตุผลหลักของการจัดตั้งระบบนี้คือ เพื่อให้มีสภาพแวดล้อมที่แข็งแกร่งสำหรับ Node.js, Python และเทคโนโลยีอื่นๆพร้อมระบบควบคุมเวอร์ชันที่ง่ายและสามารถทำซ้ำได้ นี่คือจุดที่NVMสำหรับ Node และเครื่องมืออย่าง Conda สำหรับ Python เข้ามามีบทบาท

ในกรณีของ Node.js วิธีแก้ปัญหาที่ดีที่สุดคือการใช้NVM (Node Version Manager)ซึ่งช่วยให้คุณติดตั้งหลายเวอร์ชันและสลับไปมาระหว่างเวอร์ชันต่างๆ ได้ด้วยคำสั่งเพียงไม่กี่คำสั่ง คุณสามารถติดตั้ง NVM จากเซิร์ฟเวอร์ WSL2 ของคุณได้โดยใช้คำสั่งต่อไปนี้:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | zsh

ขั้นตอนต่อไป ติดตั้ง Node (เวอร์ชันเสถียรปัจจุบันหรือเวอร์ชันเฉพาะ):

nvm install node
nvm install 18.17.0

หากคุณต้องการตรวจสอบว่าทุกอย่างเรียบร้อยดี คุณสามารถใช้คำสั่งตรวจสอบเวอร์ชันทั่วไปได้ ซึ่งควรส่งคืนค่าที่ถูกต้อง:

node --version
npm --version

เมื่อใช้ Zsh โปรแกรม NVM บางครั้งจะไม่โหลดโดยอัตโนมัติเมื่อคุณเปิดเทอร์มินัล คุณสามารถแก้ไขปัญหานี้ได้สองวิธี: เพิ่มตัวแปรที่จำเป็นด้วยตนเองไปยัง ~/.zshrc หรือใช้ปลั๊กอิน zsh-nvm จาก Oh My Zsh. คู่มือการใช้งานอาจมีลักษณะดังนี้:

export NVM_DIR=~/.nvm
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

หากคุณเลือกปลั๊กอิน ให้เปิด ~/.zshrcค้นหาบรรทัดปลั๊กอิน (ตัวอย่างเช่น) plugins=(git)) และเพิ่ม zsh-nvm เพิ่มลงในรายการ หลังจากบันทึกและรีสตาร์ทเทอร์มินัลแล้ว NVM ควรจะโหลดได้โดยไม่มีปัญหา

สำหรับ Python ตัวเลือกที่มีประสิทธิภาพมากคือConda (หรือ Miniconda) ซึ่งช่วยให้คุณสร้างสภาพแวดล้อมที่แยกต่างหาก จัดการการพึ่งพา และจัดการเวอร์ชัน Pythonโดยไม่ต้องเข้าไปยุ่งเกี่ยวกับระบบโดยรวม มีสคริปต์อัตโนมัติที่ติดตั้ง Conda ไดรเวอร์ GPU และส่วนประกอบอื่นๆ ภายในที่เก็บการกำหนดค่า WSL ได้อย่างแนบเนียน

กำหนดค่าโดยอัตโนมัติด้วยสคริปต์ ไฟล์การตั้งค่า และคอนเทนเนอร์สำหรับการพัฒนา

ที่ผ่านมาเราได้เห็นวิธีการตั้งค่าทุกอย่างด้วยตนเองแล้ว แต่กุญแจสำคัญของสภาพแวดล้อมการทำงานที่ดี โดยเฉพาะอย่างยิ่งในทีม คือการทำให้กระบวนการเริ่มต้นใช้งานและการกำหนดเวอร์ชันของการตั้งค่าเป็นไปโดยอัตโนมัติ WSL2 เหมาะสำหรับสิ่งนี้เพราะช่วยให้คุณสามารถรวมทุกอย่างตั้งแต่การติดตั้งไปจนถึงการปรับแต่งเชลล์ไว้ในแพ็กเกจเดียว

วิธีการที่พบได้บ่อยมากคือการมี สคริปต์บูตสแตรป (ตัวอย่างเช่น install.sh o setup.sh) ในคลังเก็บข้อมูลของทีมที่ดำเนินการตามลำดับงานต่างๆ เช่น:

  • ตรวจสอบข้อกำหนดเบื้องต้น (เวอร์ชัน Windows, WSL2 ที่เปิดใช้งานอยู่, การมี Docker Desktop หากจำเป็น ฯลฯ)
  • ติดตั้งหรืออัปเดตดิสโทร WSLแพ็กเกจพื้นฐาน เช่น Zsh, Oh My Zsh, NVM, Conda เป็นต้น
  • คัดลอกและใช้งานไฟล์ dotfiles (.zshrc, .bashrc, .gitconfig(ไฟล์ธีม, ชื่อเรียกแทนที่ใช้ร่วมกัน…)
  • ติดตั้งเครื่องมือ Project Stack (Node, Python, ฐานข้อมูล, เครื่องมือ CLI เฉพาะ)
  • กำหนดค่าสคริปต์การตรวจสอบความถูกต้อง ในขณะที่ make check-env เพื่อตรวจสอบว่าทุกอย่างถูกต้องแล้ว

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

อีกชั้นหนึ่งที่มีประสิทธิภาพสูงมากคือ VS Code Dev Containers (.devcontainerประกอบด้วยคำอธิบายเชิงประกาศของสภาพแวดล้อม (เช่น Dockerfile, การกำหนดค่า VS Code, ส่วนขยาย, พอร์ต ฯลฯ) ที่อนุญาตให้... แต่ละโปรเจ็กต์จะมีคอนเทนเนอร์สำหรับการพัฒนาเป็นของตัวเองเมื่อใช้งานร่วมกับ WSL2 จะต้องอาศัยส่วนขยายนี้ รีโมท – WSLคุณสามารถเปิดที่เก็บข้อมูลในคอนเทนเนอร์ Linux ภายใน WSL และตรวจสอบให้แน่ใจว่าทุกคนมีเวอร์ชันและเครื่องมือเดียวกัน

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

  วิธีพิมพ์สัญลักษณ์พิเศษใน Windows 11

การผสานรวม WSL2 และ Zsh เข้ากับ Visual Studio Code

ประสบการณ์จะดียิ่งขึ้นไปอีกหากคุณผสานรวมสภาพแวดล้อมทั้งหมดนี้เข้ากับโปรแกรมแก้ไขข้อความที่มีน้ำหนักเบาแต่ทรงประสิทธิภาพอย่างVisual Studio Codeแนวคิดก็คือให้VS Code ทำงานโดยตรงกับระบบไฟล์ของ WSLเพื่อหลีกเลี่ยงปัญหาด้านประสิทธิภาพและสิทธิ์การเข้าถึง

ขั้นแรก ติดตั้ง VS Code บน Windows จากเว็บไซต์อย่างเป็นทางการ จากนั้น ภายในตัวแก้ไขโค้ด ให้เปิดแท็บส่วนขยาย (ทางลัดCtrl + Shift + X ) และค้นหาและติดตั้ง ส่วนขยาย "Remote - WSL"ส่วนขยายนี้จะช่วยให้คุณสามารถเปิดโฟลเดอร์และโปรเจ็กต์ที่อยู่ในระบบปฏิบัติการ Linux ของคุณ โดยที่ตรรกะทั้งหมดทำงานอยู่ภายใน WSL

เมื่อติดตั้งเสร็จแล้ว คุณสามารถเรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล Ubuntu ของคุณได้:

code .

การทำเช่นนี้จะเปิด VS Code ขึ้นมา โดยเชื่อมต่อกับสภาพแวดล้อม WSL และเข้าถึงเครื่องมือที่คุณติดตั้งไว้ได้อย่างเต็มที่ เพื่อให้การทำงานร่วมกันทางด้านภาพสมบูรณ์ยิ่งขึ้น คุณสามารถกำหนดค่าเทอร์มินัลของ VS Codeให้ใช้ฟอนต์ Nerd Font เดียวกันกับที่คุณเลือกไว้ใน Windows Terminal เพื่อให้ไอคอนดูสวยงามเช่นกัน

{
"terminal.integrated.fontFamily": "DejaVu Sans Mono for Powerline"
}

ในไฟล์ settings.json ใน VS Code คุณยังสามารถตั้งค่าเทอร์มินัล Windows เริ่มต้นให้เป็น Ubuntu ใน WSL ได้ โดยการกำหนดค่าโปรไฟล์ดังนี้:

"terminal.integrated.profiles.windows": {
"Ubuntu (WSL)": {
"path": "C:\\Windows\\System32\\wsl.exe",
"args": ["-d", "Ubuntu"]
}
},
"terminal.integrated.defaultProfile.windows": "Ubuntu (WSL)"

และในขณะเดียวกัน คุณสามารถใช้โอกาสนี้เปิดใช้งานการจัดรูปแบบอัตโนมัติเมื่อบันทึก การระบายสีวงเล็บและการปรับปรุงเล็กๆ น้อยๆ อื่นๆ ที่จะทำให้การใช้งานโปรแกรมแก้ไขข้อความในชีวิตประจำวันสนุกสนานยิ่งขึ้น

สคริปต์อัตโนมัติและคลังเก็บไฟล์การกำหนดค่า WSL2 ที่สมบูรณ์

แม้ว่าคุณจะสามารถสร้างโครงสร้างพื้นฐานการเขียนสคริปต์ของคุณเองได้ แต่คุณก็ยังสามารถพึ่งพาคลังเก็บซอฟต์แวร์สำเร็จรูปที่ช่วยทำให้งานส่วนใหญ่เป็นไปโดยอัตโนมัติได้ คลังเก็บซอฟต์แวร์เหล่านี้บางแห่งมีคู่มือ Linux สคริปต์สำหรับการติดตั้งยูทิลิตี้เทอร์มินัล (Oh My Zsh ปลั๊กอิน ธีม) Conda ไดรเวอร์ GPU และส่วนประกอบที่จำเป็นอื่นๆ สำหรับสภาพแวดล้อมด้านวิทยาศาสตร์ข้อมูลหรือการพัฒนาเว็บ

แนวคิดเบื้องหลังที่เก็บซอฟต์แวร์เหล่านี้ชัดเจน: ด้วยคำสั่งเดียว คุณสามารถเรียกใช้สคริปต์ Bashที่อัปเดตดิสโทร ติดตั้ง curl และ Node.js เมื่อจำเป็น ดูแล NVM ดาวน์โหลดฟอนต์เช่น Nerd Fonts กำหนดค่า Zsh ด้วยธีมและชุดปลั๊กอินและนามแฝงที่เหมาะสม และทำให้เทอร์มินัลของคุณพร้อมใช้งาน

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

ในบางกรณี พวกเขาจะขอให้คุณทำ เลือกเวอร์ชันเฉพาะของเครื่องมือ เช่น BAT หรือ LSD (ตัวอย่างเช่น bat_0.25.0_amd64.deb o lsd_1.1.5_amd64.debซึ่งขึ้นอยู่กับทั้งเวอร์ชันที่มีอยู่บน GitHub และสถาปัตยกรรมของเครื่องของคุณ (โดยทั่วไปในปัจจุบันคือ...) amd64โปรดเลือกตัวเลือกที่ถูกต้องเพื่อหลีกเลี่ยงข้อผิดพลาดเกี่ยวกับแพ็กเกจที่ไม่เข้ากัน

ผลลัพธ์ของสคริปต์ประเภทนี้คือสภาพแวดล้อมที่ Zsh มีไฟล์อยู่แล้ว .zshrc สมบูรณ์มากด้วยธีม ปลั๊กอิน ชื่อย่อสำหรับ cat/ls การผสานรวม Gitmoji สำหรับการแสดงไอคอนใน commit เมื่อคุณคิดไม่ออก การเน้นไวยากรณ์ การเติมคำอัตโนมัติ Oh My Zsh และสิ่งดีๆ อื่นๆ อีกมากมาย ว้าว มันเป็นหนึ่งในเทอร์มินัลที่คุณอยากจะเปิดไว้บนหน้าจอทั้งวันเลยล่ะ

เพื่อเพิ่มความสมบูรณ์ในการปรับแต่ง คุณยังสามารถทำได้อีกด้วย ปรับแต่งธีมให้แสดงเฉพาะชื่อผู้ใช้ (และซ่อนชื่อโฮสต์) การแก้ไขไฟล์ธีมเฉพาะโดยตรง เช่น agnoster.zsh-theme ในเส้นทาง ~/.oh-my-zsh/themesโดยเปลี่ยนบรรทัดที่เกี่ยวข้องให้เป็นแบบนี้:

prompt_segment green black "%(!.%{%F{yellow}%}.)%n"

ด้วยทั้งหมดนี้ สิ่งที่คุณจะได้รับคือนักพัฒนาทุกคนในทีมสามารถโคลนที่เก็บการกำหนดค่า เรียกใช้คำสั่ง และในเวลาไม่กี่นาทีก็จะได้สภาพแวดล้อมเดียวกันกับคนอื่นๆ ไม่ว่าจะเป็นเชลล์เดียวกัน ธีมเดียวกัน เวอร์ชันของเครื่องมือพื้นฐานเดียวกัน และพฤติกรรมของเทอร์มินัลเหมือนกัน โดยไม่ต้องเสียเวลาคิดว่า "มันใช้งานได้บนพีซีของฉัน" หรือ "ฉันจำไม่ได้ว่าฉันติดตั้งอะไรไปในวันนั้น"

โดยสรุปแล้ว การตั้งค่าและทำให้สภาพแวดล้อม WSL2 และ Zsh ทำงานโดยอัตโนมัติเกี่ยวข้องกับการรวมส่วนประกอบหลายอย่างเข้าด้วยกัน ได้แก่ ฐาน Linux ภายใน Windows, เทอร์มินัลที่ตั้งค่าอย่างดี เช่น Windows Terminal, เชลล์ที่ได้รับการปรับปรุงด้วย Oh My Zsh และปลั๊กอินต่างๆ, เครื่องมือที่ทันสมัย ​​เช่น BAT, LSD หรือ FZF, การควบคุมเวอร์ชันด้วย NVM หรือ Conda, การผสานรวมกับ VS Code ผ่าน Remote-WSL และสคริปต์และไฟล์การตั้งค่าที่ช่วยให้คุณสามารถจำลองสิ่งเหล่านี้ได้อย่างน่าเชื่อถือ หากคุณใช้เวลาสักเล็กน้อยในการปรับแต่ง คุณจะมีระบบนิเวศที่การเริ่มต้นจากศูนย์ไปจนถึงการเขียนโปรแกรมได้อย่างสะดวกสบายใช้เวลาเพียงไม่กี่นาที แทนที่จะใช้เวลาช่วงบ่ายทั้งหมดในการติดตั้งสิ่งต่างๆ ใหม่ด้วยตนเอง