🚀 全指南:基于 WSL2 的全栈开发环境配置与自动化备份

这是一份深度打磨的 WSL2 (Ubuntu) 配置笔记。涵盖了从安全备份、系统优化Python/Go/Node/Java 等主流开发环境的配置实战,助你打造极致流畅的 Windows + Linux 开发体验。


一、 🛡️ 稳如泰山:WSL2 自动化备份方案

不要等环境崩溃了才后悔。利用 PowerShell 脚本实现定期备份,只保留最近 5 个版本,省心省力。

1. 创建备份脚本 backup-wsl.ps1

powershell 复制代码
$backupPath = "D:\wsl-backup"  
$date = Get-Date -Format "yyyy-MM-dd_HH-mm"  
  
# 导出名为 Ubuntu 的分发版
wsl --export Ubuntu "$backupPath\ubuntu-$date.tar"  
  
# 自动清理:只保留最近 5 个备份文件
Get-ChildItem $backupPath -Filter "*.tar" |  
Sort-Object LastWriteTime -Descending |  
Select-Object -Skip 5 |  
Remove-Item

2. 设置定时任务

  1. 搜索并打开 Windows 任务计划程序
  2. 新建任务,设置触发器为"每周"或"每天"。
  3. 操作设置为 启动程序,程序栏输入 powershell.exe,参数栏输入 -File "C:\你的路径\backup-wsl.ps1"

3. 灾难恢复

如果需要彻底重装或恢复到某个版本:

powershell 复制代码
# 注销当前错误的系统
wsl --unregister Ubuntu

# 导入备份镜像
wsl --import Ubuntu D:\wsl D:\wsl-backup\ubuntu-xxx.tar

二、 ⚙️ 系统维护与基础配置

1. 软件源更新

csharp 复制代码
# 标准更新
sudo apt update && sudo apt upgrade -y

# 跨版本升级 (如 Ubuntu 22.04 -> 24.04)
sudo do-release-upgrade

2. 设置默认登录用户

方法 A (推荐): 在 PowerShell 中直接修改。

powershell 复制代码
wsl --manage <DistroName> --set-default-user <UserName>

方法 B: 修改 WSL 内部配置文件 /etc/wsl.conf

toml 复制代码
[user]
default=yourusername

三、 🌈 终端美化与 Shell 增强

1. 基础工具链安装

bash 复制代码
sudo apt install -y build-essential curl wget git unzip zip htop jq fzf tree

2. Zsh 与 Oh My Zsh 极致体验

bash 复制代码
# 安装 Zsh
sudo apt install -y zsh
chsh -s $(which zsh)

# 安装 Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

3. 推荐插件配置

注意zsh-autocompletezsh-autosuggestions 功能上有重叠且易冲突,建议根据习惯二选一。

bash 复制代码
# 克隆必备插件
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

# 编辑 ~/.zshrc 启用
plugins=(
    git
    zsh-autosuggestions
    command-not-found
    zsh-history-substring-search
    docker  
    kubectl
    zsh-syntax-highlighting
)

# 启用 Powerlevel10k 主题
ZSH_THEME="powerlevel10k/powerlevel10k"

四、 🛠️ 多语言开发环境搭建

1. Python:使用下一代工具 uv

uv 速度极快,是目前替代 pipconda 的热门选择。

Bash

bash 复制代码
curl -LsSf https://astral.sh/uv/install.sh | sh

# 常用命令
uv python install 3.11    # 安装特定版本
uv init                   # 初始化项目
uv add requests           # 添加依赖

国内加速 (清华源):

bash 复制代码
export UV_DEFAULT_INDEX="https://pypi.tuna.tsinghua.edu.cn/simple"

2. Go 语言

bash 复制代码
wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz

# 环境变量配置 (~/.zshrc)
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

3. Node.js:使用 nvm 管理版本

bash 复制代码
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

nvm install --lts      # 安装长期支持版
npm install -g pnpm    # 推荐使用 pnpm

4. Java:使用 SDKMAN!

bash 复制代码
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

sdk install java 21.0.10-tem  # 安装 Java 21
sdk default java 21.0.10-tem  # 设置默认版本

五、 📁 最佳实践:工作目录规范

建议在 Home 目录下建立统一的 workspace 空间,分类存储不同语言的项目:

bash 复制代码
~/workspace/
  ├── go-projects/      # Go 项目
  ├── java-projects/    # Java/Spring 项目
  ├── web-projects/     # Next.js/Vue 等前端项目
  ├── ai-projects/      # Python/LLM 相关
  └── tools/            # 个人脚本与工具

六、 🔗 扩展资源

  • Windows Terminal 常用图标库 : GitHub - windows-terminal-icons
  • 字体推荐 : 安装 Nerd Fonts (如 JetBrainsMono Nerd Font) 以完美显示 Zsh 图标。
相关推荐
牛奶3 天前
分享一个开源项目,让 AI 辅助开发真正高效起来
前端·人工智能·全栈
姓王者3 天前
# 解决 Nautilus 自定义终端插件安装依赖问题
前端·后端·全栈
badhope3 天前
别再用 Python 写“小学生代码”了!这 5 个高级用法,让你的效率原地起飞(附源码)
python·全栈
Zacks_xdc3 天前
【全栈】Next.js + PostgreSQL + Vercel 实现完整登录系统(完整源码)
postgresql·全栈·next.js·登录鉴权·vercel
前端荣耀4 天前
Flutter 客户端热更新实战
前端框架·全栈
码森林5 天前
小龙虾居然比你更健忘?OpenClaw 记忆系统指南,让它永远记住你
人工智能·ai编程·全栈
CharlieWang5 天前
AI + Cloudflare = 你需要的全部
前端·敏捷开发·全栈
码森林6 天前
让 AI 开发不翻车:这套「Superpower」方法论可能颠覆你的编程方式
ai编程·全栈
helloweilei8 天前
NestJS系列(3)- Provider(提供者)
nestjs·全栈