这是一份深度打磨的 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. 设置定时任务
- 搜索并打开 Windows 任务计划程序。
- 新建任务,设置触发器为"每周"或"每天"。
- 操作设置为
启动程序,程序栏输入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-autocomplete与zsh-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 速度极快,是目前替代 pip 和 conda 的热门选择。
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 图标。