💪WSL2是最好的linux发行版!新版wsl2安装教程,并搭建前端开发环境

本文根据自己在配置 wsl 过程中遇到的问题,整理出一套在 wsl 中配置前端开发环境的流程

按照以下顺序操作即可

也可以参阅官方教程:learn.microsoft.com/zh-cn/windo...

前言

由于 wsl2 有了完整的 linux 内核,网络也是独立的网络,在 wsl2 中发起的服务需要通过端口转发的方式才能被局域网访问,因此一直被人保守诟病。

但在 2023 年 9 月更新了 wsl2.0 版本,彻底解决了 wsl2 与 Windows 之间的网络问题。

🎉 现在我宣布,wsl2 是最好的 linux 发行版!

先决条件

必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。 如果使用的是更早的版本,请参阅手动安装页

本人所使用的操作系统

  • 版本:Windows 11 23H2
  • 操作系统版本:22631.2861

安装前的准备工作

  1. 按下 win 键,或点击任务栏的搜索框,输入【windows 功能】,点击打开【启用或关闭 windows 功能】 2. 勾选如下选项,并点击【确定】,等待安装完成后,按照提示重启计算机 3. 重启后,打开命令行终端,输入wsl -v,可正常返回大量参数

开始安装

  1. 输入以下命令,查看各种可安装的发行版 linux,各位可自行选择
bash 复制代码
wsl -l -o

输出如下内容:👇

sh 复制代码
NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed
  1. 此处我选择 Ubuntu-22.04,输入以下命令后会执行安装,等待安装完成,先不要运行
sh 复制代码
wsl --install Ubuntu-22.04
  1. 将默认版本设置为 wsl2
sh 复制代码
wsl --set-default-version 2
  1. 输入wsl进入系统,提示初始化用户名和密码,一定要记住

至此,wsl2 已经可以使用,但为了更好的体验,需要继续进行配置

配置

注意:由于 9 月发布的新版 wsl2 新增了镜像网络的功能,老版教程的【网络代理】、【配置静态 ip】、【自动清理缓存】无需在进行配置。

更新日志在此:devblogs.microsoft.com/commandline...

将 wsl2 导出到其他分区(可选)

wsl2 默认安装在 C 盘,如果您为了节省 C 盘空间,可以转移至其他分区

如果需要转移,那么尽量在首次安装或还未重度使用时进行操作,因为后期 wsl 会非常占用空间,也会很慢(本人已经达到了 100+GB)

可分别执行以下命令:

sh 复制代码
# 以下每条命令,类似【K:\Ubuntu-22.04_bak.tar】的地址可自行修改
# 1. 备份系统
wsl --export Ubuntu-22.04 K:\Ubuntu-22.04_bak.tar
# 2. 还原系统至某个目录
# 格式为:wsl --import Ubuntu-22.04 xxx(目标路径) xxx(刚刚备份的地址)
wsl --import Ubuntu-22.04 k:\Ubuntu-22.04 K:\Ubuntu-22.04_bak.tar
# 3. 将备份的系统tar文件删除(可选)

修改基础配置

打开用户目录C:\Users\用户名,右键新建 txt 文件,并修改完整名称为.wslconfig(包括后缀名),修改文件内容为:

ini 复制代码
[wsl2]
memory=20GB                   #限制最大内存,可自行修改
processors=8                  #限制线程数,可自行修改
localhostforwarding=true
nestedVirtualization=true
guiApplications=true
swap=20GB                     #限制最大交换空间,可自行修改
dnsTunneling=true             #新版dns隧道,建议不改
firewall=true                 #同步windows防火墙,建议不改
networkingMode=mirrored       #新版的镜像网络,建议不改
autoProxy=true                #自动代理,建议不改

[experimental]
autoMemoryReclaim=gradual     #自动回收内存,建议不改
hostAddressLoopback=true      #分配给主机的 IP 地址允许容器连接到主机,建议不改
useWindowsDnsCache=true       #与dnsTunneling相关,建议不改
bestEffortDnsParsing=true     #与dnsTunneling相关,建议不改
sparseVhd=true                #自动清理磁盘空间,建议不改

