下面把 WSL2 日常最常用的命令按场景归类,Windows 侧用 PowerShell,Linux 侧用 WSL 终端,分开标清楚,你以后查表就行。


一、Windows PowerShell 侧(管 WSL 平台本身)

# 安装默认 Ubuntu
wsl --install

# 安装指定发行版
wsl --install -d Ubuntu-24.04

# 列出已装发行版及状态
wsl -l -v

# 列出可在线安装的发行版
wsl --list --online

# 进入默认发行版
wsl

# 进入指定发行版
wsl -d Ubuntu-24.04

# 彻底关闭所有 WSL2 虚拟机(改 .wslconfig 后必须跑这个)
wsl --shutdown

# 注销(删除)某个发行版(不删文件需先 export)
w2l --unregister Ubuntu-24.04
wsl --unregister Ubuntu-24.04

# 导出发行版到 tar(迁移用)
wsl --export Ubuntu-24.04 D:\wsl-backup\ubuntu.tar

# 从 tar 导入到新位置(D 盘)
wsl --import Ubuntu-24.04 D:\WSL2\Ubuntu-24.04 D:\wsl-backup\ubuntu.tar --version 2

# 设默认发行版
wsl -s Ubuntu-24.04

# 查看 WSL 平台状态
wsl --status
.wslconfig 文件路径:C:\Users\你的用户名\.wslconfig,改完必须 wsl --shutdown 生效。

好,把每个命令是干嘛的用大白话说清楚:


二、WSL Ubuntu 终端侧(Linux 里日常用)

系统 & 包

sudo apt update && sudo apt upgrade -y

刷新软件源列表 + 把所有已装包升级到最新版,-y 是自动确认不用手敲 yes。

sudo apt install -y 包名

装一个新软件包,比如 sudo apt install -y git 就是装 git。

sudo apt autoremove -y

清掉那些"以前被依赖、现在没人要了"的孤儿包,省磁盘。


Python / venv

python3.12 -m venv .venv

在当前目录建一个叫 .venv 的隔离 Python 环境,里面有一份独立的 Python 解释器和 pip,跟系统全局的 Python 互不影响。

source .venv/bin/activate

激活这个虚拟环境。激活后终端前面会多个 (.venv) 标记,之后所有 pip install 的包装进这个 .venv 里,不会污染系统。

deactivate

退出当前虚拟环境,回到系统 Python。


编译 llama.cpp 等

cmake -B build -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Release

用 cmake 配置编译参数:-B build 指定输出目录叫 build,-DGGML_CUDA=ON 开启 NVIDIA GPU 支持,Release 模式编译出来运行最快(不带调试信息)。

cmake --build build -j$(nproc)

真正开始编译,-j$(nproc) 是调用你所有 CPU 核心并行编译(你有 24 线程,所以 24 路同时编),速度拉满。


GPU / 驱动

nvidia-smi

查看 NVIDIA 显卡状态:显存占用、驱动版本、CUDA 版本、当前跑在 GPU 上的进程。你 3060 能不能被 WSL 看见就靠它验证。

nvcc --version

查看 CUDA 编译器版本。装了 nvidia-cuda-toolkit 才会有,编译 llama.cpp CUDA 版时 cmake 靠它找编译工具链。


网络

ip a

查看 WSL 里的网络接口和 IP 地址。一般能看到 lo(回环 127.0.0.1)和 eth0(WSL 虚拟网卡)。

cat /etc/resolv.conf

查看 DNS 服务器配置。WSL 里域名解析靠这个文件,网络不通时第一眼看这里对不对。

curl -I https://github.com

发一个 HTTP HEAD 请求测试能不能访问某个网站。-I 只拿响应头不下载正文,用来快速判断网络通不通。


进程

ps aux | grep server.py

列出所有正在跑的进程,然后过滤出包含 server.py 的那一行。用来确认 Parlor 服务是不是还在跑、进程号是多少。

pkill -f server.py

强制杀掉所有命令行里带 server.py 的进程。Parlor 卡死了跑这条直接干掉,不用手动 Ctrl+C。

htop

一个比 top 好看的交互式进程查看器,能看到 CPU、内存、每个核心的占用情况,按上下键滚动,按 q 退出。


文件位置

cd ~

回到家目录(/home/你的用户名),相当于 Windows 里的 cd %USERPROFILE%

cd /mnt/c/Users/你的用户名

进到 Windows 的 C 盘用户目录。WSL 里 Windows 的各盘挂载在 /mnt/ 下,C 盘是 /mnt/c,D 盘是 /mnt/d

