- WSL2 cho phép bạn sử dụng một hệ thống Linux hoàn chỉnh bên trong Windows và kết hợp nó với Zsh để tạo ra một thiết bị đầu cuối mạnh mẽ và hiện đại.
- Windows Terminal, Nerd Fonts và Oh My Zsh nâng cao trải nghiệm trực quan và chức năng với các chủ đề, biểu tượng, plugin và bí danh tùy chỉnh.
- Các tập lệnh Bootstrap, tệp cấu hình ẩn và Dev Container giúp dễ dàng tự động hóa và quản lý phiên bản môi trường cho toàn bộ nhóm phát triển.
- Việc tích hợp với VS Code và các công cụ như NVM, Conda, BAT, LSD hoặc FZF tạo ra một quy trình làm việc ổn định và có thể tái tạo.
Nếu bạn phát triển trong Bạn đang sử dụng Node.js hoặc Python trên Windows và muốn có sự tiện lợi của Linux? Không cần phải từ bỏ các trò chơi, công cụ quen thuộc hay quy trình làm việc của bạn, WSL2 và Zsh có lẽ là sự kết hợp mà bạn đang tìm kiếm. Sở hữu một bản phân phối Linux thực thụ, với terminal được nâng cấp và mọi thứ được tự động hóa hoàn hảo, có nghĩa là việc thiết lập môi trường phát triển không còn là một quá trình tốn hàng giờ để sao chép các lệnh nữa.
Trong hướng dẫn này, bạn sẽ thấy, với sự cẩn thận và chi tiết đáng kể, Hướng dẫn cách tự động hóa hoàn toàn môi trường WSL2 bằng Zsh và Oh My ZshBài viết này sẽ hướng dẫn cách tích hợp nó với Windows Terminal và Visual Studio Code, cũng như cách đóng gói nó thành các tập lệnh và tệp cấu hình để bạn (hoặc bất kỳ ai trong nhóm của bạn) có thể thiết lập tương tự chỉ trong vài phút. Ý tưởng là giúp bạn dành ít thời gian hơn cho việc cấu hình và nhiều thời gian hơn để thỏa sức sáng tạo.
WSL2 là gì và tại sao nên sử dụng nó với Zsh?
WSL (Windows Subsystem for Linux) là lớp cho phép Linux chạy bên trong Windows. không cần máy ảo nặng nề hay khởi động kép. Với WSL2, Microsoft tiến thêm một bước nữa: nó chạy một... Toàn bộ nhân Linux sử dụng Hyper-VVới mức tiêu thụ tài nguyên rất thấp và hiệu năng gần như tương đương với cài đặt gốc.
Nhờ đó bạn có thể Cài đặt các bản phân phối như Ubuntu, Debian, Kali hoặc Alpine. Tải trực tiếp từ Microsoft Store hoặc bằng các lệnh PowerShell, và tận hưởng hệ thống tệp Linux, các gói apt, công cụ phát triển, và tất nhiên, các trình shell nâng cao như... Zsh với Ôi trời ơi và các plugin của nó.
Trong nhiều năm, Lập trình trên hệ điều hành Windows không hấp dẫn.Nếu không có bash, với hệ thống tập tin khó sử dụng và ít công cụ phát triển gốc hơn, hầu hết mọi người cuối cùng đã chuyển sang Linux hoặc macOS. Với WSL2, điều này thay đổi hoàn toàn: bạn vẫn sử dụng Windows, nhưng... Bạn làm việc như thể đang sử dụng một bản phân phối Linux.với khả năng tự động hóa gần như toàn bộ quy trình cấu hình.
Ưu điểm của việc kết hợp WSL2 với Zsh là... Zsh mang đến trải nghiệm sử dụng terminal vượt trội hơn hẳn so với bash cổ điển.Tính năng tự động hoàn thành nâng cao, gợi ý, chủ đề, tích hợp Git, plugin NVM, bí danh, tô sáng cú pháp và nhiều tính năng khác nữa mà một khi đã thử, bạn sẽ khó lòng từ bỏ.
Cài đặt và chuẩn bị WSL2 trên Windows 10 hoặc 11
Trước khi đi sâu vào việc tinh chỉnh tự động hóa, Bạn cần bật WSL2 và cài đặt một bản phân phối Linux.Quy trình ngày nay đơn giản hơn nhiều so với các phiên bản đầu tiên, và hầu như mọi thứ đều có thể được thực hiện chỉ bằng một lệnh duy nhất.
En Windows 10 phiên bản mới nhất (2004 trở lên) hoặc Windows 11Chỉ cần mở PowerShell với quyền quản trị viên (tìm kiếm nó trong menu Bắt đầu, nhấp chuột phải, "Chạy với quyền quản trị viên") và khởi chạy:
wsl --install
Lệnh này chịu trách nhiệm cho kích hoạt các tính năng tùy chọn cần thiết, tải xuống nền tảng Linux, thành lập WSL2 là phiên bản mặc định và cài đặt theo mặc định Ubuntu dưới dạng bản phân phối. Khi quá trình hoàn tất, hệ thống sẽ yêu cầu bạn khởi động lại máy tính để áp dụng các thay đổi.
Nếu bạn muốn sử dụng bản phân phối khác, bạn có thể chỉ định nó trong chính lệnh, ví dụ như để cài đặt Debian:
wsl --install -d Debian
Bất cứ lúc nào bạn có thể Kiểm tra trạng thái của các bản phân phối đã cài đặt và phiên bản của chúng. với:
wsl -l -v
Và nếu bạn muốn chuyển sang bản phân phối khác hoặc dọn dẹp bản phân phối mà bạn không còn sử dụng nữa, bạn có các tùy chọn như sau: Liệt kê các bản phân phối có sẵn trực tuyến hoặc gỡ bỏ một cài đặt cụ thể:
wsl -l -o
wsl --unregister Ubuntu-20.04
Khi bạn khởi chạy bản phân phối lần đầu tiên, một trình hướng dẫn bằng văn bản sẽ xuất hiện yêu cầu bạn thực hiện các bước sau: Tạo người dùng UNIX và mật khẩu cho người dùng đó.Đó sẽ là người dùng chính của bạn trong WSL, với thư mục HOME thông thường của họ ở /home/tuusuarioVà điều quan trọng là bạn cần ghi lại tên người dùng và mật khẩu của mình vì bạn sẽ sử dụng chúng cho các tác vụ quản trị. sudo.
Cấu hình Windows Terminal để hoạt động với WSL2
Sau khi đã cài đặt và vận hành WSL2, bước tiếp theo hợp lý là... Cải thiện trải nghiệm dòng lệnh trong Windows bằng cách sử dụng Windows Terminal.Ứng dụng này hỗ trợ các tab, bảng điều khiển, chủ đề, độ trong suốt, cấu hình cho từng bản phân phối, phông chữ có biểu tượng và nhiều tính năng khác nữa.
Cài đặt Windows Terminal từ... Microsoft Store Và khi bạn mở nó ra, bạn sẽ thấy rằng thông thường nó sẽ hiển thị cấu hình PowerShell hoặc CMD theo mặc định. Từ mũi tên thả xuống của tab, bạn có thể chọn bản phân phối WSL của mình (Ubuntu, Debian, v.v.) và mở nó trong một tab mới.
Đối với Ubuntu hoặc bất kỳ bản phân phối nào bạn sử dụng trong WSL sẽ luôn được mở mặc định.Bạn có thể chỉnh sửa cài đặt. Windows Terminal lưu cài đặt của nó trong một tệp JSON, có thể truy cập từ menu cài đặt. Tìm trường "defaultProfile" và đặt GUID hồ sơ Ubuntu (Bạn sẽ thấy nó trong danh sách) profiles) như một giá trị.
Ngoài ra, bạn có thể Tùy chỉnh chủ đề màu sắc và thêm độ trong suốt acrylic để mang lại cho nó một nét hiện đại hơn. Ví dụ, ở phần của "defaults" Đối với các cấu hình, bạn có thể định nghĩa như sau:
"defaults": {
"useAcrylic": true,
"acrylicOpacity": 0.4
}
Nếu bạn muốn nâng tầm phong cách với màu sắc, bạn có thể thêm... kế hoạch tùy chỉnh trong phần "schemes" Từ dữ liệu JSON, bạn có thể định nghĩa màu nền, màu chữ và bảng màu cơ bản của terminal. Một ví dụ điển hình là chủ đề Solarized, sau đó bạn có thể liên kết chủ đề này với cấu hình WSL bằng cách sử dụng thuộc tính. "colorScheme" : "wsl" trong hồ sơ tương ứng.
Cài đặt và tự động hóa Zsh + Oh My Zsh trong WSL2
Sau khi đã chuẩn bị xong nền tảng WSL và Windows Terminal, đã đến lúc bổ sung thêm các thành phần cần thiết cho giao diện dòng lệnh. Zsh là một lựa chọn thay thế mạnh mẽ hơn nhiều so với bash.và kết hợp với Ôi trời ơi Nó trở thành một công cụ đa năng hữu ích để làm việc với Git, Node, Python và hầu như mọi thứ trong terminal.
Trong bản phân phối WSL của bạn (ví dụ: Ubuntu), hãy bắt đầu bằng Cập nhật kho lưu trữ và cài đặt các gói cần thiết tối thiểu.:
sudo apt update
sudo apt install git zsh -y
Sau đó, cài đặt Oh My Zsh bằng cách sử dụng tập lệnh chính thức, tận dụng các tính năng có sẵn. Sử dụng lệnh `curl` để tải xuống trình cài đặt. và chạy trực tiếp:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Trong quá trình cài đặt, bạn sẽ được hỏi liệu bạn có muốn Đặt Zsh làm shell mặc địnhHãy nói với anh ấy là có. Nếu cần làm bằng tay, bạn có thể dùng:
chsh -s /bin/zsh
Sau khi hoàn tất, một tệp cấu hình sẽ được tạo trong thư mục HOME của bạn có tên là ~/.zshrcNơi mọi thứ đều được kiểm soát: plugin, giao diện, bí danh, môi trường, đường dẫn…
Một chủ đề rất phổ biến cho Oh My Zsh là agnoster, tập trung vào việc hiển thị thông tin Git một cách rõ ràng. Để kích hoạt, hãy chỉnh sửa tệp tin. ~/.zshrc với trình soạn thảo ưa thích của bạn (ví dụ: vi ~/.zshrc o nano ~/.zshrc) và đảm bảo tiêu đề email có dạng như sau:
ZSH_THEME="agnoster"
Ngoài ra, cũng nên lưu ý rằng, cả trong bash và Zsh, Buộc trình shell khởi động trong thư mục HOME của Linux. (không nằm trong thư mục người dùng Windows), vì WSL hoạt động tốt hơn nhiều trong hệ thống tệp gốc của bản phân phối. Chỉ cần thêm đoạn sau vào cuối ~/.zshrc một dòng đơn giản:
cd ~
Nerd Fonts và Powerline: biểu tượng và tính thẩm mỹ trong terminal
Để các bản nhạc Zsh và Oh My Zsh hiển thị đúng như mong muốn, Bạn cần một phông chữ hỗ trợ các biểu tượng và ký hiệu đặc biệt. (Những phông chữ này được gọi là Nerd Fonts hoặc Powerline fonts). Nếu không, bạn sẽ thấy các ô vuông kỳ lạ hoặc các ký tự bị lỗi trong các lời nhắc nâng cao hơn.
Bạn có hai lựa chọn phổ biến: cài đặt một gói nguồn Powerline cổ điển hoặc chọn một kiểu chữ dành riêng cho dân mọt sách như... MesloLGS NF o Phông chữ Hack NerdMột phương pháp nhanh chóng là sao chép kho lưu trữ phông chữ Powerline từ PowerShell trong Windows, trước tiên điều hướng đến một thư mục trống:
git clone https://github.com/powerline/fonts.git
cd fonts
.\install.ps1
Tập lệnh cài đặt sẽ tự động thêm một số phông chữ vào hệ thống. Sau đó, từ cài đặt Terminal của Windows, Chọn một trong các phông chữ đã được cài đặt. Ví dụ, đối với hồ sơ WSL:
"fontFace": "DejaVu Sans Mono for Powerline"
Nếu bạn thích thứ gì đó hiện đại hơn nữa, bạn có thể tải xuống một phông chữ Nerd Font cụ thể (như...) MesloLGS NF Regular.ttfTải xuống phông chữ đó từ trang web Nerd Fonts, cài đặt nó trên Windows bằng cách nhấp đúp chuột và chọn "Cài đặt", sau đó chọn nó làm phông chữ trong hồ sơ Windows Terminal.
Trong trường hợp sử dụng các chủ đề nâng cao như... Cấp độ công suất10kChúng tôi đặc biệt khuyên bạn nên sử dụng Nerd Fonts. Để cài đặt giao diện này, bạn có thể thực hiện các bước sau trong tài khoản người dùng WSL của mình:
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >> ~/.zshrc
Sau khi khởi động lại Zsh (zsh hoặc đóng và mở lại thiết bị đầu cuối), một trình hướng dẫn có hướng dẫn sẽ được khởi chạy (p10k configure) để tùy chỉnh lời nhắc theo ý thích của bạn, tạo ra một tệp ~/.p10k.zsh với tất cả các thiết lập.
Các plugin hữu ích cho Zsh: tăng năng suất tức thì
Một trong những ưu điểm tuyệt vời của Oh My Zsh là... Nó cho phép bạn thêm các plugin một cách rất dễ dàng. Để cải thiện trải nghiệm làm việc. Một số công cụ được sử dụng phổ biến nhất trong môi trường phát triển WSL2 bao gồm:
Các plugin git Chức năng này được bật mặc định và chịu trách nhiệm hiển thị. Bạn đang làm việc trên nhánh nào? Có thay đổi nào đang chờ xử lý không? Có thay đổi nào chưa được cam kết không?…tất cả đều hiển thị trực tiếp trong cửa sổ nhắc lệnh. Thật tuyệt vời để theo dõi trạng thái kho lưu trữ của bạn trong khi duyệt.
Một cổ điển khác là zsh-tự động đề xuất, tính năng này đề xuất các lệnh màu xám dựa trên lịch sử thao tác của bạn, cho phép bạn chấp nhận đề xuất bằng một phím bấm. Tránh viết đi viết lại những cụm từ dài giống nhau.. Để cài đặt nó:
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/zsh-autosuggestions
Nó cũng rất khuyến khích làm nổi bật cú pháp zshChức năng này tô màu các lệnh dựa trên việc chúng có được viết đúng chính tả hay không, các tệp bạn đang trỏ đến có tồn tại hay không, v.v., giúp bạn phát hiện lỗi cú pháp trước khi nhấn Enter:
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.zsh/zsh-syntax-highlighting
Kích hoạt các plugin này, thêm đoạn mã sau vào cuối tệp của bạn. ~/.zshrc một cái gì đó như thế này:
source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh
source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
Một tiện ích bổ sung rất thiết thực khác là... Ôi plugin sudo của Zsh!Điều này cho phép bạn, ví dụ, nhấn một tổ hợp phím để nhanh chóng thêm “sudo” trước lệnh cuối cùng. Nó đang chạy. Bạn có thể tải xuống như sau:
mkdir -p ~/.zsh/sudo-plugin && cd ~/.zsh/sudo-plugin
wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/plugins/sudo/sudo.plugin.zsh
Và kích hoạt nó bằng cách thêm nó vào của bạn. ~/.zshrc:
source ~/.zsh/sudo-plugin/sudo.plugin.zsh
Các công cụ dòng lệnh nâng cao (BAT, LSD, FZF, HTTPie)
Vì bạn đang tinh chỉnh giao diện dòng lệnh, nên việc cài đặt một số thứ cũng đáng giá. Các giải pháp thay thế hiện đại cho các tiện ích truyền thống như cat o lscũng như các công cụ tìm kiếm và các ứng dụng HTTP thân thiện với người dùng.
Bát Đây là phiên bản "chuyên nghiệp" của cat, Với Tô sáng cú pháp, đánh số, tích hợp Git…Rất lý tưởng để đọc trực tiếp các tập mã trong terminal. Bạn có thể cài đặt bằng cách tải xuống gói tương ứng từ GitHub (và điều chỉnh cho phù hợp với kiến trúc hệ thống của bạn):
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
Để tích hợp nó vào quy trình làm việc của bạn, bạn có thể tạo bí danh trong ~/.zshrc vì vậy khi viết cat Thực ra tôi đã gọi cho BAT, nhưng vẫn giữ nguyên các phím tắt đến tiện ích truyền thống:
alias cat='/bin/bat'
alias catn='/bin/cat'
alias catnl='/bin/bat --paging=never'
Về phần mình, LSD thay thế ls với màu sắc, biểu tượng và kết quả đầu ra dễ đọc hơn nhiềuNó được cài đặt tương tự như 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
Sau đó, bạn có thể định nghĩa lại các bí danh thông dụng để sắp xếp thư mục, hiển thị chi tiết, ẩn chúng, v.v., ví dụ:
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'
Để thực hiện tìm kiếm tương tác trong cửa sổ terminal, FZF Điều này gần như là thiết yếu: ra mắt công cụ tìm kiếm tăng dần Nó tích hợp với lịch sử, đường dẫn và các lệnh khác. Việc cài đặt được thực hiện bằng cách sao chép kho lưu trữ của nó và chạy tập lệnh cài đặt:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
Trình cài đặt sẽ thêm vào... ~/.zshrc el source tương ứng (một cái gì đó như [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh) để mọi thứ sẵn sàng. Nó được kích hoạt bằng các phím tắt như CTRL + T.
Cuối cùng, nếu bạn làm việc với API, HTTPie Nó mang lại trải nghiệm thoải mái hơn nhiều so với curl, Với Đầu ra có màu và cú pháp dễ đọcBạn có thể cài đặt nó bằng cách thêm kho lưu trữ của nó và sử dụng... 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 và các công cụ khác trong WSL2
Một trong những lý do chính để thiết lập toàn bộ hoạt động này là để có thể để có một môi trường mạnh mẽ cho Node.js, Python và các công nghệ khác.Với khả năng quản lý phiên bản đơn giản và dễ sao chép. Đây chính là điểm mấu chốt. NVM Dành cho Node và các công cụ như Conda cho Python.
Trong trường hợp của Node, lý tưởng nhất là sử dụng NVM (Trình quản lý phiên bản nút)Điều này cho phép bạn cài đặt nhiều phiên bản và chuyển đổi giữa chúng chỉ với một vài lệnh. Từ WSL2 của bạn, bạn có thể cài đặt NVM bằng lệnh:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | zsh
Tiếp theo, hãy cài đặt Node (phiên bản ổn định hiện tại hoặc một phiên bản cụ thể):
nvm install node
nvm install 18.17.0
Nếu bạn muốn kiểm tra xem mọi thứ có ổn không, bạn có thể sử dụng các lệnh kiểm tra phiên bản thông thường, các lệnh này sẽ trả về các giá trị hợp lệ:
node --version
npm --version
Với Zsh, NVM đôi khi không tự động tải khi bạn mở cửa sổ terminal. Bạn có thể khắc phục điều này bằng hai cách: Thêm thủ công các biến cần thiết vào ~/.zshrc hoặc sử dụng plugin zsh-nvm Trích từ Oh My Zsh. Phiên bản thủ công có thể trông như thế này:
export NVM_DIR=~/.nvm
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
Nếu bạn chọn plugin, hãy mở nó ra. ~/.zshrc, xác định dòng plugin (ví dụ: plugins=(git)) và thêm zsh-nvm Thêm nó vào danh sách. Sau khi lưu và khởi động lại terminal, NVM sẽ tải mà không gặp sự cố.
Đối với Python, một lựa chọn rất mạnh mẽ là Đếm (hoặc Miniconda), cho phép Tạo môi trường biệt lập, quản lý các phụ thuộc và xử lý các phiên bản Python. mà không cần phải can thiệp vào hệ thống toàn cầu. Có các tập lệnh tự động, nằm trong kho lưu trữ cấu hình WSL, cài đặt Conda, trình điều khiển GPU và các thành phần khác gần như một cách minh bạch.
Tự động hóa cấu hình bằng các tập lệnh, tệp cấu hình và Dev Container.
Cho đến nay, chúng ta đã thấy cách cấu hình mọi thứ "thủ công", nhưng chìa khóa để có một môi trường làm việc tốt, đặc biệt là trong các nhóm, nằm ở... Tự động hóa quy trình thiết lập và quản lý phiên bản cấu hìnhWSL2 rất phù hợp cho việc này vì nó cho phép bạn đóng gói mọi thứ, từ cài đặt đến tùy chỉnh giao diện dòng lệnh.
Một cách tiếp cận rất phổ biến là có một tập lệnh khởi động (ví dụ install.sh o setup.sh) trong kho lưu trữ nhóm thực hiện các tác vụ theo trình tự như sau:
- Kiểm tra các điều kiện tiên quyết (Phiên bản Windows, WSL2 đang hoạt động, có Docker Desktop nếu cần, v.v.)
- Cài đặt hoặc cập nhật bản phân phối WSLCác gói cơ bản: Zsh, Oh My Zsh, NVM, Conda, v.v.
- Sao chép và áp dụng các tệp cấu hình (dotfiles) (
.zshrc,.bashrc,.gitconfig(các tệp chủ đề, bí danh dùng chung…). - Cài đặt các công cụ ngăn xếp dự án (Node, Python, cơ sở dữ liệu, các giao diện dòng lệnh chuyên dụng).
- Cấu hình các tập lệnh xác thực như
make check-envĐể xác minh rằng mọi thứ đều chính xác.
Các kịch bản này phải là bất khả khángTức là, chúng phải có thể được chạy nhiều lần mà không gây ra lỗi gì, và nên ghi lại tất cả các biến môi trường vào một tệp như thế này. .env.example để mỗi người có thể tùy chỉnh môi trường của mình mà không cần can thiệp vào mã nguồn chính.
Một lớp rất mạnh mẽ khác là... VS Code Dev Containers (.devcontainerChúng bao gồm các mô tả khai báo về môi trường (Dockerfile, cấu hình VS Code, tiện ích mở rộng, cổng, v.v.) cho phép Mỗi dự án đều có môi trường phát triển riêng.Kết hợp với WSL2, nhờ vào tiện ích mở rộng Từ xa - WSLBạn có thể mở kho lưu trữ trong vùng chứa Linux bên trong WSL và đảm bảo rằng mọi người đều có cùng phiên bản và công cụ.
Song song đó, duy trì một kho lưu trữ các tài liệu sau: các tệp cấu hình phiên bản (Ví dụ: trên GitHub) giúp chia sẻ và đồng bộ hóa cấu hình shell, bí danh, chủ đề và chương trình trên nhiều máy tính hoặc thậm chí trên các máy khác nhau thuộc cùng một nhà phát triển. Các công cụ như... chezmoi Hoặc các tập lệnh sao chép ký hiệu đơn giản thường được sử dụng cho mục đích đó.
Tích hợp WSL2 và Zsh với Visual Studio Code
Trải nghiệm sẽ được cải thiện đáng kể nếu bạn tích hợp toàn bộ môi trường này với một trình soạn thảo nhẹ nhưng rất mạnh mẽ như... Mã Visual Studio. Ý tưởng là VS Code hoạt động trực tiếp với hệ thống tệp WSL.Tránh các vấn đề về hiệu năng và quyền truy cập.
Đầu tiên, hãy cài đặt VS Code trên Windows từ trang web chính thức của nó. Sau đó, từ bên trong trình soạn thảo, mở tab Tiện ích mở rộng (phím tắt). Ctrl+Shift+X) và tìm kiếm rồi cài đặt tiện ích mở rộng “Từ xa – WSL”Tiện ích mở rộng này cho phép bạn mở các thư mục và dự án nằm trên bản phân phối Linux của bạn, với toàn bộ logic được chạy trong WSL.
Sau khi cài đặt xong, bạn có thể chạy lệnh sau từ cửa sổ dòng lệnh Ubuntu:
code .
Thao tác này sẽ mở VS Code, được kết nối với môi trường WSL và có quyền truy cập đầy đủ vào các công cụ bạn đã cài đặt ở đó. Để hoàn tất quá trình tích hợp trực quan, bạn có thể... Cấu hình thiết bị đầu cuối tích hợp của VS Code Hãy sử dụng cùng một phông chữ Nerd Font mà bạn đã chọn trong Windows Terminal để các biểu tượng cũng trông đẹp mắt:
{
"terminal.integrated.fontFamily": "DejaVu Sans Mono for Powerline"
}
Trong tập tin settings.json Trong VS Code, bạn cũng có thể đặt terminal mặc định của Windows là Ubuntu trong WSL bằng cách cấu hình hồ sơ như sau:
"terminal.integrated.profiles.windows": {
"Ubuntu (WSL)": {
"path": "C:\\Windows\\System32\\wsl.exe",
"args": ["-d", "Ubuntu"]
}
},
"terminal.integrated.defaultProfile.windows": "Ubuntu (WSL)"
Và nhân tiện, bạn cũng có thể tận dụng cơ hội để kích hoạt Định dạng tự động khi lưu, tô màu các cặp dấu ngoặc đơn và những cải tiến nhỏ khác giúp cho công việc hàng ngày trong trình soạn thảo trở nên thú vị hơn.
Các tập lệnh tự động và kho lưu trữ cấu hình WSL2 hoàn chỉnh
Mặc dù bạn có thể tự thiết lập cơ sở hạ tầng kịch bản của riêng mình, nhưng cũng có lựa chọn khác là... dựa vào các kho lưu trữ được xây dựng sẵn giúp tự động hóa phần lớn công việc.Một số tập trung vào hướng dẫn Linux, các tập lệnh để cài đặt các tiện ích terminal (Oh My Zsh, plugin, theme), Conda, trình điều khiển GPU và các thành phần thiết yếu khác của môi trường khoa học dữ liệu hoặc phát triển web.
Ý tưởng đằng sau các kho lưu trữ này rất rõ ràng: Một lệnh duy nhất sẽ thực thi một tập lệnh Bash. Nó cập nhật bản phân phối, cài đặt curl và Node.js khi cần thiết, quản lý NVM, tải xuống các phông chữ như Nerd Fonts, cấu hình Zsh với một chủ đề và một bộ plugin và bí danh hợp lý, và giúp bạn có thể sử dụng terminal ngay lập tức.
Trong quá trình thực thi các đoạn mã này, bạn sẽ thấy rằng, ở một số thời điểm, bạn sẽ được hỏi. mật khẩu quản trị viên của bạn do việc sử dụng sudoĐiều này hoàn toàn bình thường, vì các gói phần mềm được cài đặt, đường dẫn hệ thống được sửa đổi và các tệp được sao chép đến các vị trí được bảo vệ.
Trong một số trường hợp, họ sẽ yêu cầu bạn Chọn phiên bản cụ thể của các công cụ như BAT hoặc LSD. (ví dụ bat_0.25.0_amd64.deb o lsd_1.1.5_amd64.deb), điều này phụ thuộc vào cả phiên bản có sẵn trên GitHub và kiến trúc máy tính của bạn (thường thì hiện nay là...) amd64Hãy chắc chắn chọn đúng gói để tránh lỗi không tương thích.
Kết quả của loại kịch bản này là một môi trường trong đó Zsh đã có sẵn một tệp .zshrc rất hoàn chỉnhVới giao diện, các plugin, bí danh cho cat/ls, tích hợp Gitmoji để hiển thị biểu tượng khi bạn thiếu ý tưởng, tô sáng cú pháp, tính năng tự động hoàn thành Oh My Zsh và nhiều tiện ích khác. Thật tuyệt vời, đây là một trong những trình giả lập terminal mà bạn sẽ muốn giữ trên màn hình cả ngày.
Để hoàn tất việc tùy chỉnh, bạn thậm chí có thể Điều chỉnh giao diện để chỉ hiển thị tên người dùng (và ẩn tên máy chủ). Chỉnh sửa trực tiếp các tệp chủ đề cụ thể, chẳng hạn như agnoster.zsh-theme trong lộ trình ~/.oh-my-zsh/themes, thay đổi dòng tương ứng thành dạng như sau:
prompt_segment green black "%(!.%{%F{yellow}%}.)%n"
Với tất cả những điều này, điều bạn đạt được là: Bất kỳ lập trình viên nào trong nhóm cũng có thể sao chép kho lưu trữ cấu hình, chạy một lệnh và có được môi trường tương tự chỉ trong vài phút. So với những cái khác: cùng một giao diện, cùng một chủ đề, cùng phiên bản các công cụ cơ bản và cùng cách hoạt động của thiết bị đầu cuối, không có những trường hợp kiểu "nó hoạt động trên máy tính của tôi" hay "tôi không nhớ mình đã cài đặt gì hôm đó".
Tóm lại, việc thiết lập và tự động hóa môi trường WSL2 và Zsh bao gồm việc kết hợp nhiều thành phần: một nền tảng Linux trong Windows, một terminal được cấu hình tốt như Windows Terminal, một shell mạnh mẽ với Oh My Zsh và các plugin của nó, các công cụ hiện đại như BAT, LSD hoặc FZF, hệ thống quản lý phiên bản với NVM hoặc Conda, tích hợp với VS Code thông qua Remote-WSL, và các tập lệnh và dotfile cho phép bạn sao chép tất cả những điều này một cách đáng tin cậy. Nếu bạn dành thời gian để tinh chỉnh nó, bạn sẽ có một hệ sinh thái mà việc bắt đầu từ con số không đến lập trình một cách thoải mái chỉ mất vài phút thay vì cả buổi chiều để cài đặt lại mọi thứ thủ công.
Mục lục
- WSL2 là gì và tại sao nên sử dụng nó với Zsh?
- Cài đặt và chuẩn bị WSL2 trên Windows 10 hoặc 11
- Cấu hình Windows Terminal để hoạt động với WSL2
- Cài đặt và tự động hóa Zsh + Oh My Zsh trong WSL2
- Nerd Fonts và Powerline: biểu tượng và tính thẩm mỹ trong terminal
- Các plugin hữu ích cho Zsh: tăng năng suất tức thì
- Các công cụ dòng lệnh nâng cao (BAT, LSD, FZF, HTTPie)
- Node.js, NVM, Python và các công cụ khác trong WSL2
- Tự động hóa cấu hình bằng các tập lệnh, tệp cấu hình và Dev Container.
- Tích hợp WSL2 và Zsh với Visual Studio Code
- Các tập lệnh tự động và kho lưu trữ cấu hình WSL2 hoàn chỉnh