设置默认登录用户

在 wsl 系统中,输入以下命令:

sh 复制代码
sudo vim /etc/wsl.conf

更新配置如下:

ini 复制代码
[user]
default=xxx #此处自行修改

[interop]
enable=false
appendWindowsPath=true

在 windows 端执行以下命令重启 wsl,目的是切换为默认用户(必须):

sh 复制代码
wsl --shutdown
wsl

安装 zsh

sh 复制代码
sudo apt-get install zsh
chsh -s /bin/zsh ## 设为默认终端

oh-my-zsh + 插件

sh 复制代码
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# npm-aliases
git clone https://github.com/lzy1960/zsh-npm-aliases ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/npm-aliases
# zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

配置 zsh

此链接中的全部内容复制到~/.zshrc文件中

或直接执行以下脚本,即可替换内容:

sh 复制代码
curl -o ~/.zshrc https://raw.githubusercontent.com/lzy1960/powershell-config/main/.zshrc

配置中包含了 npm 别名、git 别名、样式等配置,直接复制粘贴即可 完成后输入source ~/.zshrc使配置生效

新建项目文件夹

sh 复制代码
mkdir ~/Desktop ~/Desktop/project

安装 nvm, nodejs

跟着文档走:learn.microsoft.com/zh-cn/windo...

配置 git

sh 复制代码
git config --global user.name xxx # 修改为自己的
git config --global user.email xxxxxx # 修改为自己的
git config --global credential.helper store # 防止每次都需要输入密码

git config --global core.ignorecase false              # 开启大小写敏感
git config --global merge.conflictstyle diff3          # 三路合并(3-way merge),便于合并解决冲突
git config --global credential.helper store            # 不用每次询问密码
git config --global merge.ff false                     # 非快进合并,强制产生merge节点
git config --global pull.ff true                       # overrides merge.ff when pulling

配置完成,可以开始开发了

🚫 老版教程中无需进行的配置(无需配置,此处只是列出)

🚫 网络代理(无需配置)

新版 wsl2 支持了镜像网络与自动代理,所以无需配 置网络代理,只需在.wslconfig文件中添加如下配置即可:

ini 复制代码
[wsl2]
firewall=true
networkingMode=mirrored
autoProxy=true

此配置需要 Windows 版本 22H2 或更高版本。

🚫 配置静态 ip

新版 wsl2 支持了镜像网络,其中有一个实验性的配置为hostAddressLoopback,将此配置置为 true,则会将 ip 分配给主机

此配置需要 Windows 版本 22H2 或更高版本。

🚫 通过局域网访问 wsl2

原因与[配置静态 ip](#配置静态 ip "#heading-17")相同

相关推荐
栈老师不回家15 分钟前
Vue 计算属性和监听器
前端·javascript·vue.js
前端啊龙21 分钟前
用vue3封装丶高仿element-plus里面的日期联级选择器,日期选择器
前端·javascript·vue.js
荒Huang22 分钟前
Linux挖矿病毒(kswapd0进程使cpu爆满)
linux·运维·服务器
一颗松鼠25 分钟前
JavaScript 闭包是什么?简单到看完就理解!
开发语言·前端·javascript·ecmascript
小远yyds1 小时前
前端Web用户 token 持久化
开发语言·前端·javascript·vue.js
吕彬-前端2 小时前
使用vite+react+ts+Ant Design开发后台管理项目(五)
前端·javascript·react.js
学前端的小朱2 小时前
Redux的简介及其在React中的应用
前端·javascript·react.js·redux·store
guai_guai_guai2 小时前
uniapp
前端·javascript·vue.js·uni-app
hjjdebug2 小时前
linux 下 signal() 函数的用法,信号类型在哪里定义的?
linux·signal
其乐无涯2 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器