WSL 虚拟硬盘物理位置在 Windows 侧:D:\WSL2\Ubuntu-24.04\ext4.vhdx(你迁移过的路径)。

环境变量(临时)

export MODEL=e2b

告诉当前 shell:"MODEL 这个变量的值是 e2b",Parlor 启动时会读这个变量决定加载哪个模型。关掉终端就消失。

export HF_ENDPOINT=https://hf-mirror.com

把 HuggingFace 的下载地址指向国内镜像,下模型不走原始境外地址,速度快且不会超时。

export PATH="/usr/local/bin:$PATH"

/usr/local/bin 插到 PATH 搜索路径的最前面,这样系统找 llama-server 时优先从这里找(你编译好的 CUDA 版在那)。


固化环境变量(永久)

echo 'export HF_ENDPOINT=https://hf-mirror.com' >> ~/.bashrc
source ~/.bashrc

第一行把那行 export 追加进 ~/.bashrc 文件末尾(每次开终端自动执行),第二行让当前终端立刻生效不用重开窗口。以后所有项目都能自动用上这个镜像源。


安装概述

  • 系统:Windows 11 25H2
  • 目标:WSL2 + Ubuntu 24.04 装到 D 盘 + 镜像网络 + 不用 uv/不用 conda + 直接系统 pip 装 Parlor 依赖 + 源码编译 llama.cpp CUDA 版 + 跑 Gemma 4 E2B + 浏览器对话

阶段一:Windows 侧(PowerShell 管理员)

1. 装 WSL2 平台 + Ubuntu 24.04(先落 C 盘,后面迁 D)

wsl --install -d Ubuntu-24.04

装完会让你设 Linux 用户名/密码。设完退出。

2. 迁到 D 盘

wsl --shutdown
mkdir D:\WSL2
wsl --export Ubuntu-24.04 D:\WSL2\ubuntu24.tar
wsl --unregister Ubuntu-24.04
wsl --import Ubuntu-24.04 D:\WSL2\Ubuntu-24.04 D:\WSL2\ubuntu24.tar --version 2

