本文为转载内容,保留原帖观点与结构;如有侵权请联系我处理。
进 L 站也有一段时间了,白嫖了各位佬的各种资源,发现自己竟然一篇帖子也没发过😣,今天就来发一个关于 WSL 的基础教程来回馈一下社区,本人也不是大手子,如有错误还望各位佬指正修改,也欢迎各位佬来补充。
碎碎念
其实快三级了,来凑一下点赞,随便弄个徽章
关于 WSL
WSL(Windows Subsystem for Linux)(Windows Linux 子系统)
或许有人会问装 WSL 干嘛,WSL 更轻量,可以用来学习 Linux,做开发,且更方便与 Win 之间切换互通,我第一次了解到它是在 Win 上用 docker 的时候,
还有就是很好玩
关于终端软件
过程中要一直使用终端,可以直接用 Win 自带的终端,顺便也推荐几款终端:
个人一直在使用,主要是现代美观,还是开源软件,可以配合插件,有中文
有免费和收费两个版本,免费就够用了,听别人说好用,不过不怎么好看(个人感觉)
有手机版和桌面版,这个我多用在手机上连接 SSH,没用过桌面版,主要是 Github 学生包里面有这个,而且我有时需要用手机连 SSH,看起来挺美观,但是没有中文
安装 WSL
1. 启用 Windows 功能
搜索 “启用或关闭 Windows 功能”
开启下面两项
2. 安装 Linux 并将其移动到其他盘
开启终端 powershell,将 WSL 默认版本设置为 WSL2
wsl --set-default-version 2
再输入以下指令列出所有可选的版本
wsl --list --online
新手推荐使用 Ubuntu,我日常用的是 Ubuntu-24.04,不过我也装了个 archlinux,喜欢折腾的可以试试,按自己的喜好选择即可,下面开始安装
wsl --install <自己选择的发行版的NAME>
# 例如
wsl --install Ubuntu-24.04
等待安装,如果下载较慢可以试着开启代理
安装完成后根据引导创建用户设置密码
默认安装的发行版位置在
C:\Users\你的用户名\AppData\Local\wsl如果后期安装的东西多了会很占空间,所以最好做个迁移
输入
exit 退回 powershell,输入以下命令导出自己的发行版
wsl --export <发行版名称> <导出路径>
# 例如
wsl --export Ubuntu-24.04 D:\WSL\Ubuntu-24.04\Ubuntu-24.04.tar
然后注销原发行版,同时会删除默认位置的发行版
wsl --unregister <发行版名称>
# 例如
wsl --unregister Ubuntu-24.04
将导出的发行版导入到自己选择的位置
wsl --import <自己起的发行版名称> <导入位置> <导出的发行版.tar压缩包所在位置>
# 例如
wsl --import Ubuntu-24.04 D:\WSL\Ubuntu-24.04 D:\WSL\Ubuntu-24.04\Ubuntu-24.04.tar
现在就可以删除导出的.tar压缩包了(如果要做备份那可以保留)
下面是一些常用的 wsl 命令:
wsl --list --verbose # 或 wsl -l -v 列出所有已安装的发行版及使用的 WSL 版本
wsl --set-default <发行版名称> # 设置默认发行版,例如 wsl --set-default Ubuntu-24.04
wsl --shutdown # 关闭所有启动的发行版
wsl -d <发行版名称> # 进入发行版,例如 wsl -d Ubuntu-24.04
wsl # 进入默认发行版
3. 配置自己的发行版
用户问题
有时进入自己的发行版后可能是 root 用户,可能是你未创建其他用户,自己找教程创建,然后设置默认用户,打开配置文件
sudo vim /etc/wsl.conf
下方即为设置默认用户,改为你的用户名
然后退出,在 powershell 输入命令重新开启进入
wsl --shutdown
wsl -d Ubuntu-24.04
详细配置
还有很多其他关于 wsl.conf(特定发行版设置,位于每个发行版的 /etc/wsl.conf)和 .wslconfig(全局设置,位于 Windows C:\Users\ 你的用户名 \.wslconfig)的设置,在这里我就不赘述了,具体配置方法参考微软文档 WSL 中的高级设置配置
推荐直接在开始菜单界面的全部应用里找到 WSL Settings,在图形化界面里进行全局设置,这样更加方便直观,而且每个设置项下方都有小字介绍
展示一下我的 .wslconfig (在 WSL Settings 里调整的设置好像不会显示在 .wslconfig 文件中)
[wsl2]
memory=4GB
processors=8
defaultVhdSize=30GB
[experimental]
sparseVhd=true
sparseVhd=true 我也不太懂,貌似没什么用,警告提示如下:
wsl: 由于潜在的数据损坏,目前已禁用稀疏 VHD 支持。
若要强制分发使用稀疏 vhd,请运行:
wsl.exe --manage --set-sparse --allow-unsafe
替换镜像源
默认的源在国内用起来可能卡卡的,这时就需要替换为镜像源了
感谢佬友推荐的换源脚本及工具
- 备份原有源列表(可选)
sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak
- 编辑源列表文件替换为镜像源
sudo vim /etc/apt/sources.list.d/ubuntu.sources
将文件中的如下部分
Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
替换为
Types: deb
URIs: http://cn.archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
这样就好了,可以执行下方命令试试(看谁跟我一样喜欢这大长串命令
)
sudo apt update && sudo apt upgrade -y && sudo apt autoclean && sudo apt clean && sudo apt autoremove
关于网络连接的问题
如果下载东西慢(尤其是 github 上的东西),可以尝试开启代理,下面介绍一下开启代理的方法
- 最简单的方法,直接开启 win 上代理应用的虚拟网卡模式(tun模式)
- 稍复杂些的
- 开启代理应用的局域网连接设置,并记住本地 IP 及代理使用的端口
- 进入 WSL 执行如下命令
export http_proxy="http://<win的ip>:<代理使用的端口>"
export https_proxy="https://<win的ip>:<代理使用的端口>"
- 这是临时的配置,如果想要持久请写进
~/.bashrc 或 ~/.zshrc
- 关闭代理执行如下命令
unset http_proxy
unset https_proxy
- 持久设置关闭请删除在
~/.bashrc 或 ~/.zshrc 中的命令
关于 WSLg
可以在 Windows 系统上运行 WSL 中带图形界面的应用程序,直接在 WSL 中用命令运行带图形界面的应用程序即可,记得确保在 WSL Settings 中打开如下设置

