🚀 全指南:基于 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 天前
大专毕业两年,我如何进入大厂,并逆袭八年的技术与认知成长
前端·程序员·全栈
前端双越老师3 天前
为什么说 OpenClaw 应该装在自己的电脑上
人工智能·agent·全栈
程序员飞哥4 天前
到底Java 适不适合做 AI 呢?
后端·程序员·全栈
得物技术4 天前
基于 Cursor Agent 的流水线 AI CR 实践|得物技术
前端·程序员·全栈
问道飞鱼8 天前
【技术方案】面向 Web 系统的《全栈灰度部署方案设计》
前端·全栈·灰度发布
前端缘梦8 天前
Next.js 实现AI流式输出(打字机效果)
前端·面试·全栈
前端双越老师9 天前
OpenClaw小龙虾新手使用记录
agent·全栈
DanCheOo9 天前
流式输出:让 AI 回复像 ChatGPT 一样打字机效果
前端·全栈
DanCheOo10 天前
我写了一个 AI Commit Message 生成器,再也不用想怎么写 git commit 了
git·全栈