(以后物理文件在 D:\WSL2\Ubuntu-24.04\ext4.vhdx

3. 写镜像网络配置(不重开 PowerShell,用 wsl --shutdown 重启 WSL 即可)

记事本写 C:\Users\你的Windows用户名\.wslconfig

[wsl2]
networkingMode=mirrored
dnsTunneling=true
autoProxy=true
localhostForwarding=true
memory=12GB
processors=12

然后 PowerShell 执行(这就是“重启 WSL 让配置生效”的命令,不需要关 PowerShell 窗口):

wsl --shutdown

再进 Ubuntu 就已是镜像网络。

阶段二:进 WSL2 Ubuntu(开始菜单点 Ubuntu 24.04,或 wsl -d Ubuntu-24.04

4. 基础包 + CUDA 用户态头文件

sudo apt update && sudo apt upgrade -y
sudo apt install -y python3.12 python3.12-venv python3-pip git curl cmake build-essential libcurl4-openssl-dev
sudo apt install -y nvidia-cuda-toolkit   # 提供 nvcc + headers,匹配你 3060

验证驱动穿透(不重开终端):

nvidia-smi

5. 编译 llama.cpp CUDA 版(build ≥ 9503)

cd ~
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
cmake -B build -DGGML_CUDA=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
sudo ln -sf ~/llama.cpp/build/bin/llama-server /usr/local/bin/llama-server
llama-server --version   # 应显示 build 10xxx

6. 装 Parlor 的 Python 依赖(不用 uv、不用 conda,直接用系统 pip 装进一个 venv)

cd ~
git clone https://github.com/fikrikarim/parlor.git
cd parlor
python3.12 -m venv .venv
source .venv/bin/activate   # ← 这条就是“不重开终端让 venv 生效”的命令
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e .

7. 让 llama-server 路径对当前 shell 生效(不重开终端)

export PATH="/usr/local/bin:$PATH"
which llama-server   # 当前终端立即认得

8. 走 HF 镜像下模型(避免直连超时)

export HF_ENDPOINT=https://hf-mirror.com
export MODEL=e2b

阶段三:启动 + 浏览器

9. 起 Parlor 服务(当前终端接着用)

cd ~/parlor
source .venv/bin/activate
export MODEL=e2b
export HF_ENDPOINT=https://hf-mirror.com
export PATH="/usr/local/bin:$PATH"
python src/parlor/server.py --host 0.0.0.0 --port 8000

首次会自动从 HF 镜像下 gemma-4-E2B-it-qat-q4_0.gguf(~2.6GB)+ mmproj,加载完打印:

Uvicorn running on http://0.0.0.0:8000

10. Windows 浏览器打开

http://localhost:8000

允许麦克风加摄像头 → 说话 → 英文口语老师对话。


11. 以后每次要运行时

打开Powershell输入wsl按回车再输入以下命令回车然后打开浏览器http://localhost:8000

cd ~/parlor && export PATH="/usr/local/bin:$PATH" && export HF_ENDPOINT=https://hf-mirror.com && export MODEL=e2b && .venv/bin/python src/parlor/server.py --host localhost --port 8000

12. 利用cloudflared tunnel实现手机也可以访问

cd ~
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -O cloudflared
chmod +x cloudflared
sudo mv cloudflared /usr/local/bin/

运行以后打开一个新的wsl窗口执行

cloudflared tunnel --url http://localhost:8000

sudo -s
apt update
wget cloudflared deb
dpkg -i cloudflared.deb
cloudflared tunnel login
cloudflared tunnel create my-tunnel
cloudflared tunnel route dns my-tunnel b.你的域名.com
nano /etc/cloudflared/config.yml
cloudflared service install
systemctl enable --now cloudflared

每一行做一下注解

切换到 root 身份(之后所有命令都不用再加 sudo)

sudo -s

更新 APT 软件包索引(好习惯,防止装软件时报错)

apt update

下载最新版 cloudflared(AMD64 / x86_64)

wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb

安装 cloudflared

dpkg -i cloudflared-linux-amd64.deb

登录 Cloudflare,授权 你的域名.date

会输出一个 URL → 浏览器打开 → 登录 → 勾选 你的域名.com

cloudflared tunnel login

创建一个 Tunnel(名字叫 my-tunnel)可以起一个任意名称

成功后会出现 Tunnel UUID 和 credentials JSON 路径

cloudflared tunnel create my-tunnel

在 Cloudflare DNS 中自动添加 CNAME:

b.你的域名.com → .cfargotunnel.com

cloudflared tunnel route dns my-tunnel b.你的域名.com

编辑 Tunnel 配置文件(最重要的一步)

nano /etc/cloudflared/config.yml

-----------------------------------------------------------

tunnel: <Tunnel-UUID>
credentials-file: /root/.cloudflared/<Tunnel-UUID>.json

ingress:
  - hostname: b.你的域名.com
    service: http://localhost:80
  - service: http_status:404

-----------------------------------------------------------

把 cloudflared 安装成 systemd 服务

cloudflared service install

设置开机自启并立即启动

systemctl enable --now cloudflared

查看运行状态(确认 active (running))

systemctl status cloudflared

先决条件:
windows11系统
2060 12g显卡

所需文件及下载地址:
https://pan.baidu.com/s/1dRuSXr8Igd73ez-LxVLuBQ?pwd=4h4V

llama文件:
llama-b9496-bin-win-cuda-12.4-x64.zip 这是llama的压缩包

Qwen模型:
Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-IQ4_NL.gguf 这是推荐的使用的模型
Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-IQ4_XS.gguf 这是备用模型
mmproj-Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-f16.gguf 这是支持处理图像的模型

llama启动文件:
llama.bat 这个文件里面根据我的显卡设定的

下载好所有的文件后
解压缩llama的压缩包到d盘根目录
进入llama-b9496-bin-win-cuda-12.4-x64这个文件夹新建一个models文件夹
进入models文件夹将
Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-IQ4_NL.gguf和
mmproj-Qwen3.6-35B-A3B-Uncensored-HauhauCS-Aggressive-f16.gguf拷贝进去

打开llama.bat文件会弹出一个命令行窗口
这时候稍等一会初次运行会初始化
稍等片刻打开浏览器输入127.0.0.1:8080

就可以使用Qwen3.6了

不会设置的可以联系我QQ63164436

在windows系统桌面找到chrome浏览器的图标

复制一个图标并改名为chrmoe1

针对复制的这个图标依次按“鼠标右键”---->“属性”---->找到“目标(T)”---->在后面的输入框后面加上" --user-data-dir="D:\Program Files\GoogleChrome\Chrome1"---->按"确定"

注意加上的这一段字符前面的有一个空格

然后在D:\Program Files\GoogleChrome\Chrome1建立一个相应的文件夹

这时候再打开chrome1这个图标就可以初始化一个新的用户了

理论上可以无限复制
加入需要的话,还可以复制一个chrome2、chrome3、...一直到chormeN
实现了指纹浏览器的功能