WSL 折腾笔记

397 阅读4分钟

背景

这几天想在家里处理公司代码,就开始按照公司文档搭建开发环境,但无奈家里台式机使用的是 Windows 系统,平时娱乐打游戏、看电影、追剧什么的也要用,不方便重装成 Linux 系统。本来想用大学淘汰下来的笔记本,结果让我哥拿去用了,在论坛上问大神解决方案,总结下来有三种方案:1. 双系统:两块硬盘,分别安装 Linux、windows。2. WSL 2:Windows 官方提供的 Linux 虚拟机。3. 直接使用虚拟机。三种方案中,我选择了 WSL2 方案,没有特殊原因,就是想单纯折腾一下。

通过这篇文章,我希望能整理、记录自己折腾的过程,也希望能为他人提供一点参考价值。

前言:这篇文章不会手把手带着实操,笔者觉得复述这些没有价值,官网比我权威且详细,这里选择的是直接贴上链接,供点击查看。文章更偏重补全流程,新手能跟着文章本地运行起来 WSL2 就是最终目的。

流程

前置要求:

安装:

使用管理员模式下打开 PowerShell 或 Windows 命令提示符,输入以下命令:

// 默认安装 ubuntu 最新发布版。安装其他版本参考:[更改默认安装的 Linux 发行版](https://learn.microsoft.com/zh-cn/windows/wsl/install#change-the-default-linux-distribution-installed)
wsl --install

安装完成后,进入系统设置用户名、密码:设置用户名、密码

初始化 Linux 环境:

// 更新和升级包
sudo apt update && sudo apt upgrade

// 设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

设置 Windows Terminal,从 Microsoft Store 下载 Windows Terminal 作为安装的 Linux 子系统访问终端。

划分文件存储:尽可能避免 Linux 与 Windows 文件交互。Linux 会用到的放到 Linux 目录下,Windows 会用到的文件放到 Windows 目录下。

配置开发环境:

配置语言环境:参考 1参考2参考 3

// 安装中文 locale
sudo apt-get install language-pack-zh-hans

// 设置全局 locale
vim /etc/defalut/locale 设置为 LANG=en_US.UTF-8

// 配置中文 locale
vim /etc/environment 添加

LANG="zh_CN.UTF-8"
LANGUAGE="zh_CN:zh:en_US:en"

// 执行 locale-gen
sudo locale-gen

// 安装中文字体
sudo apt-get install fonts-droid-fallback ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming

// 配置中文字体
无

设置网络模式:

默认为 NAT 模式,不支持 Windows 端代理共享到 WSL2 容器中,建议设置为镜像模式,可以实现 wsl2 与 windows 共享同一网络命名空间(共用 IP、端口)。可参考设置网络镜像模式

有用知识点

WSL、Windows 跨文件系统交互

  • wsl 访问 windows 文件:
    • wsl 只能访问已挂载的 Windows 文件,wsl 默认挂载 c//c/User,可通过 mnt/c/Usersmnt/c 路径直接访问。
  • winodws 访问 wsl 文件:
    • windows 在资源浏览器中输入 \\$wsl 可访问所有 Linux 子系统。实际存储位置为 %userprofile%\AppData\Local\Packages\Canonical...\LocalState\ext4.vhdx,ext4.vhdx 就是虚拟磁盘文件。

详细可见 Where is WSL located on my computer?

  • 环境变量共享
    • 默认 Linux 子系统共享 Windows 的 path 系统变量。
    • Windows 17063 版本后开始支持 WSLENV 双向共享系统变量。
  • Windows 与 Linux 之间命令共享。
    • windows Terminal 可以通过 wsl <command>,在 windows Terminal 执行 Linux 命令。
    • linux 子系统中通过 [tool-name].exe 可以直接启动 windows 工具。

详细见:跨文件系统工作 | Microsoft Learn

参看资料