以前我给别人推荐在Windows上做Linux开发,第一反应都是装虚拟机,第二反应是装双系统。虚拟机开个IDE卡得让人烦躁,双系统换个环境还得重启,来回折腾几次就懒得用了。直到Windows 10 2004之后WSL2成熟、wsl --install这条命令出现,我才真正把"在Windows上做Linux开发"当成日常。现在新电脑到手,从打开PowerShell到进入一个能跑Docker、能连VS Code的Ubuntu环境,全程不超过五分钟,大部分时间是在等下载。
这篇文章是我这套Windows命令行一键安装、配置WSL完整流程的落地记录,包括前置检查、一条命令安装、首次配置、常见翻车场景的排查链路,以及把WSL接进VS Code和Docker的经验。不管是刚接触命令行的小白,还是想从虚拟机迁移过来的老手,都可以直接照着操作。
1. 放弃虚拟机与双系统:WSL2解决了我最痛的三件事
1.1 我的使用场景与WSL的定位
我是做后端开发的,日常离不开Linux环境:Shell脚本、grep日志、Docker容器、Redis之类的中间件,很多操作在Windows原生的CMD或PowerShell里做就是别扭。以前公司发的Windows笔记本,我一般装一个VMware跑Ubuntu,后来换了新电脑才痛下决心把WSL2用起来。
WSL(Windows Subsystem for Linux)是Windows提供的一个兼容层,能在不装虚拟机软件、不切系统的情况下运行真实的Linux发行版。WSL2其实是一个轻量级虚拟机,由Windows内置的虚拟机平台托管,但因为内核和启动流程都是微软深度集成的,所以启动速度接近原生进程,和传统VMware完全是两个体验。
对普通开发者来说,WSL的价值可以概括成三句话:在Windows里拥有一个完整的Linux终端;不用重启就能用apt安装Linux软件;文件系统、端口、剪贴板都和Windows互通。这篇文章要讲的,就是怎样用命令行把它一键装好、配好。
1.2 WSL2对比虚拟机、双系统的真实体验
很多人在"虚拟机、双系统、WSL"三者之间纠结,我三样都用过,直接说结论:如果你的需求是"偶尔用Linux跑命令、做开发",WSL2是所有方案里边际成本最低的。
- 启动速度:虚拟机要先启动整个系统,双系统要重启切换;WSL2登录一个新的Ubuntu会话基本是秒开。
- 资源占用:VMware给虚拟机分2GB内存,这台机器就真的少2GB;WSL2用的是动态内存,按需分配,空闲时会把内存还给Windows。
- 文件互通:虚拟机里访问Windows文件要走共享文件夹,路径绕;WSL2里直接
cd /mnt/c就是C盘,Windows里也能用\\wsl$打开Linux文件系统,双向都是原生体验。 - 网络:WSL2默认通过NAT网络转发,本机访问WSL里的服务(比如
localhost:8080)可以直接通,不需要手动配置端口映射;反过来WSL访问Windows的网络也没障碍。
双系统适合需要完整硬件性能的场景,比如跑大型GPU计算、需要独立显卡直通;虚拟机适合需要完整图形界面、并且要长期挂机跑服务的场景。但如果你只是要一个趁手的Linux开发环境,WSL2是效率最高的选择。
1.3 "一条命令安装"为什么是体验分水岭
在wsl --install出现之前,装WSL是个劝退过程:要手动去"启用或关闭Windows功能"里勾选Windows Subsystem for Linux,还要勾选虚拟机平台,然后重启,再去下载一个内核更新包,最后还要去商店挑发行版。每一步看似不难,组合起来就容易出问题,光是在"功能勾选后重启"这一步就能卡住一批人。
wsl --install把这几步全包了:检查并启用所需的Windows功能,下载WSL2内核,下载并安装默认发行版,整个过程只需要在管理员PowerShell里执行一条命令。这条命令对新手最大的意义是减少了"我是不是少做了一步"的自我怀疑,对老手最大的意义则是可以脚本化、批量部署。我后来给同事配开发机,全都是贴上这条命令,跑完重启就完事。
2. 装之前先自查:系统版本、虚拟化开关与发行版选型
2.1 系统版本检查:先确认你的Windows够不够新
很多人执行wsl --install报错,第一反应是命令打错了,其实大概率是系统版本太老。WSL2需要Windows 10 2004及以上版本,Windows 11全系支持;最早的WSL1对系统要求更低,但体验差不少,现在新装系统没必要回头用WSL1。
检查版本最简单的方式是Win+R输入winver,弹窗里会显示"版本"信息。如果你看到版本号低于2004,先把Windows Update跑了再继续。另外我建议尽量保持在较新的Windows 11版本上使用,因为后续版本的WSL还加入了镜像网络模式、WSLg图形支持这些实用特性,这些都要依赖系统更新。
管理员PowerShell里还可以跑一条命令看当前的虚拟化状态:
bcdedit /enum | findstr hypervisorlaunchtype如果输出是Auto或Off,说明虚拟化层可以被WSL2使用;如果显示hypervisorlaunchtype缺失或异常,可能是Hyper-V被手动关过,重启后一般能恢复。
2.2 BIOS虚拟化与系统功能开关
这一步是很多"卡在启动时"案例的根源。WSL2本质是个虚拟机,必须依赖CPU的硬件虚拟化技术(Intel VT-x或AMD-V)。虽然WSL安装过程会自动启用系统功能,但BIOS里的虚拟化开关它管不了。
检查方法很简单:打开任务管理器,切到"性能"选项卡,看CPU一栏右下角有没有"虚拟化: 已启用"。如果显示"已禁用",需要重启进入BIOS(通常是开机按Del或F2),在CPU配置或虚拟化相关菜单里找到Intel Virtualization Technology / SVM Mode,设为Enabled,保存退出。
系统自带的虚拟化平台功能如果没启用,安装脚本会自动启用并提示你重启。如果你想手动确认,也可以用管理员身份执行:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart跑完之后手动重启一次再继续。这个命令在wsl --install失败、或者你想修复系统功能状态时非常有用。
2.3 WSL1与WSL2的差异,默认版本怎么定
WSL2比WSL1快在文件系统和内核兼容性上。WSL1是通过系统调用翻译层把Linux调用转成Windows调用,兼容性有限,有些软件会报奇怪错误;WSL2则是一个包含真实Linux内核的轻量虚拟机,能和标准Linux环境完全兼容,Docker、systemd都能跑。
唯一的代价是WSL2的文件IO在跨Windows文件系统(/mnt/c)时会有性能损耗,因为要经过9P协议转换。这个损耗在"Linux里频繁读写Windows目录"时明显,比如在WSL里直接操作Windows桌面上的Node项目,npm install会明显变慢。解决方案是项目文件放在Linux文件系统内部,需要用Windows编辑器打开时再通过\\wsl$访问。这不是WSL2的缺陷,用的时候注意方向就行。
安装时我推荐显式把默认版本设为2:
wsl --set-default-version 2这样后续安装的所有发行版都会默认用WSL2,避免出现"装完了发现是WSL1"的尴尬。
2.4 发行版选型:默认Ubuntu还是其他选择
wsl --install不接参数时默认装Ubuntu,这个默认值其实很合理。Ubuntu在WSL社区的用户基数最大,遇到问题随便一搜都有答案,apt软件源覆盖面也广。如果你有特定诉求,可以先用下面的命令查看当前支持在线安装的发行版列表:
wsl --list --online常见的还有Debian(更精简、适合当服务器环境练习)、Kali Linux(做安全测试)、openSUSE等。我的建议是:没有特殊需求就老老实实用Ubuntu,选LTS版本,比如Ubuntu 24.04 LTS,别追着非LTS版本跑,开发环境稳定最重要。
指定发行版安装的方式是在wsl --install后加-d参数:
wsl --install -d Ubuntu-24.04如果你不想装图形界面也不想要默认发行版,只想先把WSL内核准备好,可以用wsl --install --no-distribution,之后再按需添加发行版。这个选项在做批量初始化的脚本里很实用。
3. 核心操作:wsl --install从执行到首次登录的完整记录
3.1 用管理员PowerShell执行安装命令
右键开始菜单,选择"终端(管理员)"或"Windows PowerShell(管理员)",然后执行:
wsl --install -d Ubuntu-24.04注意这里一定要用管理员权限打开,否则后面启用Windows功能那一步会因为没有权限而报错。另外不要把命令里的-d Ubuntu-24.04看死,具体名称先跑wsl --list --online确认一下,因为不同时期的镜像列表里的名称可能会有小差异。
第一次执行这条命令时,输出通常会经过几个阶段:先是提示正在启用所需的Windows功能,然后提示下载WSL内核,最后是下载并安装发行版。整个过程可能持续几分钟到十几分钟,取决于你的网速和微软服务器的连接情况。中间如果系统提示需要重启,按提示重启后重新打开终端,接着执行同一条命令,安装流程会继续而不是从头开始。
3.2 这条命令背后自动完成的几件事
我拆解一下这条命令实际干了什么,你就知道为什么它能取代过去手动配置那一大套:
- 启用"适用于Linux的Windows子系统"和"虚拟机平台"两个Windows功能。这一步在过去是最容易漏的。
- 下载并安装WSL2内核更新包。老流程需要去微软官网手动下载MSI文件。
- 从微软商店服务器拉取指定的发行版(默认Ubuntu)并注册到WSL管理框架中。
- 自动把默认WSL版本设为2(在支持的系统上)。
整个流程看起来是"一键",但实际还是分阶段下载的。所以如果中途网络断了,不要慌,修复网络后重新执行命令即可,已经完成的部分不会重复下载。
安装完成后,可以用两个命令验证WSL本体状态:
wsl --version wsl -l -vwsl --version输出的是WSL运行时版本信息,能看到内核版本号;wsl -l -v列出已安装的发行版以及每个发行版用的是WSL1还是WSL2。如果wsl --version提示命令不存在,说明你的系统版本较旧,需要执行wsl --update更新内核,或者手动安装内核更新包后再继续。
3.3 首次启动Ubuntu:用户名、密码与sudo权限
安装完成后,你可以在管理员终端里直接执行wsl或wsl -d Ubuntu-24.04进入Linux环境。首次启动会提示你为Ubuntu创建一个UNIX用户名和密码。
关于用户名,有几个实际问题要先说清楚:这个用户名是进入Linux环境后的登录名,和你Windows用户名没有必须的对应关系,可以随意取,但它会成为你的家目录名称(/home/用户名),所以建议一次取好,比如我用的就是姓名的拼音缩写,简洁好记。密码在Linux下输入时屏幕不会显示任何字符,这不是键盘坏了,是终端安全策略,输完直接回车即可。
创建完用户后,这个用户默认具备sudo权限,需要输入密码的场景会出现[sudo] password for xxx:提示。我建议第一时间验证一下sudo是否生效:
sudo apt update如果能看到软件源索引刷新的输出,说明用户和sudo都没问题。如果提示用户不在sudoers里,可以重启WSL在内置的root用户下修复:
wsl -d Ubuntu-24.04 -u root usermod -aG sudo 你的用户名这个-u root参数在忘记Linux密码时也是救命稻草,Windows侧可以直接指定用户身份进入发行版。
3.4 安装后的基础健康检查
进入系统后不要急着装一堆工具,先把基础状态确认一遍。我每次配新环境都会跑这几条:
cat /etc/os-release uname -a df -h / free -hcat /etc/os-release确认系统版本和代号,uname -a看内核版本,df -h /看根分区剩余空间,free -h看内存分配情况。WSL2默认会动态使用Windows可用内存,如果没做限制,free看到的内存可能接近宿主机全部内存,这正常,后面可以用.wslconfig限制。
如果你的系统是Windows 11并且WSL版本较新,此时还可以测试一下图形程序支持(WSLg):
sudo apt install -y x11-apps xeyes能弹出窗口就说明WSLg的GUI支持正常。不过这只是验证,实际开发中我很少在WSL里跑图形软件,日常还是以终端和VS Code为主。
4. 配置清单:换源、常用工具、资源限制与文件互访
4.1 apt切换到国内镜像源
WSL里的Ubuntu默认用的是Ubuntu官方软件源,服务器在国外,apt update经常慢得让人怀疑人生。我建议安装完第一件事就是把apt源切换到国内镜像源,这是提升后续所有安装体验的关键一步。
Ubuntu 24.04及以后版本改了软件源配置方式,从单文件/etc/apt/sources.list改成了deb822格式的/etc/apt/sources.list.d/ubuntu.sources。我先备份再替换:
sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak sudo sed -i 's|http://archive.ubuntu.com/ubuntu|https://mirrors.tuna.tsinghua.edu.cn/ubuntu|g' /etc/apt/sources.list.d/ubuntu.sources sudo sed -i 's|http://security.ubuntu.com/ubuntu|https://mirrors.tuna.tsinghua.edu.cn/ubuntu|g' /etc/apt/sources.list.d/ubuntu.sources sudo apt update如果你用的是Ubuntu 22.04及更早版本,配置路径是/etc/apt/sources.list,命令换成对应路径即可。除了清华镜像源,阿里云镜像源(mirrors.aliyun.com)也是稳妥的选择,选一个用就行,不要混合配多个。
这里有个小提醒:sed替换只处理了http://archive.ubuntu.com和http://security.ubuntu.com两种情况,如果你的sources文件里还有http://ports.ubuntu.com之类的内容,需要手动打开文件检查一遍,把域名换成镜像站对应路径。
4.2 常用开发工具的推荐安装顺序
换完源之后,我推荐的安装顺序是:先装基础编译工具链,再装版本管理工具和运行环境,最后按项目需求装语言运行时。
sudo apt update && sudo apt upgrade -y sudo apt install -y build-essential git curl wget zip unzipbuild-essential包含gcc、g++、make等编译工具,很多软件安装时要现场编译,这个包不装后面会反复踩坑。git是开发环境标配,curl和wget用于下载,zip和unzip处理压缩包。
然后是编程语言运行时。我的建议是Python用系统中自带的python3即可,但要注意WSL里的Ubuntu默认不带python-is-python3,执行python会提示命令不存在。装一下这个包,能省去很多脚本里python3和python分不清的烦恼:
sudo apt install -y python3 python3-pip python-is-python3Node.js则优先用nvm管理版本,直接apt install nodejs装的版本往往偏旧,而且切版本不方便。安装nvm用官方脚本,装完之后新开终端就能用node和npm。MySQL、Redis这类中间件我一般直接sudo apt install -y mysql-server redis-server,WSL里跑单机开发环境完全够用。
最后我强烈建议装一下zsh并配上oh-my-zsh。虽然bash够用,但zsh的补全和主题确实提升终端幸福感,装命令是sudo apt install -y zsh,然后从oh-my-zsh官方仓库拉安装脚本,装完chsh -s $(which zsh)把默认shell切过去,重开终端生效。
4.3 用.wslconfig控制内存、CPU与网络模式
WSL2默认内存策略是动态分配,宿主机内存够用就不管,但如果你在WSL里跑编译任务或者多个容器,内存占用会快速膨胀,把Windows卡到鼠标飘。我建议在Windows用户目录下创建一个.wslconfig文件,显式限制WSL2的资源使用:
[wsl2] memory=8GB processors=4 swap=2GB networkingMode=mirroredmemory是WSL2可用的最大内存,processors是可用CPU核心数,swap是交换分区大小。networkingMode=mirrored是WSL 2.0.0之后引入的镜像网络模式,开启后Windows和WSL共享同一套网络接口,访问WSL里的服务不用再做任何转发,对本地联调特别友好。
修改完.wslconfig不会立即生效,需要完全重启WSL:
wsl --shutdown然后重新进入WSL,用free -h验证内存限制,用cat /proc/net/dev查看网络模式变化。注意networkingMode=mirrored需要Windows 11 22H2以上版本,如果你的系统不支持,配置文件里不要写这一行,默认的NAT模式配合Windows对localhost的自动转发也够用了。
4.4 Windows和WSL双向文件互访
WSL和Windows的文件互访是日常使用频率最高的能力,但用法的方向感很重要,用反了会明显变慢。
在WSL里访问Windows文件,路径挂在/mnt下。比如访问C盘桌面,就是/mnt/c/Users/你的Windows用户名/Desktop。注意这里牵涉到9P文件系统转换,读写比Linux原生文件系统慢一些,所以项目代码、依赖包这类高频IO文件,一定放在Linux文件系统内部,也就是你的家目录/home/用户名下。Windows侧需要编辑WSL里的文件时,在资源管理器地址栏输入\\wsl$\Ubuntu-24.04\home\用户名,就能像操作本地目录一样编辑,VS Code也推荐通过这种方式打开远程项目。
反过来,在Windows命令行里也可以直接调用Linux命令,因为WSL默认开启了互操作。比如在PowerShell里执行wsl ls -la就能直接列出当前目录的Linux视角内容。这个能力让很多Windows批处理脚本可以直接调用Linux工具,比如数据预处理脚本里用wsl jq解析JSON,比在PowerShell里写原生命令省事得多。
有一个容易忽略的坑:WSL里通过/mnt/d访问移动硬盘这类热插拔设备时,如果Windows侧没有正常卸载,WSL访问可能报设备占用错误。这种情况下先在Windows里安全弹出设备,再在WSL里访问。
5. 高频翻车现场:装不上、下载慢、离线安装与数据迁移
5.1 报错0x80370102和0x80070003的排查链路
我见过的WSL安装故障里,出现频率最高的是两个错误码:0x80370102和0x80070003。
0x80370102这个报错基本等于在说"虚拟化没就绪"。可能的原因有两个:一是BIOS里的虚拟化开关被关掉了,二是Windows的虚拟机平台功能没正确启用。排查链路是:先打开任务管理器确认CPU一栏"虚拟化: 已启用",如果是"已禁用",进BIOS打开VT-x/SVM;如果任务管理器显示已启用但WSL还是报这个错,用之前提到的两个dism命令重新启用功能,然后重启。
0x80070003常见于系统找不到指定路径。这个报错多数出现在Windows功能还没完全启用就急着安装发行版的时候。解决办法:确认所有需要的Windows功能都已启用并重启,然后执行:
wsl --update wsl --install -d Ubuntu-24.04还要注意一种特殊情况:如果你用的是Windows Server或某些精简版系统,商店可能被裁剪掉了,wsl --install可能找不到发行版下载源。这种情况下直接走5.3节的离线安装方案最稳。
5.2 wsl --install下载太慢的真实原因和破解方法
"wsl --install太慢"是搜索热词,我在实际帮人排查时发现,大部分情况不是卡死,而是真的在下载,只是下载源是微软的海外服务器,在国内网络环境下速度确实不理想。判断它到底是在下载还是卡死,可以开着任务管理器观察网络活动,或者查看磁盘占用,如果有持续的网络或磁盘IO,就是还在跑。
针对下载慢,我实测有效的方法按推荐顺序排:
修改DNS为公共DNS。Windows的DNS如果解析到距离较远的CDN节点,下载确实会慢。我习惯在网络适配器属性里把DNS改成
223.5.5.5(阿里公共DNS)或114.114.114.114,改完执行ipconfig /flushdns刷新缓存。手动下载WSL2内核更新包。如果你的安装卡在内核下载阶段,可以直接用浏览器访问WSL内核的官方直链地址(微软云的存储地址),下载完成后双击安装。我一般用IDM这类下载工具拉这个文件,速度比命令行稳定很多,装完再执行
wsl --version看内核版本是否正常。如果卡在发行版下载阶段,可以打开Microsoft Store搜"Ubuntu",从商店页面里点"获取"或"安装",有时候商店的下载通道比命令行拉镜像更快。装完后WSL会自动识别商店里已安装的发行版。
网络环境允许的话,换一个网络重试。我在办公室遇到WSL安装卡住,切到手机热点后往往就顺利通过了,这个现象说明问题出在特定网络到微软服务器的链路质量上,和命令本身没关系。
以上方法都不需要任何额外工具,也符合正常的网络排查流程。核心思路是:能改通道就改通道,能换网络就换网络,实在不行还有离线安装兜底。
5.3 离线环境安装WSL的两种可落地做法
有些内网开发环境不能直连外网,或者外网下载实在无解,这时候就需要离线安装。我实践中验证过两种做法,都能落地。
第一种是手动下载发行版的安装包(appx格式),然后在目标机器上安装。在能联网的电脑上,通过浏览器打开微软商店中对应Ubuntu发行版的页面,获取到appx或msixbundle格式的安装包文件,把它拷贝到目标机器后,在管理员PowerShell里执行:
Add-AppxPackage -Path "下载好的Ubuntu安装包路径.appx"装完后需要手动注册到WSL:
wsl --install --no-distribution wsl --update这一步主要是把WSL运行时本身准备好,如果系统已经能跑WSL命令,就直接执行wsl --version确认内核没问题,然后就可以进入Ubuntu了。
第二种是更通用的export/import方式。它尤其适合内网批量部署:先在任意一台已经装好Ubuntu的电脑上导出一个完整的文件系统快照,然后拷贝到内网机器导入。
在源机器上执行:
wsl --export Ubuntu-24.04 D:\backup\ubuntu.tar在目标机器(已装好WSL但没有发行版)上执行:
wsl --import Ubuntu-24.04 D:\WSL\Ubuntu-24.04 D:\backup\ubuntu.tar --version 2导入后的Ubuntu默认会以root身份登录,如果想恢复普通用户登录,进入系统后编辑/etc/wsl.conf:
[user] default=你的用户名保存后执行wsl --shutdown再重进,就会用普通用户身份登录。需要注意的是,这种方式导入的是文件系统快照,源机器上安装过的软件会一并带过来,所以它非常适合作为内网环境"标准开发镜像"的分发方案。
5.4 备份迁移与彻底重装:export/import/unregister
既然提到了export/import,顺便把备份迁移的实际用法说透。WSL整个文件系统就是一张tar包,这意味着备份和迁移异常简单。我一般每月会导出一次关键开发环境:
wsl --export Ubuntu-24.04 D:\backup\ubuntu-2025-$(Get-Date -Format 'yyyyMMdd').tar重装系统的流程就是:导出tar包,重装后安装WSL本体,再执行wsl --import导入,最后在/etc/wsl.conf里恢复默认用户。整个过程比重新安装一遍所有软件快太多了。
彻底卸载某个发行版用unregister:
wsl --unregister Ubuntu-24.04这个命令会删除该发行版的所有数据和配置,执行前确认你已经做好了导出备份。如果你想重置整个WSL环境,把几个发行版unregister掉再重新安装,比在系统设置里折腾快速得多。
还有一个常见场景:WSL里的磁盘空间越来越大,根分区满了。WSL2使用虚拟磁盘文件,空间不会自动缩回。如果你通过export/import把环境导出一遍再重新导入,虚拟磁盘会被重新压缩,这是最省力的瘦身方法。
6. 装完还不够:把WSL接进VS Code、Docker与日常开发流
6.1 VS Code Remote-WSL的配置
WSL配上VS Code,体验上基本等于一个原生Linux编辑器。前提是在Windows侧的VS Code里安装官方扩展"WSL"。装好后,在WSL终端里进入项目目录,执行:
code .VS Code会自动以WSL远程模式打开当前目录,左下角会显示类似"WSL: Ubuntu-24.04"的连接状态。这时候VS Code内部的终端就是WSL里的shell,所有文件操作都发生在Linux文件系统内,插件和扩展也会安装在WSL侧,性能和本地编辑没有任何区别。
我在实际使用中的体会是:保持一个固定项目目录在Linux家目录下,用VS Code连进去写代码,比通过/mnt/c访问Windows目录顺畅很多,尤其是npm、pip这类会产生大量小文件依赖的工具,IO差异非常明显。日常开发流变成:WSL里起后端服务,VS Code里调试,Windows浏览器访问localhost看效果,整个过程没有任何一个环节需要切环境。
6.2 Docker Desktop的WSL2后端
很多人装Docker桌面版是为了Windows容器,但如果你在WSL2里做开发,更合理的做法是让Docker Desktop使用WSL2后端,这样Windows和WSL可以共享同一个Docker引擎。
安装Docker Desktop后,在Settings的Resources里找到WSL Integration,勾选你需要的发行版。之后在WSL终端里直接执行docker ps,就能连上Docker Desktop托管的引擎,不需要在WSL里再装一套docker服务。
如果你的目标是一个纯Linux的Docker环境,也有另一种路线:直接在WSL里的Ubuntu中安装docker-engine,用systemd来管理。新版WSL默认开启了systemd支持,在/etc/wsl.conf里加上:
[boot] systemd=true然后就可以用systemctl管理服务。这个方案适合不想装Docker Desktop、想完全在Linux环境里复现生产部署的场景。两条路线都能跑,区别只是Docker Engine的托管方不同,选一条长期用就行,别来回横跳。
6.3 Windows Terminal与GUI应用的体验细节
终端我推荐直接用Windows Terminal,装好WSL发行版后,下拉菜单会自动列出Ubuntu,选中即可进入,不用任何额外配置。给每个发行版设置不同的配色和背景,远看不会开错标签页,这个小习惯挺实用。
如果确实需要在WSL里跑GUI程序,Windows 11的WSLg可以原生显示Linux图形应用,像前面验证用的xeyes、GIMP这类工具,直接运行就能弹出窗口。在Windows 10上则要自行配置X Server转发,体验不如Windows 11省心。
日常使用中还有一个实用细节:剪贴板是互通的。在WSL里复制的内容可以直接在Windows粘贴,小技巧是从WSL里用clip.exe管道输出Windows剪贴板,比如cat ~/.ssh/id_rsa.pub | clip.exe,直接把公钥复制到Windows剪贴板。
最后分享一个我自己踩过几次坑之后的习惯:每次大版本更新或换机器,我都会先wsl --export导出一份环境包,再开始折腾新的配置。WSL这个环境虽然重装很快,但真正值钱的是已经装好、调好的那一整套工具链和项目依赖,有tar包在手,任何时候都敢放手去试新方案。WSL最吸引我的地方就是这种"随时能推倒重来,又随时能恢复原样"的底气。