不装双系统、不用虚拟机:WSL 2 让Linux原生跑在Windows里

📅 2026/8/20 14:58:16
不装双系统、不用虚拟机:WSL 2 让Linux原生跑在Windows里
不装双系统、不用虚拟机在Windows里10分钟拥有原生Linux体验前言为什么说WSL是Windows用户学Linux的最短路径传统方式 vs WSL 对比方式优点缺点学习曲线虚拟机VMware/VB隔离性好资源占用大、启动慢、需要分配内存硬盘陡峭双系统原生性能重启切换、分区风险、驱动问题最陡远程服务器真实生产环境需要网络、需要花钱、需要会SSH陡峭WSL 2原生内核、秒启动、资源动态、与Windows无缝不支持GUI图形界面可解决平缓WSL Windows Subsystem for Linux是微软官方开发的Linux兼容层让Linux程序直接在Windows上原生运行没有虚拟机的性能损耗没有双系统的切换成本WSL 能做什么场景说明Python开发在Linux环境下开发避免Windows各种环境变量问题Docker容器原生支持Docker Desktop开发运维一体化Shell脚本学习bash、awk、sed掌握Linux自动化技能运维工具ssh、curl、git、vim生产环境工具提前练手编译环境gcc、make、cmakeC/C项目轻松编译️数据库MySQL、PostgreSQL、Redis原生Linux性能在Windows电脑里装了一个Linux系统Ubuntu 24.04它和Windows可以同时运行、随时切换。项目举个例子学习Linux命令练手、熟悉服务器操作写代码跑程序Python、Java、C等开发环境装各种开发工具Docker、Git、Node.js、MySQL等折腾运维技术Shell脚本、网络配置、权限管理操作Windows文件在Linux里可以直接访问C盘、D盘以后写代码、跑服务、学Linux不用再装虚拟机或者换系统了在Windows里随时打开就能用。话不多说上操作一、环境要求与安装环境要求Windows 10 版本或者Windows 11且开启虚拟化支持安装如下1.以管理员身份打开 PowerShell 或 CMD执行wsl --install接着它会启用 Windows 功能并安装 WSL 2 内核和默认的Ubuntu 发行版2. 查看已安装的发行版wsl -l -v输出类似如下。*表示默认发行版VERSION 2表示使用 WSL 23.启动Ubuntu在PowerShell中输入wsl首次启动需要创建用户名和密码。密码输入时不显示任何字符正常输入后回车即可wsl命令只能在Windows环境下执行进入到Ubuntu系统是不能执行的会报错无法找到命令4. 如果永远用不到Linux了就执行卸载命令wsl --unregister ubuntu-24.04二、Ubuntu 24.04 LTS 基础配置1.换国内软件源加速 apt# 备份原 sources.list sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 替换为中科大源Ubuntu 24.04 sudo sed -i s//archive.ubuntu.com//mirrors.ustc.edu.cng /etc/apt/sources.list # 更新软件包列表 sudo apt update # 升级所有已安装的包 sudo apt upgrade -y2.安装必备工具# 基础开发工具链 sudo apt install -y build-essential curl wget git vim # Python 环境 sudo apt install -y python3 python3-pip python3-venv # 网络工具 sudo apt install -y net-tools iputils-ping # 数据库按需 sudo apt install -y mysql-server redis-server # Docker最推荐的方式是在Windows装Docker Desktop自动集成WSL3.配置 Git 用户信息git config --global user.name 你的名字 git config --global user.email 你的邮箱 # 查看配置 git config --global --list4.配置终端让 Shell 更好用安装zshoh-my-zsh提升终端体验) 执行后重启wsl使其生效# 安装 zsh sudo apt install -y zsh # 安装 oh-my-zsh sh -c $(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh) # 设置为默认 shell chsh -s $(which zsh)三、磁盘迁移WSL 从 C 盘迁移到其他盘WSL 默认安装在 C 盘虚拟磁盘文件ext4.vhdx会随着使用越来越庞大动辄几十 GB。迁移到 D 盘/E 盘释放 C 盘空间wsl -l -v # 1 查看当前 WSL 状态 记发行版名称通常是Ubuntu wsl --shutdown # 2 关闭 WSL wsl --export Ubuntu E:\wsl_backup\ubuntu.tar # 3 导出系统为备份文件 # 4 检查文件存在 dir E:\wsl_backup\ # 5 查看文件大小应该在几百 MB 到几 GB (Get-Item E:\wsl_backup\ubuntu.tar).Length mkdir E:\WSL\Ubuntu #6 在目标盘创建新目录 # 7 导入到新位置 wsl --import Ubuntu E:\WSL\Ubuntu E:\wsl_backup\ubuntu.tar --version 2 # 启动新系统 wsl -d Ubuntu # 在 Ubuntu 终端内确认分区 应该显示挂载点在 E 盘类似 /dev/sdb 或 /dev/sdc df -h / # 确认用户文件是否存在 ls -la /home/你的用户名/ # 退出 exit删除 C 盘旧系统wsl --unregister Ubuntu # 确认新系统没问题后再执行 del E:\wsl_backup\ubuntu.tar # 清理备份文件 wsl --set-default Ubuntu # 设置默认启动导出 → 导入到D盘 → 删除C盘原版 → 搞定。所有已安装的软件和数据都完好无损四、常用命令速查wsl命令在WSL内部不能用它是在Windows的命令行或PowerShell里用的。想升级或管理WSL需要在Windows那边操作命令说明wsl进入默认 Linux 发行版wsl -d Ubuntu指定发行版进入wsl -u root以 root 用户进入wsl -u yang以指定用户进入wsl -l -v列出所有发行版及状态wsl --shutdown立即关闭所有 WSL 实例wsl --terminate Ubuntu关闭指定发行版wsl --export Ubuntu D:\backup.tar导出发行版为备份文件wsl --import Ubuntu D:\WSL D:\backup.tar --version 2从备份文件导入wsl --unregister Ubuntu注销/删除指定发行版wsl --set-default Ubuntu设置默认发行版wsl --set-version Ubuntu 2升级到 WSL 2wsl --update更新 WSL 内核wsl --status查看 WSL 状态Ubuntu --version不是Linux命令所以提示command not foundlsb_release -a # 看Ubuntu版本五、开发环境搭建安装 Docker DesktopWindows 版自动集成 WSL下载 Docker Desktop for Windows安装时勾选Use WSL 2 instead of Hyper-V设置 → Resources → WSL Integration → 启用 Ubuntu然后你就可以在 Ubuntu 终端里直接使用 Docker 命令了docker --version docker run hello-world安装 Node.js 环境# 使用 nvm 管理 Node.js 版本 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 重新加载配置 source ~/.bashrc # 安装最新 LTS 版本 nvm install --lts # 查看版本 node --version npm --version安装 Go 语言环境# 下载 Go wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz # 解压到 /usr/local sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz # 配置环境变量 echo export PATH$PATH:/usr/local/go/bin ~/.bashrc source ~/.bashrc # 验证 go version安装 Java 环境sudo apt install -y openjdk-17-jdk java -version安装 Python 虚拟环境管理工具# 安装 pipenv pip3 install pipenv # 或安装 miniconda数据科学必备 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh六、常见问题 FAQQ1WSL 和虚拟机有什么区别项目虚拟机WSL 2启动速度慢1-5分钟快1-3秒内存占用固定分配动态分配文件系统完全隔离无缝共享/mnt/c与 Windows 交互需要网络原生互通Q2WSL 能运行 GUI 软件吗可以Windows 11 自带 WSLg支持 Linux GUI 应用# 安装 GIMP图形软件 sudo apt install -y gimp gimp #WSLg 会自动显示窗口Q3WSL 里能访问 Windows 文件吗可以Windows 的 C 盘挂载在/mnt/cD 盘在/mnt/dls /mnt/c/Users/Q4WSL 的文件在 Windows 的什么位置在文件资源管理器地址栏输入\\wsl$\Ubuntu\即可访问\\wsl$\Ubuntu\home\yangQ5迁移后如何确认使用的是 WSL 2wsl -l -v # 如果版本是 1升级到 2 wsl --set-version Ubuntu 2Q6:导入时报错已存在具有提供的名称的分发原因新系统与旧系统重名了。# 方法一先重命名旧系统 wsl --rename Ubuntu Ubuntu_Old # 再重新导入此时名字不冲突 wsl --import Ubuntu E:\WSL\Ubuntu E:\browser_files\wsl_Ubuntu.tar --version 2 # 设置默认 wsl --set-default Ubuntu # 方法二导入时换个名字 wsl --import Ubuntu_New E:\WSL\Ubuntu E:\browser_files\wsl_Ubuntu.tar --version 2Q7导入后wsl -d Ubuntu进的不是新系统原因存在两个同名发行版。# 查看所有发行版 wsl -l -v # 删除旧的确认新系统没问题后 wsl --unregister Ubuntu总结迁移wsl --shutdown # 1. 关闭 WSL wsl --export Ubuntu E:\backup.tar # 2. 导出备份 wsl --import Ubuntu E:\WSL E:\backup.tar --version 2 # 3. 导入新位置 wsl --unregister Ubuntu # 4. 删除旧版WSL 是 Windows 用户进入 Linux 世界的任意门——没有门槛只有生产力。附录 参考资料Microsoft WSL 官方文档WSL GitHub 仓库Ubuntu 24.04 LTS 官方文档清华大学开源软件镜像站如果这篇文章对您有帮助欢迎点赞、收藏、转发