การทำงานอัตโนมัติของ 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โดยใช้ทรัพยากรน้อยมากและมีประสิทธิภาพใกล้เคียงกับการติดตั้งแบบเนทีฟ

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

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

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

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

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

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

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

wsl --install

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

หากคุณต้องการใช้ระบบปฏิบัติการอื่น คุณสามารถระบุได้ในคำสั่ง เช่น หากต้องการติดตั้ง 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 จาก เก็บไมโครซอฟท์ เมื่อคุณเปิดขึ้นมา คุณจะเห็นว่าโดยปกติแล้วมันจะแสดงโปรไฟล์ PowerShell หรือ CMD เป็นค่าเริ่มต้น คุณสามารถเลือกการแจกจ่าย WSL ของคุณ (Ubuntu, Debian เป็นต้น) จากลูกศรดรอปดาวน์ของแท็บ และเปิดในแท็บใหม่ได้

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

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

  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 มากและเมื่อรวมกับ โอ้ 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 Fonts หรือ Powerline fonts) ถ้าคุณไม่ใช้ คุณจะเห็นสี่เหลี่ยมแปลกๆ หรือตัวอักษรที่ผิดเพี้ยนในข้อความแจ้งเตือนขั้นสูง

คุณมีสองตัวเลือกยอดนิยม: ติดตั้ง ชุดจ่ายไฟ Powerline รุ่นคลาสสิก หรือเลือกใช้ฟอนต์เฉพาะสำหรับกลุ่มเนิร์ด เช่น เมสโลแอลจีเอสเอ็นเอฟ o แฮ็กเนิร์ดฟอนต์วิธีที่รวดเร็วคือการโคลนคลังฟอนต์ 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

ในกรณีของการใช้ธีมขั้นสูง เช่น ระดับพลัง10kขอแนะนำอย่างยิ่งให้ใช้ 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 มีดังต่อไปนี้

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

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

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

ขอแนะนำเป็นอย่างยิ่ง การเน้นไวยากรณ์ zshซึ่งจะแสดงสีให้กับคำสั่งต่างๆ ตามความถูกต้องของการสะกดคำ ว่าไฟล์ที่คุณชี้ไปนั้นมีอยู่จริงหรือไม่ เป็นต้น ช่วยให้คุณ... ตรวจสอบข้อผิดพลาดทางไวยากรณ์ก่อนกด 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ซึ่งช่วยให้คุณสามารถกดปุ่มต่างๆ ร่วมกันได้ เช่น เพื่อ... เพิ่ม “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 ที่ใช้งานง่าย

  การแชร์ไฟล์ผ่านบลูทูธใน Windows 11: คู่มือฉบับสมบูรณ์

ค้างคาว นี่คือเวอร์ชัน "โปร" ของ 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'

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

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.js และเครื่องมือต่างๆ เช่น Conda สำหรับ Python

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

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 ตัวเลือกที่มีประสิทธิภาพมากอย่างหนึ่งคือ คอนดา (หรือมินิคอนด้า) ซึ่งช่วยให้ สร้างสภาพแวดล้อมที่แยกต่างหาก จัดการการพึ่งพา และจัดการเวอร์ชันของ 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) ช่วยในการแชร์และซิงโครไนซ์การตั้งค่าเชลล์ ชื่อย่อ ธีม และโปรแกรมต่างๆ ระหว่างคอมพิวเตอร์หลายเครื่อง หรือแม้แต่ระหว่างเครื่องต่างๆ ที่เป็นของนักพัฒนาคนเดียวกัน เครื่องมือต่างๆ เช่น เชซมัว หรือมักใช้สคริปต์คัดลอกเชิงสัญลักษณ์แบบง่ายๆ สำหรับจุดประสงค์นั้น

  วิธีการรวมพาร์ติชัน NTFS สองพาร์ติชันใน Windows: วิธีการที่ปลอดภัย ข้อจำกัด และเครื่องมือ

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

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

ขั้นแรก ติดตั้ง VS Code บน Windows จากเว็บไซต์อย่างเป็นทางการ จากนั้น ภายในโปรแกรมแก้ไขโค้ด ให้เปิดแท็บส่วนขยาย (ทางลัด) Ctrl+Shift+X) และค้นหาและติดตั้งส่วนขยาย “รีโมท – 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 และสคริปต์และไฟล์การตั้งค่าที่ช่วยให้คุณสามารถจำลองสิ่งเหล่านี้ได้อย่างน่าเชื่อถือ หากคุณใช้เวลาสักเล็กน้อยในการปรับแต่ง คุณจะมีระบบนิเวศที่การเริ่มต้นจากศูนย์ไปจนถึงการเขียนโปรแกรมได้อย่างสะดวกสบายใช้เวลาเพียงไม่กี่นาที แทนที่จะใช้เวลาช่วงบ่ายทั้งหมดในการติดตั้งสิ่งต่างๆ ใหม่ด้วยตนเอง