很多玩Windows的朋友第一次接触到WSL这个词,第一反应都是:这玩意到底有什么用?我直接装个虚拟机不香吗?等你真的在公司电脑上试着用WSL跑过一次Linux命令、在WSL里装过CUDA跑过一次深度学习、或者因为项目需要不得不写shell脚本时,你就会发现——WSL这个微软亲儿子,确实能在Windows上用shell用出接近原生Linux的体验。这篇博文我从安装到排坑,把WSL和shell相关的实操经验一次讲透,适合刚想入门的开发新手,也适合准备把WSL迁移到正式工作环境的进阶玩家。
1. 项目核心思路:为什么选择WSL而不是虚拟机
1.1 WSL到底解决了什么问题
先说说我在实际项目里遇到的一个典型场景。领导丢过来一个需求:把一套原本跑在Linux服务器上的数据处理脚本,在本地Windows环境里调试好。你一打开项目文档,满屏的 grep、awk、sed,这些命令在PowerShell里要么语法不对,要么功能不全。这时候你有三个选择:装虚拟机、换Linux系统、用WSL。
装虚拟机的问题在于资源开销太大。我试过用VMware跑一个Ubuntu,开机就占2GB内存,磁盘还得单独分配几十GB,日常开发时来回切换窗口很割裂。换Linux系统更不现实,公司内部各种办公软件、OA系统都绑定Windows环境。WSL则完全不同——它不是一个完整的虚拟机,而是微软实现的一个兼容层,直接在Windows内核之上运行一个真实的Linux用户态环境。你不需要承担虚拟机那套硬件模拟开销,启动一个WSL发行版基本在几秒内完成,内存占用也就几百兆。
1.2 WSL 1和WSL 2怎么选
WSL目前主流的版本是WSL 2,它相比WSL 1最大的变化是使用了一个轻量级虚拟机(基于Hyper-V技术),内核是真正的Linux内核。WSL 1则走的是系统调用翻译的路线,把Linux的系统调用转换成Windows的系统调用。
在实际使用中,WSL 2的兼容性明显更好。比如你用 docker、apt 安装某些依赖、甚至编译Linux内核模块,WSL 1大概率会碰到兼容性问题。WSL 2对绝大多数Linux软件的兼容度已经达到"能跑就行"的水平。我个人的建议是:新用户直接装WSL 2,不要犹豫。
注意:WSL 2需要开启Windows的虚拟机平台功能。如果你的电脑不支持虚拟化(比如某些老旧的CPU,或者BIOS里关闭了VT-x),WSL 2可能无法正常运行。可以先去BIOS里确认虚拟化是否开启。
1.3 适合谁来学
如果你属于下面这几类人,这篇文章的实操内容会对你帮助不小:
- 前端或后端开发,需要用到Linux命令行工具链(比如
grep、sed、git、node),但又不想放弃Windows桌面。 - 机器学习或数据科学从业者,需要在Windows电脑上配置CUDA、跑PyTorch/TensorFlow,WSL 2是目前Windows下最接近Linux训练环境的选择。
- 运维或测试人员,需要在本机写shell脚本、模拟Linux服务器环境做验证。
- 学生党,学校课程要求用Linux环境跑实验,但电脑配置一般,跑虚拟机太卡。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 实操准备:Windows环境检查与基础设置
2.1 确认系统版本
在开始安装之前,先确认你的Windows版本支持WSL。当前主流的Windows 10(版本号2004及以上)和Windows 11都支持WSL 2。查看方法很简单:按 Win + R,输入 winver,回车就能看到系统版本号。
如果你还在用Windows 7,那很遗憾,WSL官方不支持,别折腾了,老老实实装虚拟机或者换系统。Windows Server 2019及以上版本也支持WSL,我在一台Server 2019上成功装过,但步骤比桌面版稍微繁琐一些,需要手动启用几个Windows功能。
2.2 启用必要的Windows功能
在安装WSL之前,有两个Windows功能需要确认已经开启。打开PowerShell(管理员身份),输入:
powershell复制dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
第一条命令启用“适用于Linux的Windows子系统”,第二条启用“虚拟机平台”。这两条命令执行完后,系统大概率会提示重启,建议重启后再继续后续操作。
如果你在PowerShell里执行命令时提示“无法识别
dism.exe”,说明PowerShell的执行路径有问题,可以用管理员身份打开CMD再试。另外,执行前最好关闭所有正在运行的软件,避免文件占用导致操作失败。
2.3 PowerShell和终端设置
Windows 11自带的Windows Terminal是目前体验最好的终端工具,建议直接安装。Windows 10用户也可以从微软商店搜索“Windows Terminal”免费安装。装好之后,把默认终端设置为Windows Terminal,后续所有shell操作都在这个环境里完成。
打开Windows Terminal,按 Ctrl + , 进入设置界面,在“默认终端应用程序”里选择“Windows Terminal”,然后把默认配置文件改成你之后要安装的Ubuntu(这个要装完WSL后才会出现在下拉列表里)。这个设置的好处是:以后打开终端,直接就是Linux s
