作为一名长期在Windows平台开发的程序员,我一直在寻找一种既能保留Windows易用性又能获得Linux强大开发能力的解决方案。Windows Subsystem for Linux(WSL)的出现完美解决了这个痛点。相比传统虚拟机方案,WSL具有以下显著优势:
\\wsl$路径)我选择Ubuntu作为WSL发行版的原因在于:
提示:WSL2要求Windows 10版本2004或更高,建议升级到最新Windows 11以获得最佳体验
在开始安装前,请确认您的设备满足以下要求:
通过winver命令查看Windows版本号,必须为:
BIOS设置(部分电脑需要):
Windows功能启用:
powershell复制# 管理员身份运行PowerShell
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
设置WSL2为默认版本:
powershell复制wsl --set-default-version 2
注意:如果遇到"WSL 2 requires an update to its kernel component"错误,需要下载安装WSL2内核更新包(下载地址:aka.ms/wsl2kernel)
推荐通过Microsoft Store安装最新LTS版本:
如果无法访问Store,可使用以下命令安装:
powershell复制# 列出可用发行版
wsl --list --online
# 安装指定版本(推荐)
wsl --install -d Ubuntu-22.04
# 或者使用旧版命令
wsl --install
安装过程会经历以下阶段:
关键点:安装过程中不要关闭窗口或断开网络,否则可能导致环境损坏。我曾因强制中断导致网络模块异常,最终只能重装解决。
安装完成后首次运行会提示:
code复制Enter new UNIX username: yourname
New password:
Retype new password:
建议:
验证安装成功:
bash复制# 查看Linux内核版本
uname -a
# 检查发行版信息
lsb_release -a
默认安装位置C:\Users\<user>\AppData\Local\Packages会导致:
停止WSL运行:
powershell复制wsl --shutdown
导出当前系统(示例迁移到E盘):
powershell复制wsl --export Ubuntu E:\wsl\ubuntu.tar
这个过程可能持续5-15分钟,取决于系统大小
注销原系统:
powershell复制wsl --unregister Ubuntu
在新位置导入:
powershell复制wsl --import Ubuntu E:\wsl\ubuntu E:\wsl\ubuntu.tar --version 2
恢复默认用户:
powershell复制ubuntu config --default-user yourname
检查新位置磁盘占用:
powershell复制Get-ChildItem E:\wsl\ubuntu -Recurse | Measure-Object -Property Length -Sum
查看系统运行状态:
powershell复制wsl -l -v
应显示状态为"Running"且版本为2
编辑%USERPROFILE%\.wslconfig文件:
code复制[wsl2]
memory=8GB # 限制最大内存
processors=4 # 限制CPU核心数
swap=4GB # 交换空间大小
bash复制sudo apt install ubuntu-desktop
bash复制echo "export DISPLAY=$(awk '/nameserver / {print $2}' /etc/resolv.conf):0" >> ~/.bashrc
Python开发环境示例:
bash复制sudo apt update && sudo apt upgrade -y
sudo apt install python3-pip python3-venv -y
pip3 install --user pipx
pipx install poetry
症状:ping不通外网
解决方法:
powershell复制# 重置WSL网络
wsl --shutdown
netsh winsock reset
对于需要频繁读写的项目目录,建议:
/mnt/e/project)wsl.conf优化:ini复制[automount]
options = "metadata,umask=22,fmask=11"
在Ubuntu中执行:
bash复制sudo apt install ntpdate
sudo ntpdate time.windows.com
bash复制code .
bash复制sudo apt install zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
MySQL开发环境搭建:
bash复制sudo apt install mysql-server
sudo service mysql start
sudo mysql_secure_installation
经过半年多的WSL2使用体验,我的开发效率提升了至少40%。特别是在需要同时使用Windows办公软件和Linux开发工具的场景下,再也不用频繁切换系统或忍受虚拟机的卡顿了。