Claude Code 和 Codex 配置
说到开发,最近看不少佬都在用 Claude Code 和 Codex(我自己也在用),接下来就来介绍一下怎么配置第三方提供商吧
安装方法
1. 下载 nodejs
推荐使用 nvm 安装 nodejs(参考官方指导)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
\. "$HOME/.nvm/nvm.sh"
nvm install 22
node -v
npm -v
2. 安装 Claude Code 和 Codex
运行下方命令全局安装
npm install -g @anthropic-ai/claude-code @openai/codex --registry=https://mirrors.cloud.tencent.com/npm/
顺便介绍一点 npm 的常用命令
npm cache clean --force
npm outdated -g
npm update -g <包名> --registry=<镜像源地址>
npm uninstall -g <包名>
如果想全局配置 npm 镜像源运行如下命令,以后就不用再挂 --registry 参数了
npm config set registry <镜像源地址>
npm config get registry
Claude Code 配置
先运行一遍 claude 会自动生成 ~/.claude 文件夹,然后再退出
claude
进入 ~/.claude 并创建 settings.json
cd ~/.claude
touch settings.json
vim settings.json
然后编辑 settings.json 设置文件,参考如下,详细配置参考 Claude Docs,这种方法只支持 Anthropic 接口,非 Anthropic 接口请使用 claude-code-router
{
"env": {
"ANTHROPIC_AUTH_TOKEN": "你的提供商的 key",
"ANTHROPIC_BASE_URL": "你的提供商的接口地址"
},
"$schema": "https://json.schemastore.org/claude-code-settings.json"
}
接下来就可以爽用了
Codex 配置
同样,先运行一遍 codex 自动生成 ~/.codex 文件夹,然后再退出(退出按两遍 Ctrl+C)
codex
进入 ~/.codex 并创建 config.toml 和 auth.json
cd ~/.codex
touch config.toml auth.json
vim config.toml
然后编辑 config.toml 设置文件,参考如下,详细配置参考 官方文档
experimental_use_rmcp_client = true
model_provider = "使用的提供商名称"
model = "gpt-5-codex"
model_reasoning_effort = "high"
disable_response_storage = true
[model_providers. 提供商名称]
name = "随意起的提供商名称"
base_url = "提供商的接口地址"
wire_api = "responses"
requires_openai_auth = true
[mcp_servers.sequentialthinking]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-sequential-thinking@latest"]
startup_timeout_sec = 2000
[mcp_servers.context7]
url = "https://mcp.context7.com/mcp"
bearer_token_env_var = "<token>"
startup_timeout_sec = 2000
MCP 超时问题
如遇到类似 MCP client for sequentialthinking failed to start: request timed out 的问题,在MCP中设置 startup_timeout_sec 参数,尽量调高一般就能避免了,参考 codex 文档这部分
再编辑 auth.json 文件写入 key
{
"OPENAI_API_KEY": "提供商 key"
}
接下来同样爽用
如果想在 WSL 中操作 Win 上的文件可以进入 /mnt,里面有 Win 的各个盘符的挂载文件夹,进入对应项目文件夹,然后运行 claude 或 codex 开始鞭策 AI 吧
有佬推荐使用,去看了一下,确实方便,可以快速在各个提供商之间切换,接下来就介绍一下大致使用方法
首先,要去Github仓库下载对应Windows的安装包或便携版压缩包
启动后进行设置,调整各自配置目录,如下图
找到自己安装 CC 和 Codex 的发行版
找到配置文件夹位置,分别选择
最后效果
然后就可以自己添加提供商快速替换了,更多信息可以去Github仓库查找
在 VS Code 中连接 WSL
可能有人用不惯终端编辑器,接下来简单说一下在 VS Code 中连接 WSL 进行文件编辑开发,要安装如下插件
然后就可以在左侧栏的远程资源管理器中连接 WSL 发行版了
在WSL中使用Docker
最好不要同时装 Docker Desktop 和 WSL 内的独立 Docker 引擎,已有佬友有惨痛的代价
1. 与 Docker Desktop 集成
先确保在Windows主机中安装了 Docker Desktop,并在设置中开启 Use the WSL 2 based engine
然后在如下位置打开WSL集成,勾选你想要使用docker的发行版,记得应用设置
现在你可以直接在WSL中使用docker拉取镜像创建容器了
下面介绍一些常用的docker命令
docker images
docker container ls
docker volume ls
docker network ls
docker rmi <镜像名/镜像ID>
docker container rm <容器ID>
docker volume rm <卷名>
docker network rm <网络ID>
docker pull <各种可选项> <容器名:标签>
docker ps
docker logs <容器名/容器ID>
docker system prune
2. 在 WSL 内安装独立 Docker 引擎
具体安装方法在这里不做介绍了,请参考 Docker 官方文档
美化终端界面
嘿,你的终端界面是不是像下面这样单调无趣呢
想不想要像下面这样美观呢
接下来就介绍一下终端的美化
1. 安装 ZSH
sudo apt install zsh
然后将其配置为默认shell
cat /etc/shells
chsh -s /bin/zsh
注意
此时设置的只是目前账户的 shell,root或其他账户需要另行设置
如果使用
su 登录root时发现提示
su: Authentication failure 可能是没设置密码的问题,用以下命令设置root密码
sudo passwd root
exit 退出重新进入终端,这时就会变为 zsh shell,此时会出现如下图界面
可以根据说明按 1 来个性化配置,也可以直接按 2 用推荐配置,或者按 0 或 q 什么也不设置,下方安装 ohmyzsh 时会自动生成新的 .zshrc,以前的 .zshrc 将重命名为 .zshrc.pre-oh-my-zsh
echo $SHELL
运行如下命令
sh -c "$(curl -fsSL https://install.ohmyz.sh/)"
然后会有个提示,直接按回车就行
注意
由于换了 shell,原本在 ~/.bashrc 中的配置在 zsh 中不会生效,可以自己迁移到 ~/.zshrc
比如安装 nvm 时自动加入 .bashrc 中的配置
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
3. 切换主题
可以自己选择喜欢的主题,ohmyzsh 默认带了一些主题,可以去 ohmyzsh Themes
中查看
这里我推荐一下我一直在用的主题
powerlevel10k 需要自己安装,下面介绍一下安装方法
到 Nerd Fonts 官网去下载一种自己喜欢的字体(我在用 UbuntuMono Nerd Font 字体),然后直接安装在 Windows 上,解压后选择全部 .ttf 文件,右键点击安装
然后切换终端字体,以 Tabby 为例
一般有三种可选,具体在字符宽度、间距等显示样式细节上有些区别,可以分别试试然后在下方的预览处选出自己最喜欢的
安装 powerlevel10k
运行如下命令
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k"
然后编辑 ~/.zshrc 将 ZSH_THEME 的值设置为 powerlevel10k/powerlevel10k,然后重新进入终端,此时会弹出 powerlevel10k 的初始配置,按照引导设置便可
4. 安装插件
ohmyzsh 默认会有很多插件,可以自己启用,参考 ohmyzsh Plugins
下面推荐一些插件
对输入的命令进行语法高亮显示,使用如下命令安装
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
然后在 ~/.zshrc 中的 plugins 项中加入 zsh-syntax-highlighting
根据用户之前输入过的命令,对当前正在输入的命令进行智能提示,使用如下命令安装
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
然后在 ~/.zshrc 中的 plugins 项中加入 zsh-autosuggestions
增强命令补全功能,提供更丰富、智能的命令和参数补全建议,使用如下命令安装(这个插件启用与前面略微不同,参照 zsh-completions 安装说明)
git clone https://github.com/zsh-users/zsh-completions.git \
${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions
然后在 ~/.zshrc 中的 source "$ZSH/oh-my-zsh.sh" 行前加入如下的配置
fpath+=${ZSH_CUSTOM:-${ZSH:-~/.oh-my-zsh}/custom}/plugins/zsh-completions/src
autoload -U compinit && compinit
source "$ZSH/oh-my-zsh.sh"
刷新 zsh 补全缓存
rm -f ~/.zcompdump
compinit
最后我的 .zshrc 配置如下
顺便告诉大家一个收集了各种 ZSH 框架、插件、主题和教程的 Github 仓库 awesome-zsh-plugins
5. 关于 fastfetch
fastfetch 是一个用于获取系统信息并以美观的形式显示它的工具,好用又好玩,下面来介绍一下安装配置方法
安装可以参考 fastfetch installation
在 Ubuntu 上用 apt 安装的要落后好几个版本,想用最新版本要自己去 Github 仓库安装,示例如下
curl -L -o fastfetch-linux-amd64.deb https://github.com/fastfetch-cli/fastfetch/releases/download/2.53.0/fastfetch-linux-amd64.deb
sudo dpkg -i fastfetch-linux-amd64.deb
sudo dpkg -r fastfetch
其配置文件位于 ~/.config/fastfetch/config.jsonc,如果没有文件夹或文件需要自己创建
mkdir -p ~/.config/fastfetch
cd ~/.config/fastfetch
touch config.jsonc
然后就要自己编辑配置,可以参考 fastfetch官方预设 和 fastfetch配置Wiki
最后当然就是 fastfetch 了(可以回复留下你的 fastfetch 哦,有IP的话注意打码)
当然,WSL 的可玩性不止这些,自己去寻找更多好用的东西来 DIY 自己的发行版吧!
📌 转载信息
原作者:
DabblerLi
转载时间:
2025/12/10 17:21:18