跳至主要內容

WSL 安装及简单使用

逸尘.Lycodx大约 4 分钟WSL工具WindowsLinux

WSL 安装及简单使用

一、什么是WSL?

Windows Subsystem for Linux (WSL) 是 Windows 10 和 Windows 11 中提供的一项功能,允许用户在 Windows 上运行 Linux 环境。

二、参考资料

官方提供的资料还是非常详细的,也可以直接看官方文档:

https://learn.microsoft.com/zh-cn/windows/wsl/installopen in new window

https://learn.microsoft.com/zh-cn/windows/wsl/basic-commandsopen in new window

三、安装WSL

3.1 前置步骤

提示

你的Windows电脑要使用wsl需要进行一些前置配置操作

1.开启CPU虚拟化

检查方式:任务管理器-性能-CPU

2.开启子系统和虚拟机平台

开启方式:在Windows搜索框中输入“功能”,可以看到「启用或关闭Windows功能」,然后点进去往下滑,找到使用于Linux的Windows子系统虚拟机平台,把它们勾上,然后按系统提示重启电脑。

3.2 开始安装

安装方式十分简单,就一个命令。

wsl --install

但是实际情况并没有这么简单,一般你在安装的时候都会出现各种各样的报错。
所以一般命令如下:

wsl --update
wsl --install --web-download

解释:wsl --install 默认是安装Ubuntu最新版本,--web-download 的意思是跳过Microsoft Store商店,在互联网上下载。

然而问题也可能没有这么简单,因为有的用户在执行 --update 的时候就会报错,特别是一些Windows10的用户。

此时我们还可以尝试通过 Microsoft Store 进行下载,在 Microsoft Store 搜索 wsl 就能看到。
但是但是,还可能无法通过商店下载,报错如下:

这时候该怎么办呢?
其实官方也是提供了其他下载渠道的,下载链接如下:

https://learn.microsoft.com/zh-cn/windows/wsl/install-manual#downloading-distributionsopen in new window

一般Windows11执行完毕 --update 就能下载了,一些比较老的Windows10就需要通过链接手动下载。

提示

通过命令安装完成之后需要设置一个用户和密码,按照提示操作就行

3.3 常用命令

# 列出可用的 Linux 发行版
wsl --list --online

# 列出已安装的 Linux 发行版
wsl --list --verbose
wsl --list -v

# 更新
wsl --update

# 安装
wsl --install

# 启动 Ubuntu20.04
wsl -d Ubuntu20.04

# 卸载 Ubuntu20.04
wsl --unregister Ubuntu20.04

四、简单使用

Windows11 下可以进入 PowerShell 看到 Ubuntu,点击右键以管理员身份运行。

Windows10 可以通过搜索找到。

进入wsl之后所有的操作就于Linux一致。

4.1 设置 root 密码及切换 root

# 设置密码
su passwd

# 切换root
su root

4.2 拷贝 windows 的文件到 wsl

# 拷贝D盘中的demo.txt到当前目录
cp /mnt/d/demo.txt  ./

4.3 vscode 打开 wsl 中的项目

安装插件

连接wsl

初次连接需要下载

打开文件即可使用

问题

如果在 vscode 中编辑文件无法保存,提示没有权限,直接给文件添加权限即可

# 最暴力的解决办法
chomd -R 777 project

4.4 wsl 中的项目连接本机 mysql

1. 开启 mysql 服务

确保 windows 中的 mysql 是正常启动的。

2. 修改连接的IP

要在 wsl 中连接 windows 的 mysql,需要使用本机的IP连接,而不是127.0.0.1

# win + R 查询IP
ipconfig

3. 尝试连接

我是通过 go 代码进行连接测试

出现如下报错信息:

说明无法直接连接的。

4. 解决办法

① 在 win 中找到 mysql 的安装目录,进入 bin 目录中,可以看到有一个 mysql.exe 文件。

执行命令,进入 mysql 终端。

mysql.exe -uroot -p

② 查看 root 用户允许从哪些主机连接到 MySQL 服务器

SELECT User, Host FROM mysql.user WHERE User='root';

可以看到此时 root 用户只允许 localhost 连接,所以 wsl 无法连接是正常的。

③ 修改用户允许连接的主机

UPDATE mysql.user SET Host='%' WHERE User='root';
FLUSH PRIVILEGES;
  • Host=% 表示允许所有主机名或 IP 地址连接到该用户
  • User='root' 表示给 root 用户设置

提示

考虑安全问题,正常部署项目最好填写指定IP或主机名

④ 再次查看允许连接的信息

SELECT User, Host FROM mysql.user WHERE User='root';

可以看到相关设置已经修改。

⑤ 重启 mysql 服务

可以使用工具进行重启,我这里安装的是小P。

上次编辑于: