3.8 KiB
3.8 KiB
WSL2 Development Environment Setup
📁 Created Files
| File | Lines | Description |
|---|---|---|
| wsl-dev-setup.sh | 1541 | 一键配置脚本(单文件,模块化函数设计) |
🏗️ Script Architecture
graph TD
A["main()"] --> B["detect_system()"]
B --> C{"Module Dispatcher"}
C --> D["setup_proxy()"]
C --> E["setup_apt_mirror()"]
C --> F["setup_locale()"]
C --> G["install_base_tools()"]
C --> H["install_zsh_terminal()"]
C --> I["install_nerd_fonts()"]
C --> J["install_modern_cli()"]
C --> K["install_golang()"]
C --> L["install_nodejs()"]
C --> M["print_summary()"]
H --> H1["_generate_zshrc()"]
H --> H2["_generate_p10k()"]
J --> J1["bat · eza · fd · rg"]
J --> J2["fzf · zoxide · delta · lazygit"]
K --> K1["_setup_go_env()"]
L --> L1["_setup_fnm_env()"]
📦 Module Details
1. Proxy (Clash Verge)
- 设置
http_proxy,https_proxy,all_proxy环境变量 - 提供
proxy_on/proxy_off快捷函数 - 自动写入
.bashrc,.zshrc,.profile - 配置 Git 代理
2. APT Mirror
- < 24.04: 传统
sources.list格式 - ≥ 24.04: DEB822
.sources格式 - 支持: 清华 TUNA / 中科大 USTC / 阿里云
3. Terminal: Zsh + Zinit + Powerlevel10k
- Zinit Turbo 延迟加载:启动 < 100ms
- Powerlevel10k Rainbow 风格:Powerline 箭头分隔 + 彩色背景段
- Instant Prompt: 终端瞬时响应
- Transient Prompt: 历史命令显示简化
- 插件: fast-syntax-highlighting, autosuggestions, completions, fzf-tab, history-substring-search, OMZ git/sudo/extract snippets
4. Go + Node.js
- Go: 自动检测最新版,
golang.google.cn镜像下载,goproxy.cn模块代理 - Node.js: fnm (Rust 编写,比 nvm 快 40x),npm 镜像
npmmirror.com - 环境变量写入:
/etc/profile.d/,.bashrc,.profile,.zshrc
5. Modern CLI Tools
| Tool | Replaces | Source |
|---|---|---|
| bat | cat | apt (22.04+) / GitHub .deb |
| eza | ls | apt (24.04+) / GitHub tar |
| fd | find | apt / GitHub .deb |
| ripgrep | grep | apt / GitHub .deb |
| fzf | — | apt / git clone |
| zoxide | cd | apt (24.04+) / GitHub .deb |
| delta | diff | GitHub .deb + git config |
| lazygit | git TUI | GitHub tar |
🚀 Usage
Full Installation
sudo bash wsl-dev-setup.sh
Selective Modules
# Only install Go and Node.js
sudo bash wsl-dev-setup.sh --only golang,nodejs
# Skip fonts and modern CLI
sudo bash wsl-dev-setup.sh --skip fonts,modern-cli
# Use USTC mirror
sudo bash wsl-dev-setup.sh --mirror ustc
# Disable proxy
sudo bash wsl-dev-setup.sh --no-proxy
# Preview (dry run)
bash wsl-dev-setup.sh --dry-run
Custom Configuration
# Environment variables
sudo WINDOWS_HOST_IP=10.0.0.1 CLASH_PROXY_PORT=7891 bash wsl-dev-setup.sh
sudo GO_VERSION=1.23.0 bash wsl-dev-setup.sh
sudo NERD_FONT=FiraCode bash wsl-dev-setup.sh
✅ Validation
- Bash syntax check (
bash -n): PASSED - 1541 lines, modular function design
- Idempotent: safe to run multiple times
- Error isolation: module failures don't block other modules
- Supports: Ubuntu 20.04 / 22.04 / 24.04 / 26.04
- Supports: amd64 / arm64 architectures
⚠️ Post-Install Notes
Important
Windows Terminal 字体设置: 安装完成后需在 Windows Terminal 中手动设置字体为
JetBrainsMono Nerd Font,否则终端图标会显示为方框。Settings → Profiles → Defaults → Appearance → Font face
Tip
首次进入 Zsh 后,如对预设 Powerlevel10k 主题不满意,可运行
p10k configure重新配置。