返回首頁

Windows跑AI Agent,WSL才是终极答案 — WSL保姆级全攻略

發布時間:2026-07-15 09:20
YouTube 影片重點整理

Windows跑AI Agent,WSL才是终极答案,别羡慕Mac了 — WSL保姆级全攻略,海量实战教程,一期视频精通

📺 技术爬爬虾 TechShrimp⏱ 31:31🗓 2026-07-13🌐 zh-Hans🔗 https://www.youtube.com/watch?v=gE2Ju2qoGbU

這是一支完整的 WSL(Windows Subsystem for Linux)實戰教學影片,從安裝到進階應用全面覆蓋。講者首先點出 Windows 上跑 AI Agent 的主要痛點——PowerShell 對 AI 不夠友好,而 WSL 只需一行命令就能在 Windows 上運行 Linux 子系統,讓 Agent 運行更穩、效率更高、與生產環境更一致、環境隔離更安全。影片依序示範:CPU 虛擬化檢查與 WSL 安裝、多發行版與多實例管理、在 WSL 中運行 Py Agent 並用 Next.js 開發坦克大戰遊戲、VSCode 整合與 Git 操作、安裝 Hermes Agent / Claude Code / Codex CLI 三大 Agent 工具、Docker 安裝與 Redis 實戰、NVIDIA 顯卡直通與 vLLM 推理框架部署、WSLG 圖形界面與完整桌面遠端連線、NAT 與鏡像網路模式切換、.wslconfig 與 wsl.conf 配置檔詳解,以及虛擬機備份克隆與跨命令列互通等進階功能。

01

為什麼 WSL 是 Windows 跑 AI Agent 的最佳解

00:00

AI Agent 在 Windows 上的表現不如 MacOS,主要原因就是 PowerShell 對 AI 不夠友好。AI 大模型訓練語料中的命令列操作大部分是 Linux 和 MacOS 風格,在 Linux 環境中出錯率明顯更低、效果更好。

WSL(Windows Subsystem for Linux)只需一行命令就能在 Windows 上運行 Linux 子系統,讓電腦同時獲得兩大作業系統的優勢。在 WSL 中運行 AI Agent 可獲得三大好處:Agent 運行更穩效率更高(Linux 命令出錯率低、省 Token)、與生產環境更一致(程式最終部署到 Linux 伺服器,環境差異小)、環境隔離更安全(WSL 提供 Linux 虛擬機與 Windows 宿主機之間的隔離,搞壞了刪掉重建即可)。

WSL 優勢
02

WSL 安裝與基礎使用

01:33

安裝前需確認 CPU 虛擬化已啟用:在任務管理器的「效能 > CPU」中查看「虛擬化」狀態。若未啟用,需進入 BIOS 開啟 Intel VMX 或 AMD SVM Mode。

在 Windows Terminal 中輸入 `wsl --install`(國內網路建議加 `--web-download` 提高下載速度),預設安裝 Ubuntu。安裝過程中需設定 Linux 使用者名稱和密碼(輸入密碼時螢幕不會顯示內容)。安裝完成後命令列顏色改變,即進入 Linux 子系統,輸入 `exit` 可退出。

可安裝其他發行版:`wsl --list --online` 列出所有可安裝版本,`wsl --install <發行版名>` 指定安裝,`--location` 可指定安裝目錄。同一發行版可建立多個隔離實例(`wsl --install Ubuntu --name Ubuntu2`)。`wsl --list` 列出所有已安裝的 Linux 虛擬機。

安裝與管理

📋 本節指令一覽

  1. wsl --install
  2. wsl --install --web-download
  3. wsl --update
  4. wsl --list --online
  5. wsl --install <發行版名> --location <路徑>
  6. wsl --install Ubuntu --name Ubuntu2
  7. wsl --list
  8. wsl
  9. wsl -d <發行版名>
  10. wsl --set-default <發行版名>
  11. exit
03

在 WSL 中運行 AI Agent(Py)

06:19

運行 Agent 前需確認開發三件套:Git(Ubuntu 自帶)、Python 3(自帶,需將 `python` 命令連結到 `python3`)、Node.js(透過 NVM 安裝版本 24)。

以 Py(極簡 Coding Agent)為例:使用 curl 安裝後,執行 `py --login` 配置 API Key(支援 DeepSeek、Minimax、Kimi 等),選擇模型後即可開始開發。

實戰示範:用 Next.js 框架編寫坦克大戰遊戲,開發完成後可直接用 Windows 上的瀏覽器(Edge)訪問 WSL 中的服務。這是因為 WSL 會自動將 Linux 中的端口轉發到 Windows 的 localhost——WSL 檢測到 Linux 中有程式監聽端口,就會自動轉發到 Windows 宿主機的 localhost 相同端口。

Py Agent

📋 本節指令一覽

  1. git -v
  2. python3 --version
  3. sudo apt update
  4. sudo apt install python-is-python3
  5. python --version
  6. node -v
  7. npm -v
  8. curl -fsSL https://py.run/install | bash
  9. cd ~ && mkdir <專案目錄> && cd <專案目錄>
  10. py
  11. py --login
  12. model
04

VSCode 整合與 Git 操作

08:48

在 WSL 的工作目錄中輸入 `code .`,即可直接使用 Windows 上的 VSCode 開啟該目錄,進行程式碼修改與除錯,體驗與 Windows 原生開發一致。

VSCode 中可直接進行 Git 操作:初始化倉庫、提交程式碼、發佈到 GitHub。也可讓 AI Agent 代勞 Git 操作——讓 Agent 讀取 Windows 宿主機的 Git 設定後同步到 WSL 中,再由 Agent 完成修改、提交與推送。

可透過 Windows 檔案總管查看 Linux 檔案:在左下角 Linux 圖示中選擇對應發行版,或在 WSL 中輸入 `explorer.exe .` 直接開啟當前目錄。Linux 上的 Windows 磁碟以掛載卷形式出現在 `/mnt/c`、`/mnt/d`。注意:專案資料夾盡量放在 Linux 原生目錄,不要放在 Windows 目錄,因為跨作業系統讀取檔案會產生額外 I/O 開銷。

開發環境

📋 本節指令一覽

  1. code .
  2. explorer.exe .
  3. df -h
  4. cd /mnt/c
  5. cd /mnt/c/Users/<使用者名稱>/Desktop
  6. ls
05

三大 AI Agent 工具安裝:Hermes、Claude Code、Codex

13:57

Hermes Agent:選擇 Linux 安裝方式,複製安裝命令到 WSL 執行。設定時選擇「完全設定」,模型廠商選 DeepSeek,輸入 API Key,模型選 V4 Flash,通訊渠道選第三項(Slack),後續一路預設或 Skip 即可。重啟 WSL 後輸入 `hermes` 啟動。

Claude Code:複製安裝命令到 WSL 執行,使用官方訂閱,在瀏覽器中打開授權網址複製授權碼,貼回 WSL 完成配置。若想接入國內模型,網上也有方法。

Codex CLI:從 GitHub 首頁複製 Linux 安裝命令到 WSL,安裝完成後重啟 WSL,輸入 `codex` 啟動,用 ChatGPT 登入。也可使用 Windows 上的 Codex APP(現已改名 ChatGPT 桌面應用),在設定中將 Agent 環境和終端都切換為 WSL。不過 Codex APP 只能使用 Windows 資料夾掛載進 WSL,I/O 效率較低,講者更推薦直接在 WSL 中使用 Codex CLI。

Agent 工具

📋 本節指令一覽

  1. hermes
  2. codex
  3. cloud
06

Docker 與 Redis 實戰

17:10

WSL2 最新發行版已預設啟用 systemd,在 WSL 上運行 Docker 的體驗與真正 Linux 電腦一致。從 Docker 官方部署指南複製第 1 和第 4 個命令到 WSL 執行即可完成安裝。

實戰示範:一行命令 `sudo docker run -d -p 6379:6379 redis` 即可啟動 Redis 容器。在 Windows 上的 Redis 客戶端使用 localhost:6379 即可連接(WSL 的端口自動轉發)。關閉 WSL 視窗後 Docker 容器會停止,重新啟動 WSL 後用 `sudo docker start <容器ID>` 即可恢復。

Docker

📋 本節指令一覽

  1. sudo docker run -d -p 6379:6379 redis
  2. sudo docker ps -a
  3. sudo docker start <容器ID>
07

NVIDIA 顯卡直通與 vLLM 推理框架

20:34

WSL2 基於 Hyper-V 虛擬化平台,自帶顯卡直通功能,不需任何配置即可在 WSL 中直接調用 Windows 宿主機的 NVIDIA 顯卡。輸入 `nvidia-smi` 即可查看 GPU 驅動版本、CUDA 版本與顯卡型號(示範機為 RTX 5070)。千萬不要在 WSL 的 Linux 系統中安裝任何驅動,它直接使用 Windows 的驅動。

vLLM 是目前最熱門的 AI 推理框架,官方文件僅支援 Linux。在 WSL 中安裝 UV 後,依官方文件執行命令即可部署模型。示範使用千問 3.5(Qwen 3.5),透過 Postman 訪問推理端點,半秒即可推理大量 token。

GPU 加速

📋 本節指令一覽

  1. nvidia-smi
  2. curl -LsSf https://astral.sh/uv/install.sh | sh
  3. uv venv
  4. source .venv/bin/activate
  5. uv pip install vllm
  6. vllm serve Qwen/Qwen3.5-7B-Instruct --max-model-len 8192 --gpu-memory-utilization 0.8
08

圖形界面:WSLG 與完整桌面

22:26

WSLG(WSL Graphics)可將 Linux 圖形應用直接顯示到 Windows 桌面。示範安裝 GIMP(開源 Photoshop 替代品),在 WSL 中執行後,視窗直接出現在 Windows 桌面上。

完整桌面環境:在 Kali Linux 上安裝 Kali-Win-KEX,輸入 `kex` 即可啟動完整桌面。在 Ubuntu 上則需依序執行多個命令安裝桌面環境,最後用 Windows 的「遠端桌面連線」輸入 Ubuntu 的 IP 位址和端口 3389 即可連入完整 Ubuntu 桌面。

GUI

📋 本節指令一覽

  1. sudo apt install gimp
  2. gimp
  3. sudo apt update && sudo apt install kali-win-kex -y
  4. kex
  5. sudo apt install ubuntu-desktop xrdp -y
  6. sudo systemctl enable xrdp
  7. ip addr show | grep inet
09

WSL 網路模式與配置檔詳解

24:16

WSL 預設採用 NAT 網路模式,Linux 子系統位於宿主機內部的虛擬網路中,擁有獨立虛擬 IP。透過 localhost 端口自動轉發,宿主機可用 localhost 訪問 WSL 中的服務。但區域網路內的其他設備無法訪問 WSL 中的服務。

鏡像網路模式:在 `C:\Users\<使用者名稱>\.wslconfig` 中新增 `[wsl2]\nnetworkingMode=mirrored`,將 Windows 網卡直接鏡像一份給 WSL 使用,讓兩者處於相同網路環境、使用相同區域網路 IP。還需以管理員身份執行 PowerShell 命令修改防火牆設定。切換後區域網路設備(如手機)即可訪問 WSL 中的服務。

兩個配置檔的區別:`.wslconfig`(Windows 檔案,全域通用,位於 C 槽使用者目錄)可修改記憶體、核心啟動方式、網路模式等;`wsl.conf`(Linux 檔案,位於 `/etc/wsl.conf`,只對單個虛擬機生效)可修改掛載卷、systemd、預設使用者等。示範關閉自動掛載以提升安全性——AI 操作時無法看到 Windows 上的檔案。

網路設定

📋 本節指令一覽

  1. ipconfig
  2. sudo vi /etc/wsl.conf
  3. df -h
10

進階功能:備份克隆與命令列互通

29:16

備份與克隆:`wsl --export <虛擬機名稱> <壓縮包.tar>` 可將整個 Linux 虛擬機備份成 tar 壓縮包。`wsl --import <新名稱> <安裝路徑> <壓縮包>` 可還原或克隆多份相同環境。這也支援將虛擬機遷移到其他 Windows 電腦。

跨命令列互通:在 PowerShell 中可混寫 Windows 和 Linux 命令。例如 `Get-ChildItem | wsl grep vdu`——前半段是 Windows 的 `Get-ChildItem`,透過管道傳給 Linux 的 `grep` 進行篩選,兩種系統的命令可以無縫協作。

進階技巧

📋 本節指令一覽

  1. wsl --export Ubuntu ubuntu-backup.tar
  2. wsl --unregister Ubuntu
  3. wsl --import Ubuntu D:\wsl\ubuntu ubuntu-backup.tar
  4. wsl --import Ubuntu2 D:\wsl\ubuntu2 ubuntu-backup.tar
  5. Get-ChildItem | wsl grep <關鍵詞>

重點時間戳索引

  1. 00:00WSL 能解決 Windows 上 AI Agent 運行不穩、PowerShell 不友善的問題
  2. 01:33安裝 WSL 前需確認 CPU 虛擬化已啟用,一行指令即可安裝 Ubuntu
  3. 03:30可安裝多種 Linux 發行版(Ubuntu、Kali),支援多實例隔離
  4. 06:19在 WSL 中安裝 Py Agent,配置 API Key 後即可開發
  5. 08:48用 Next.js 開發坦克大戰遊戲,VSCode 可直接編輯 WSL 中的程式碼
  6. 13:57安裝 Hermes Agent、Claude Code、Codex CLI 三大 AI Agent 工具
  7. 17:10Docker 安裝與 Redis 容器部署,WSL 關閉後容器自動停止
  8. 20:34WSL2 自帶 NVIDIA 顯卡直通,可運行 vLLM 推理框架部署千問 3.5
  9. 22:26WSLG 可顯示 Linux 圖形軟體,也可啟動完整桌面環境
  10. 24:16NAT 與鏡像網路模式切換、.wslconfig 與 wsl.conf 配置、備份克隆與命令列互通

關鍵字

WSLWindows Subsystem for LinuxAI AgentLinuxDockervLLMGPU直通Hermes AgentClaude CodeCodex教學

🎙️ ASR 漂字對照表

AAAgent / AA→AI Agent / AI
Py→Pi (Agent 名稱)
Hermis→Hermes
Cloud Code→Claude Code
Codex→Codex CLI
V4Flash→V3 Flash (DeepSeek 模型)
千問3.5→千問 3.5 (Qwen 3.5)
K2.7 Code→K2.7 Code (Kimi 模型)
Carly Linux→Kali Linux
企額→Linux 圖示(企鵝)
枯大→CUDA
速度→sudo
密令→命令
紫系統→子系統
輸入機→宿主機
速入機→宿主機
無版圖→Ubuntu
哈巴蝦→爬爬蝦(頻道名)
📎 原始內容(查證 / AI 追查用,非閱讀主文,點擊展開)
Whisper 原始輸出
1
00:00:00,000 --> 00:00:03,320
AAAgent在Windows上的表现不如MacOS

2
00:00:03,320 --> 00:00:07,640
主要原因就是Windows的命令行工具PowerShell对于AA不够友好

3
00:00:07,640 --> 00:00:11,500
但是别忘了Windows上还藏着另外一个神器WSL

4
00:00:11,500 --> 00:00:16,160
只需要一行命令就能在你的Windows电脑上运行一个Linux的子系统

5
00:00:16,160 --> 00:00:19,400
让你的电脑同时获得两大操作系统的优势

6
00:00:19,400 --> 00:00:23,380
在WSL里面运行AAAgent可以获得三大好处

7
00:00:23,380 --> 00:00:25,840
一、Agent运行更稳、效率更高

8
00:00:25,840 --> 00:00:28,180
相信很多人都遇到过这种情况

9
00:00:28,180 --> 00:00:30,820
AA写PowerShell命令频繁的报错

10
00:00:30,820 --> 00:00:33,180
不仅执行慢还特别浪费Token

11
00:00:33,180 --> 00:00:36,240
因为AA大模型训练语料里面的命令行操作

12
00:00:36,240 --> 00:00:39,240
大部分都是Linux和MacOS风格的

13
00:00:39,240 --> 00:00:42,620
AA在Linux环境里面出错概率明显更低

14
00:00:42,620 --> 00:00:43,680
效果也更好

15
00:00:43,680 --> 00:00:45,580
二、跟生产环境更一致

16
00:00:45,580 --> 00:00:47,380
我们用AA写出来的代码

17
00:00:47,380 --> 00:00:50,320
最终大概率会部署到Linux服务器上面

18
00:00:50,320 --> 00:00:54,260
如果代码一开始就是在WSL里面编写和测试的

19
00:00:54,260 --> 00:00:56,460
后续部署到生产环境里的时候

20
00:00:56,460 --> 00:00:58,000
环境差异会更小

21
00:00:58,000 --> 00:00:59,800
整个流程也会更加丝滑

22
00:00:59,800 --> 00:01:01,640
三、环境隔离更安全

23
00:01:01,640 --> 00:01:05,840
WSL提供了Linux虚拟机与Windows宿主机之间的隔离

24
00:01:05,840 --> 00:01:08,760
即使Agent在WSL里面误操作

25
00:01:08,760 --> 00:01:09,940
把环境搞坏了

26
00:01:09,940 --> 00:01:12,320
通常也不会影响Windows主系统

27
00:01:12,320 --> 00:01:15,660
最坏的情况也只需要删除掉这个WSL实力

28
00:01:15,660 --> 00:01:18,400
再重新创建一个新的子系统就好了

29
00:01:18,400 --> 00:01:22,180
本期视频带来一个WSL的超详细保姆级攻略

30
00:01:22,180 --> 00:01:27,580
我们重点来看如何借助WSL在Windows上又快又好的运行A-Agent

31
00:01:27,580 --> 00:01:29,440
教程还包括显卡直通

32
00:01:29,440 --> 00:01:30,780
本地部署模型

33
00:01:30,780 --> 00:01:33,660
还有Docker等一系列的进阶实战操作

34
00:01:33,660 --> 00:01:37,920
使用WSL的前提是开启CPU虚拟化

35
00:01:37,920 --> 00:01:40,540
现阶段的大部分电脑都默认开启了

36
00:01:40,540 --> 00:01:41,860
我们可以来确认一下

37
00:01:41,860 --> 00:01:44,220
在搜索栏搜索任务管理器

38
00:01:44,220 --> 00:01:45,700
找到性能CPU

39
00:01:45,700 --> 00:01:48,060
如果这里显示虚拟化已启用

40
00:01:48,060 --> 00:01:48,920
那就没问题

41
00:01:48,920 --> 00:01:50,800
如果显示还未启用

42
00:01:50,800 --> 00:01:53,020
我们可以来到电脑的BIOS设置

43
00:01:53,020 --> 00:01:55,880
找到英特尔VMX虚拟化平台

44
00:01:55,880 --> 00:01:58,100
把这个开关开启起来就可以了

45
00:01:58,100 --> 00:02:00,140
如果是AMD CPU的话

46
00:02:00,140 --> 00:02:03,480
找到这个SVM Mode的开关开启起来就可以了

47
00:02:03,480 --> 00:02:05,400
CPU虚拟化准备好了以后

48
00:02:05,400 --> 00:02:07,400
我们来正式安装WSL

49
00:02:07,400 --> 00:02:09,760
在Windows的任意位置点击右键

50
00:02:09,760 --> 00:02:10,960
在终端打开

51
00:02:10,960 --> 00:02:11,760
输入命令

52
00:02:11,760 --> 00:02:14,360
WSL空格两个横杠install

53
00:02:14,360 --> 00:02:17,180
如果你的电脑处于国内的网络环境

54
00:02:17,180 --> 00:02:19,740
后面建议加上两个横杠web download

55
00:02:19,740 --> 00:02:22,220
用来提高国内网络的下载速度

56
00:02:22,220 --> 00:02:23,700
然后回车开始安装

57
00:02:23,700 --> 00:02:26,620
如果这里提示要先重启电脑才能继续

58
00:02:26,620 --> 00:02:28,480
我们就先把电脑重启一下

59
00:02:28,480 --> 00:02:29,660
重启完电脑以后

60
00:02:29,660 --> 00:02:31,280
重新打开Windows终端

61
00:02:31,280 --> 00:02:33,040
还是执行刚才的命令

62
00:02:33,040 --> 00:02:34,680
这样就开始正式安装了

63
00:02:34,680 --> 00:02:37,520
我们看到WSL默认安装的是Ubuntu

64
00:02:37,520 --> 00:02:40,320
它也是目前最流行的Linux发行版

65
00:02:40,320 --> 00:02:41,920
所谓Linux发行版

66
00:02:41,920 --> 00:02:46,580
就是不同团队基于Linux内核打造出来的不同操作系统版本

67
00:02:46,580 --> 00:02:48,520
这个概念有点像安卓手机

68
00:02:48,520 --> 00:02:51,520
每个安卓厂商底层都是用的安卓系统

69
00:02:51,520 --> 00:02:55,960
但是每个厂商都会在安卓系统的基础上进行定制和封装

70
00:02:55,960 --> 00:02:58,000
形成各自不同的发行版

71
00:02:58,000 --> 00:02:59,840
我们还是回到安装过程

72
00:02:59,840 --> 00:03:02,960
接下来我们要填写这个Linux虚拟机的用户名

73
00:03:02,960 --> 00:03:05,600
这里我填写TechTrump技术啪啪瞎

74
00:03:05,600 --> 00:03:06,900
接下来填写密码

75
00:03:06,900 --> 00:03:07,860
这里要注意一点

76
00:03:07,860 --> 00:03:09,140
我们输入密码的时候

77
00:03:09,140 --> 00:03:11,200
屏幕上不会显示任何内容

78
00:03:11,200 --> 00:03:13,080
但实际上已经输入进去了

79
00:03:13,080 --> 00:03:13,880
输入完成

80
00:03:13,880 --> 00:03:14,720
点击回车

81
00:03:14,720 --> 00:03:16,020
然后再输入一遍

82
00:03:16,020 --> 00:03:16,500
回车

83
00:03:16,500 --> 00:03:17,720
这样就完成了安装

84
00:03:17,720 --> 00:03:19,860
我们看到这里命令行的颜色变了

85
00:03:19,860 --> 00:03:22,420
这样就进入到了Linux紫系统里面

86
00:03:22,420 --> 00:03:26,220
我们可以输入EXIT退出当前的Linux系统

87
00:03:26,220 --> 00:03:29,900
接下来我们再看一系列更多的WSL的基础使用

88
00:03:29,900 --> 00:03:32,080
除了安装默认的Ubuntu

89
00:03:32,080 --> 00:03:34,020
我们也可以安装其他的发行版

90
00:03:34,020 --> 00:03:35,560
输入密令WSL

91
00:03:35,560 --> 00:03:37,940
然后横-L就是list列出

92
00:03:37,940 --> 00:03:40,580
横-O就是online在线回车

93
00:03:40,580 --> 00:03:43,820
表示列出所有在线可安装的Linux发行版

94
00:03:43,820 --> 00:03:45,880
比如我们可以装一个Carly Linux

95
00:03:45,880 --> 00:03:48,720
输入密令WSL-install

96
00:03:48,720 --> 00:03:50,500
后面接上发行版的名字

97
00:03:50,500 --> 00:03:51,840
也就是Carly Linux

98
00:03:51,840 --> 00:03:54,040
如果我们不想安装到C盘的话

99
00:03:54,040 --> 00:03:55,940
还可以手动指定一个安装目录

100
00:03:55,940 --> 00:03:58,840
后面接上-location来指定安装目录

101
00:03:58,840 --> 00:04:01,260
比如这里我指定了一个D盘的文件夹

102
00:04:01,260 --> 00:04:01,720
开始

103
00:04:01,720 --> 00:04:04,040
这里还是填写一个用户名跟密码

104
00:04:04,040 --> 00:04:06,740
这样我们就安装好了Carly Linux的发行版

105
00:04:06,740 --> 00:04:08,860
这个Linux虚拟机相关的文件

106
00:04:08,860 --> 00:04:11,600
都存放到了我刚才指定的这个目录下面

107
00:04:11,600 --> 00:04:13,040
总共是908兆

108
00:04:13,040 --> 00:04:15,800
我们可以输入命令WSL-L

109
00:04:15,800 --> 00:04:17,280
也就是list列出

110
00:04:17,280 --> 00:04:20,520
列出这台电脑上安装过的所有Linux虚拟机

111
00:04:20,520 --> 00:04:23,560
我们看到这里有Ubuntu还有Carly Linux等等

112
00:04:23,560 --> 00:04:26,560
针对同一个发行版我们也可以安装多个实例

113
00:04:26,560 --> 00:04:28,620
比如现在已经有了一个Ubuntu了

114
00:04:28,620 --> 00:04:31,040
我们可以再创建一个新的Ubuntu实例

115
00:04:31,040 --> 00:04:33,840
每个实例都有自己的文件系统和配置

116
00:04:33,840 --> 00:04:35,860
它们是隔离的互相不影响

117
00:04:35,860 --> 00:04:38,620
我们输入命令WSL-install

118
00:04:38,620 --> 00:04:39,180
Ubuntu

119
00:04:39,180 --> 00:04:41,760
然后我们要给第二个Ubuntu换一个名字

120
00:04:41,760 --> 00:04:42,400
-name

121
00:04:42,400 --> 00:04:45,300
这里我给第二个Ubuntu起名叫Ubuntu2

122
00:04:45,300 --> 00:04:47,540
当然后面也可以指定它的安装路径

123
00:04:47,540 --> 00:04:48,340
这样开始

124
00:04:48,340 --> 00:04:49,820
好这样就安装完成

125
00:04:49,820 --> 00:04:51,660
我还是先输入Exit

126
00:04:51,660 --> 00:04:53,820
从Ubuntu2里面退出出来

127
00:04:53,820 --> 00:04:56,500
再输入WSL-L查看一下

128
00:04:56,500 --> 00:04:58,500
这样我们就有了两个Ubuntu

129
00:04:58,500 --> 00:05:00,020
还有一个Carly Linux

130
00:05:00,020 --> 00:05:03,500
接下来我们就可以启动使用我们的Linux子系统了

131
00:05:03,500 --> 00:05:06,300
在启动之前建议先执行一个操作

132
00:05:06,300 --> 00:05:08,540
就是WSL-update

133
00:05:08,540 --> 00:05:11,300
把WSL本体的功能升级到最新

134
00:05:11,300 --> 00:05:12,820
这样后续操作的时候

135
00:05:12,820 --> 00:05:14,820
可以跟我保持功能上的一致

136
00:05:14,820 --> 00:05:16,460
启动有以下几种方式

137
00:05:16,460 --> 00:05:18,300
我们可以输入命令WSL

138
00:05:18,300 --> 00:05:20,580
来启动默认的Linux虚拟机

139
00:05:20,580 --> 00:05:22,100
这里命令行的颜色变了

140
00:05:22,100 --> 00:05:23,180
就启动成功了

141
00:05:23,180 --> 00:05:25,500
我们可以输入命令Exit来退出

142
00:05:25,500 --> 00:05:27,940
输入命令WSL-D空格

143
00:05:27,940 --> 00:05:29,860
来指定启动某一个虚拟机

144
00:05:29,860 --> 00:05:31,860
比如这里我启动Carly Linux的

145
00:05:31,860 --> 00:05:33,540
填上Carly Linux回车

146
00:05:33,540 --> 00:05:34,660
这样启动成功

147
00:05:34,660 --> 00:05:37,580
如果想把某一个虚拟机设置成默认实例

148
00:05:37,580 --> 00:05:40,140
我们可以输入命令WSL两个横杠

149
00:05:40,140 --> 00:05:41,140
Set Default

150
00:05:41,140 --> 00:05:42,700
比如后面接Carly Linux

151
00:05:42,700 --> 00:05:45,340
然后再输入WSL-L看一下

152
00:05:45,340 --> 00:05:47,460
这样Carly Linux就是默认实例

153
00:05:47,460 --> 00:05:49,180
后面我们输入WSL

154
00:05:49,180 --> 00:05:50,740
不使用任何参数的时候

155
00:05:50,740 --> 00:05:53,820
默认启用的就是Carly Linux这个默认实例

156
00:05:53,820 --> 00:05:56,340
除了我们使用命令来启动WSL

157
00:05:56,340 --> 00:05:58,380
还有另外一种更简洁的方式

158
00:05:58,380 --> 00:06:00,900
就是在PowerShell这里有一个下拉窗口

159
00:06:00,900 --> 00:06:03,780
我们可以在这里面找到我们所有的Linux实例

160
00:06:03,780 --> 00:06:05,140
比如要启动Ubuntu 2

161
00:06:05,140 --> 00:06:07,900
这样在新窗口里面就启动了Ubuntu 2

162
00:06:07,900 --> 00:06:11,260
如果我们想把Linux虚拟机关机也非常简单

163
00:06:11,260 --> 00:06:12,820
我们只需要把窗口插掉

164
00:06:12,820 --> 00:06:16,260
当WSL的命令行窗口被关闭或者退出以后

165
00:06:16,260 --> 00:06:18,900
这个对应的Linux虚拟机也会自动关机

166
00:06:19,700 --> 00:06:21,180
接下来进入重头戏

167
00:06:21,180 --> 00:06:23,820
在WSL里面运行AAAgent

168
00:06:23,820 --> 00:06:25,820
在我们运行Agent之前

169
00:06:25,820 --> 00:06:28,900
操作系统上一般需要先安装开发三件套

170
00:06:28,900 --> 00:06:31,460
分别是Git、Node.js还有Python

171
00:06:31,460 --> 00:06:34,300
这里我还是以最常用的发行版Ubuntu为例

172
00:06:34,300 --> 00:06:35,940
打开我的Ubuntu虚拟机

173
00:06:35,940 --> 00:06:37,900
进来以后我们先检查一下Git

174
00:06:37,900 --> 00:06:39,220
这里输入Git-V

175
00:06:39,220 --> 00:06:41,260
看到Ubuntu系统自带了Git

176
00:06:41,260 --> 00:06:43,100
那这样就不用额外安装了

177
00:06:43,100 --> 00:06:44,620
然后我们再来看一下Python

178
00:06:44,620 --> 00:06:46,340
可以Python3-version

179
00:06:46,340 --> 00:06:47,780
同样也自带了Python

180
00:06:47,780 --> 00:06:49,900
但是如果我们敲命令Python的话

181
00:06:49,900 --> 00:06:51,780
这里会提示还未安装

182
00:06:51,780 --> 00:06:53,300
我们可以做一点配置

183
00:06:53,300 --> 00:06:55,780
把Python命令链接到Python3上面

184
00:06:55,780 --> 00:06:58,740
这里我们先输入sudo apt update

185
00:06:58,740 --> 00:07:00,340
更新一下apt锁引

186
00:07:00,340 --> 00:07:02,860
更新完了以后输入clear清理一下屏幕

187
00:07:02,860 --> 00:07:05,540
接下来我们输入sudo apt install

188
00:07:05,540 --> 00:07:07,140
Python is Python3

189
00:07:07,140 --> 00:07:08,260
好这样就可以了

190
00:07:08,260 --> 00:07:10,220
接下来我们再使用Python命令

191
00:07:10,220 --> 00:07:12,780
就可以正常的链接到Python3版本上面

192
00:07:12,780 --> 00:07:14,740
接下来我们来验证Node.js

193
00:07:14,740 --> 00:07:15,780
输入Node-V

194
00:07:15,780 --> 00:07:17,820
这里看到Node.js还没有安装

195
00:07:17,820 --> 00:07:19,740
我们先来到Node.js的官网

196
00:07:19,740 --> 00:07:21,540
这里操作系统选成Linux

197
00:07:21,540 --> 00:07:24,060
然后安装方式选择NVM

198
00:07:24,060 --> 00:07:26,340
也就是Node.js版本管理器

199
00:07:26,340 --> 00:07:28,100
这里先把第一个命令复制一下

200
00:07:28,100 --> 00:07:29,740
来到Ubuntu执行一下

201
00:07:29,740 --> 00:07:31,500
输入clear清理一下屏幕

202
00:07:31,500 --> 00:07:32,620
接下来第二个命令

203
00:07:32,620 --> 00:07:34,740
第三个命令

204
00:07:34,740 --> 00:07:36,660
安装Node.js版本24

205
00:07:36,660 --> 00:07:38,180
接下来输入Node.js杠位

206
00:07:38,180 --> 00:07:39,180
NPM杠位

207
00:07:39,180 --> 00:07:40,960
这里都成功打印出版本号

208
00:07:40,960 --> 00:07:42,780
我们的Node.js也准备好了

209
00:07:42,780 --> 00:07:44,340
接下来我们来安装Py

210
00:07:44,340 --> 00:07:46,380
这是一个极简的Coding Agent

211
00:07:46,380 --> 00:07:48,300
没有那些复杂的提示词

212
00:07:48,300 --> 00:07:50,700
最大程度上减少了对于AI的干扰

213
00:07:50,700 --> 00:07:52,180
而且非常的省Token

214
00:07:52,180 --> 00:07:54,140
我们在WSL里面使用

215
00:07:54,140 --> 00:07:56,500
选择这个CURL的安装方式

216
00:07:56,500 --> 00:07:57,660
把命令复制一下

217
00:07:57,660 --> 00:07:59,700
然后来到WSL安装一下

218
00:07:59,700 --> 00:08:00,780
这里我们输入Y

219
00:08:00,780 --> 00:08:02,100
好 这就安装成功了

220
00:08:02,100 --> 00:08:04,580
接下来我们通过CD波浪线这个命令

221
00:08:04,580 --> 00:08:06,460
进入我这个用户的主目录

222
00:08:06,460 --> 00:08:07,900
然后MKDIR

223
00:08:07,900 --> 00:08:09,100
创建一个文件夹

224
00:08:09,100 --> 00:08:11,020
比如这里我叫PyTest

225
00:08:11,020 --> 00:08:12,660
然后再进入这个文件夹

226
00:08:12,660 --> 00:08:14,580
然后输入Py来启动起来

227
00:08:14,580 --> 00:08:17,140
进来以后它提示我们要先配置模型

228
00:08:17,140 --> 00:08:18,900
这里我们输入-login

229
00:08:18,900 --> 00:08:20,260
可以来配置模型

230
00:08:20,260 --> 00:08:22,700
可以选择模型订阅或者API Key

231
00:08:22,700 --> 00:08:24,020
这里我选择API Key

232
00:08:24,020 --> 00:08:26,140
Py支持很多厂商的模型

233
00:08:26,140 --> 00:08:27,780
这里我推荐使用Deepseek

234
00:08:27,780 --> 00:08:29,260
minimax或者Kimi

235
00:08:29,260 --> 00:08:30,620
比如这里我选择Kimi

236
00:08:30,620 --> 00:08:32,420
接下来来到Kimi Code官网

237
00:08:32,420 --> 00:08:34,100
控制台新建API Key

238
00:08:34,100 --> 00:08:35,300
创建一个API Key

239
00:08:35,300 --> 00:08:36,020
复制一下

240
00:08:36,020 --> 00:08:38,020
Ctrl加V粘贴过来回车

241
00:08:38,020 --> 00:08:39,420
好 这样就配置成功了

242
00:08:39,420 --> 00:08:41,020
然后我们可以输入modo

243
00:08:41,020 --> 00:08:42,340
来切换模型

244
00:08:42,340 --> 00:08:43,980
比如我选K2.7 Code

245
00:08:43,980 --> 00:08:44,740
打个招呼

246
00:08:44,740 --> 00:08:45,900
这里给到了回复

247
00:08:45,900 --> 00:08:48,100
我们的PyAgent就配置成功了

248
00:08:48,820 --> 00:08:51,100
接下来我们来编个程序测试一下

249
00:08:51,100 --> 00:08:52,780
使用Next.js框架

250
00:08:52,780 --> 00:08:54,620
编写一个坦克大战游戏

251
00:08:54,620 --> 00:08:55,540
开发完成了

252
00:08:55,540 --> 00:08:57,860
它提示我用浏览器访问这个地址

253
00:08:57,860 --> 00:08:59,260
就可以直接开始游戏

254
00:08:59,260 --> 00:09:01,660
这里我可以直接用Windows上的浏览器

255
00:09:01,660 --> 00:09:03,100
比如我的Edge浏览器

256
00:09:03,100 --> 00:09:04,060
打开这个地址

257
00:09:04,060 --> 00:09:05,340
就能玩到这个游戏

258
00:09:05,340 --> 00:09:07,340
这里有个知识点要补充一下

259
00:09:07,340 --> 00:09:09,580
在WSL里面运行的服务

260
00:09:09,580 --> 00:09:12,300
使用的是Linux虚拟机的IP地址

261
00:09:12,300 --> 00:09:14,460
而我Windows电脑的Localhost

262
00:09:14,460 --> 00:09:17,180
则指向的是我这台宿主机的IP地址

263
00:09:17,180 --> 00:09:18,980
这俩其实并不是一回事

264
00:09:18,980 --> 00:09:21,820
理论上在宿主机里面敲Localhost

265
00:09:21,820 --> 00:09:24,620
不应该能访问到WSL里面的服务

266
00:09:24,620 --> 00:09:27,620
所以这其实是WSL的一个特色功能

267
00:09:27,620 --> 00:09:29,740
Localhost的端口自动转发

268
00:09:29,740 --> 00:09:33,580
当WSL检测到Linux里面有程序监听端口

269
00:09:33,580 --> 00:09:37,180
它就会自动转发到Windows宿主机这边的Localhost

270
00:09:37,180 --> 00:09:38,220
相同的端口

271
00:09:38,220 --> 00:09:39,740
所以在这个例子里面

272
00:09:39,740 --> 00:09:43,020
我使用Localhost访问宿主机的3000端口

273
00:09:43,020 --> 00:09:46,860
这个请求会自动转发到Linux虚拟机的3000端口上面

274
00:09:46,860 --> 00:09:50,300
接下来我们看怎么在IDE里面修改跟调试

275
00:09:50,300 --> 00:09:51,660
AEA给我们写的代码

276
00:09:51,660 --> 00:09:55,500
进行这一步的前提是要确保你的Windows电脑上安装了这个软件

277
00:09:55,500 --> 00:09:56,860
这个软件VSCode

278
00:09:56,860 --> 00:09:58,140
这里我再开一个窗口

279
00:09:58,140 --> 00:09:59,660
还是先来到工作目录

280
00:09:59,660 --> 00:10:00,860
然后输入这个命令

281
00:10:00,860 --> 00:10:03,340
Code也就是VSCode的简写

282
00:10:03,340 --> 00:10:06,300
然后空格点表示打开当前目录

283
00:10:06,300 --> 00:10:09,260
这样就直接使用Windows电脑上的VSCode

284
00:10:09,260 --> 00:10:10,780
打开了这个工作目录

285
00:10:10,780 --> 00:10:12,700
我们可以直接在这里面查看

286
00:10:12,700 --> 00:10:13,900
并且修改原代码

287
00:10:13,900 --> 00:10:16,380
比如我在代码里面改一下标题

288
00:10:16,380 --> 00:10:18,780
在浏览器里面就会同步改动过来

289
00:10:18,780 --> 00:10:20,940
跟我们使用Windows电脑进行编码

290
00:10:20,940 --> 00:10:22,300
还有调试是一样的

291
00:10:22,300 --> 00:10:23,180
非常的方便

292
00:10:23,180 --> 00:10:26,460
同样的我们可以在VSCode里面进行Git操作

293
00:10:26,460 --> 00:10:28,940
我们在VSCode里面找到Source Control

294
00:10:28,940 --> 00:10:30,620
然后Manage Trust

295
00:10:30,620 --> 00:10:31,500
点击信任

296
00:10:31,500 --> 00:10:34,140
接下来点击Initialize Repository

297
00:10:34,140 --> 00:10:36,700
也就是把目录初始化成一个Git项目

298
00:10:36,700 --> 00:10:38,780
然后填写一个CommitMessage

299
00:10:38,780 --> 00:10:40,380
这样就完成了代码提交

300
00:10:40,380 --> 00:10:41,580
再点击Publish

301
00:10:41,580 --> 00:10:43,420
填写一个仓库名字回车

302
00:10:43,420 --> 00:10:46,540
右下角提示我们代码上传到了GitHub上面

303
00:10:46,540 --> 00:10:49,500
Publish之前的这期视频里面有关于Git

304
00:10:49,500 --> 00:10:51,500
和GitHub操作的详细教程

305
00:10:51,500 --> 00:10:53,580
不熟悉的观众朋友们可以来看一下

306
00:10:53,580 --> 00:10:55,540
除了我们在VSCode里面

307
00:10:55,540 --> 00:10:57,300
手动完成一些Git操作

308
00:10:57,300 --> 00:11:00,900
有时候我们也想让AE代替我们完成一些Git操作

309
00:11:00,900 --> 00:11:02,300
这时候我们可以让AE

310
00:11:02,300 --> 00:11:04,780
先把用户名跟邮箱初始化一下

311
00:11:04,780 --> 00:11:05,820
这里我跟他说

312
00:11:05,820 --> 00:11:07,820
你现在在WSL里面

313
00:11:07,820 --> 00:11:10,980
你读一下我Windows宿主机上面的Git设置

314
00:11:10,980 --> 00:11:13,300
然后在WSL里面也配置一下

315
00:11:13,300 --> 00:11:16,260
我们看到AE读到了Windows宿主机的配置

316
00:11:16,260 --> 00:11:19,140
然后把配置同步到了WSL里面

317
00:11:19,140 --> 00:11:21,540
我让AE把坦克大战的标题改一下

318
00:11:21,540 --> 00:11:22,660
然后Commit一下

319
00:11:22,660 --> 00:11:24,180
AE帮我们完成了修改

320
00:11:24,180 --> 00:11:25,380
并且做了提交

321
00:11:25,380 --> 00:11:26,660
在VSCode这边

322
00:11:26,660 --> 00:11:29,220
也可以看到AE使用Git做的提交

323
00:11:29,220 --> 00:11:31,620
然后我让AE推送到GitHub上面

324
00:11:31,620 --> 00:11:34,460
这个提交也可以正常的推送到GitHub上面

325
00:11:34,460 --> 00:11:36,980
我们使用WSL所有的编码

326
00:11:36,980 --> 00:11:38,700
调试还有Git操作

327
00:11:38,700 --> 00:11:41,420
跟在Windows上的体验几乎是一致的

328
00:11:41,420 --> 00:11:42,820
没有什么学习门槛

329
00:11:42,820 --> 00:11:46,180
除了我们使用VSCode来查看刚才的代码目录

330
00:11:46,180 --> 00:11:48,420
我们再看怎么在资源管理器里面

331
00:11:48,420 --> 00:11:50,020
看到那些Linux文件

332
00:11:50,020 --> 00:11:51,860
这里来到我的资源管理器

333
00:11:51,860 --> 00:11:53,700
在左下角有一个企额

334
00:11:53,700 --> 00:11:55,220
也就是Linux的图标

335
00:11:55,220 --> 00:11:56,740
然后这里有一个Ubuntu

336
00:11:56,740 --> 00:11:59,060
打开以后就展示了这个Linux

337
00:11:59,060 --> 00:12:00,420
子系统的文件目录

338
00:12:00,420 --> 00:12:02,420
比如刚才我们的代码是放在了Home

339
00:12:02,420 --> 00:12:04,100
然后我的用户名

340
00:12:04,100 --> 00:12:05,220
这个PiTest

341
00:12:05,220 --> 00:12:06,660
坦克大战这个目录下面

342
00:12:06,660 --> 00:12:08,820
Linux虚拟机上面的所有文件

343
00:12:08,820 --> 00:12:11,220
我们都可以使用Windows的资源管理器

344
00:12:11,220 --> 00:12:12,020
进行查看

345
00:12:12,020 --> 00:12:14,660
还可以直接用Windows上面的软件打开

346
00:12:14,660 --> 00:12:16,420
对文件进行编辑等等

347
00:12:16,420 --> 00:12:18,260
我们再来介绍一种更快捷

348
00:12:18,260 --> 00:12:21,060
使用资源管理器查看Linux目录的方法

349
00:12:21,060 --> 00:12:22,820
我们可以先来到一个目录

350
00:12:22,820 --> 00:12:24,100
然后输入这个命令

351
00:12:24,100 --> 00:12:26,020
Explorer.exe

352
00:12:26,020 --> 00:12:29,220
也就是Windows资源管理器的可执行程序

353
00:12:29,220 --> 00:12:31,940
后面接点表示打开当前目录

354
00:12:31,940 --> 00:12:34,180
这样就使用Windows的资源管理器

355
00:12:34,180 --> 00:12:36,660
打开了Ubuntu系统的这个对应目录

356
00:12:36,660 --> 00:12:39,700
我们可以在Windows上查看Linux的文件

357
00:12:39,700 --> 00:12:41,300
反过来在Linux上

358
00:12:41,300 --> 00:12:43,460
也可以直接查看Windows上的文件

359
00:12:43,460 --> 00:12:44,820
我们可以输入这个命令

360
00:12:44,820 --> 00:12:46,100
DF-H

361
00:12:46,100 --> 00:12:48,380
查看一下Linux上所有的磁盘

362
00:12:48,380 --> 00:12:50,580
我们注意到这个C盘还有D盘

363
00:12:50,580 --> 00:12:52,180
然后它的挂载地址是

364
00:12:52,180 --> 00:12:54,100
MNT-C MNT-D

365
00:12:54,100 --> 00:12:55,780
Windows上的磁盘

366
00:12:55,780 --> 00:12:57,460
直接以挂载卷的形式

367
00:12:57,460 --> 00:12:59,540
出现到了Linux的目录里面

368
00:12:59,540 --> 00:13:00,660
我们可以来看一下

369
00:13:00,660 --> 00:13:03,460
这样CD-MNT-C

370
00:13:03,460 --> 00:13:05,300
这样就进入了C盘跟目录

371
00:13:05,300 --> 00:13:06,740
我们可以输入LS

372
00:13:06,740 --> 00:13:08,260
比如我们可以再来到桌面

373
00:13:08,260 --> 00:13:09,700
就是CD users

374
00:13:09,700 --> 00:13:11,060
然后我的用户名

375
00:13:11,060 --> 00:13:12,820
在CD desktop

376
00:13:12,820 --> 00:13:14,100
这样就是我的桌面

377
00:13:14,100 --> 00:13:15,060
输入LS

378
00:13:15,060 --> 00:13:16,900
列出桌面上所有的内容

379
00:13:16,900 --> 00:13:17,700
这里补充一点

380
00:13:17,700 --> 00:13:20,180
我们在WSR里面开发项目的时候

381
00:13:20,180 --> 00:13:23,300
项目文件夹尽量放在Linux的原生目录里面

382
00:13:23,300 --> 00:13:25,140
不要放在Windows的目录里面

383
00:13:25,140 --> 00:13:27,140
因为跨操作系统读取文件

384
00:13:27,140 --> 00:13:29,140
会产生额外的IO开销

385
00:13:29,140 --> 00:13:31,540
有时候我们需要给AI发送图片

386
00:13:31,540 --> 00:13:34,180
这个在WSR里面也可以轻松办到

387
00:13:34,180 --> 00:13:36,660
比如我可以在浏览器里面结一个图

388
00:13:36,660 --> 00:13:38,580
然后把图片保存一下

389
00:13:38,580 --> 00:13:39,940
这里我保存到桌面上

390
00:13:39,940 --> 00:13:43,380
接下来我直接把图片拖拽进WSR的窗口里面

391
00:13:43,380 --> 00:13:44,980
我们看到这个图片的地址

392
00:13:44,980 --> 00:13:47,460
是以一个挂载卷的目录显示过来的

393
00:13:47,460 --> 00:13:49,220
也就是对应C盘用户

394
00:13:49,220 --> 00:13:50,580
我的用户名桌面

395
00:13:50,580 --> 00:13:52,980
我问AI你看看这个图里面有什么

396
00:13:52,980 --> 00:13:54,260
在WSR里面

397
00:13:54,260 --> 00:13:56,500
AI也可以正确的看到这个图片

398
00:13:57,220 --> 00:13:59,540
接下来我们看怎么在WSR里面

399
00:13:59,540 --> 00:14:01,860
运行Hermis Agent跟Cloud Code

400
00:14:01,860 --> 00:14:05,220
Hermis Agent是目前非常流行的Agent工具

401
00:14:05,220 --> 00:14:06,340
很长一段时间

402
00:14:06,340 --> 00:14:08,020
它都是没有Windows版本的

403
00:14:08,020 --> 00:14:10,180
现在虽然出了原生的Windows版本

404
00:14:10,180 --> 00:14:12,500
但是在Windows上的表现一直不太好

405
00:14:12,500 --> 00:14:14,580
这里我们就用WSR来安装

406
00:14:14,580 --> 00:14:16,340
安装方式选择Linux

407
00:14:16,340 --> 00:14:18,580
然后把Hermis的命令复制一下

408
00:14:18,580 --> 00:14:21,460
还是来到WSR我这个Ubuntu终端

409
00:14:21,460 --> 00:14:22,580
把命令复制一下

410
00:14:22,580 --> 00:14:22,980
开始

411
00:14:22,980 --> 00:14:24,020
这一步选择Y

412
00:14:24,020 --> 00:14:26,740
接下来它让我输入这台Linux虚拟机的密码

413
00:14:26,740 --> 00:14:29,380
到这一步我们选择第二个完全设置

414
00:14:29,380 --> 00:14:31,700
在这一步可以选择模型厂商

415
00:14:31,700 --> 00:14:33,140
这里我选择Deepseek

416
00:14:33,140 --> 00:14:35,700
接下来它让我输入Deepseek的API Key

417
00:14:35,700 --> 00:14:38,580
接下来我们来到Deepseek的API开放平台

418
00:14:38,580 --> 00:14:40,260
在API Key这里创建

419
00:14:40,260 --> 00:14:42,020
把这个API Key复制一下

420
00:14:42,020 --> 00:14:43,540
粘贴过来回车

421
00:14:43,540 --> 00:14:45,300
被子URL直接敲回车

422
00:14:45,300 --> 00:14:46,180
选一个模型

423
00:14:46,180 --> 00:14:47,540
我选V4Flash

424
00:14:47,540 --> 00:14:48,900
选择KeepCurrent

425
00:14:48,900 --> 00:14:51,140
接下来选择一个计时通信渠道

426
00:14:51,140 --> 00:14:52,900
这里最简单的就是第三个

427
00:14:52,900 --> 00:14:53,940
我们敲空格

428
00:14:53,940 --> 00:14:55,180
勾选上第三个

429
00:14:55,180 --> 00:14:55,940
然后回车

430
00:14:55,940 --> 00:14:58,100
根据提示操作完成配对

431
00:14:58,100 --> 00:14:59,740
后面一路使用默认值

432
00:14:59,740 --> 00:15:00,820
敲回车就行了

433
00:15:00,820 --> 00:15:02,820
如果遇到不知道怎么配置的地方

434
00:15:02,820 --> 00:15:04,100
我们都选择Skip

435
00:15:04,100 --> 00:15:05,100
跳过就可以了

436
00:15:05,100 --> 00:15:07,020
好这样就全部配置完成了

437
00:15:07,020 --> 00:15:08,660
接下来我们关闭掉窗口

438
00:15:08,660 --> 00:15:10,420
重启一下WSL

439
00:15:10,420 --> 00:15:12,740
然后输入命令Hermes启动一下

440
00:15:12,740 --> 00:15:13,460
打个招呼

441
00:15:13,460 --> 00:15:14,580
这里给到了回复

442
00:15:14,580 --> 00:15:15,940
我们就配置完成了

443
00:15:15,940 --> 00:15:17,780
接下来我们来看Cloud Code

444
00:15:17,780 --> 00:15:20,100
这里复制一下Cloud Code的安装命令

445
00:15:20,100 --> 00:15:22,500
然后粘贴进WSL回车

446
00:15:22,500 --> 00:15:24,820
然后我们输入命令Cloud启动起来

447
00:15:24,820 --> 00:15:26,740
这里我使用Cloud的官方订阅

448
00:15:26,740 --> 00:15:28,500
如果想接入国内模型的话

449
00:15:28,500 --> 00:15:29,860
网上也有很多方法了

450
00:15:29,860 --> 00:15:31,060
这里我就不赘述了

451
00:15:31,060 --> 00:15:33,140
把这个地址在浏览器里面打开

452
00:15:33,140 --> 00:15:34,660
把这个数权码复制一下

453
00:15:34,660 --> 00:15:36,740
粘贴进WSL再回车

454
00:15:36,740 --> 00:15:38,180
好这样就配置完成了

455
00:15:38,180 --> 00:15:38,820
打个招呼

456
00:15:38,820 --> 00:15:40,740
给到了回复我们的Cloud Code

457
00:15:40,740 --> 00:15:41,780
也配置成功了

458
00:15:41,780 --> 00:15:43,540
接下来我们来看Codex

459
00:15:43,540 --> 00:15:44,940
这里最推荐的方式

460
00:15:44,940 --> 00:15:48,100
就是在WSL里面运行Codex CLI

461
00:15:48,100 --> 00:15:50,340
也就是这个命令行版本的Codex

462
00:15:50,340 --> 00:15:52,780
它的功能跟CodexAPP是一样的

463
00:15:52,780 --> 00:15:54,740
这里我们来到它的Github首页

464
00:15:54,740 --> 00:15:57,380
然后把这里Linux的命令复制一下

465
00:15:57,380 --> 00:15:59,140
粘贴到WSL里面

466
00:15:59,140 --> 00:16:00,260
这里输入Y

467
00:16:00,260 --> 00:16:01,300
安装完成以后

468
00:16:01,300 --> 00:16:03,060
我们重启一下WSL

469
00:16:03,060 --> 00:16:04,980
然后输入Codex启动起来

470
00:16:04,980 --> 00:16:06,780
这里我用ChatGPT登录

471
00:16:06,780 --> 00:16:08,100
登录完成回车

472
00:16:08,100 --> 00:16:08,620
开始

473
00:16:08,620 --> 00:16:09,780
这里打个招呼

474
00:16:09,780 --> 00:16:10,820
给到了回复

475
00:16:10,820 --> 00:16:12,300
我们的配置就成功了

476
00:16:12,300 --> 00:16:15,140
如果不习惯使用命令行来操作Codex

477
00:16:15,140 --> 00:16:16,340
我们也可以直接使用

478
00:16:16,340 --> 00:16:18,500
Windows电脑上的CodexAPP

479
00:16:18,500 --> 00:16:21,740
这是我安装在Windows电脑上的CodexAPP

480
00:16:21,740 --> 00:16:23,100
我们来做一点配置

481
00:16:23,100 --> 00:16:24,860
把它链接进WSL

482
00:16:24,860 --> 00:16:26,540
在左下角找到设置

483
00:16:26,540 --> 00:16:29,020
在常规里面找到智能体环境

484
00:16:29,020 --> 00:16:31,340
把这个环境切换成WSL

485
00:16:31,340 --> 00:16:33,820
下面的终端也切换成WSL

486
00:16:33,820 --> 00:16:35,540
这里它提示我们重启

487
00:16:35,540 --> 00:16:37,300
让我们重启一下Codex

488
00:16:37,300 --> 00:16:37,780
哦对了

489
00:16:37,780 --> 00:16:40,820
现在Codex改名叫ChatGPT桌面应用了

490
00:16:40,820 --> 00:16:41,660
重启完成以后

491
00:16:41,660 --> 00:16:43,740
我们可以选择一个Windows的文件夹

492
00:16:43,740 --> 00:16:45,020
作为项目文件夹

493
00:16:45,020 --> 00:16:46,940
我们在Codex里面可以看到

494
00:16:46,940 --> 00:16:49,580
这个文件夹是以一个挂载卷的形式

495
00:16:49,580 --> 00:16:51,340
链接到了WSL里面

496
00:16:51,340 --> 00:16:54,260
现在Codex的Shell环境就是WSL

497
00:16:54,260 --> 00:16:56,580
它使用的命令也都是Linux命令

498
00:16:56,580 --> 00:16:58,900
目前这种方式我们只能使用

499
00:16:58,900 --> 00:17:00,660
Windows文件夹作为项目文件夹

500
00:17:00,660 --> 00:17:02,500
并且挂载进WSL

501
00:17:02,500 --> 00:17:04,500
在视频的前面我也提到过了

502
00:17:04,500 --> 00:17:06,420
这种方式Io效率比较低

503
00:17:06,420 --> 00:17:08,900
所以我更推荐直接在WSL里面

504
00:17:08,900 --> 00:17:10,900
使用Codex CLI

505
00:17:10,900 --> 00:17:13,300
WSL上面另外一个宝藏神器

506
00:17:13,300 --> 00:17:14,100
就是Docker

507
00:17:14,100 --> 00:17:16,660
Docker是基于Linux容器化技术

508
00:17:16,660 --> 00:17:19,700
让程序在不同的环境中都能一致运行

509
00:17:19,700 --> 00:17:22,020
大幅简化了开发跟运维流程

510
00:17:22,020 --> 00:17:25,460
哈巴虾之前有一期40分钟的Docker基础教程

511
00:17:25,460 --> 00:17:27,940
本期视频我们就不赘述基础概念了

512
00:17:27,940 --> 00:17:29,060
直接进入实战

513
00:17:29,060 --> 00:17:31,460
现在WSL上面最新的发行版

514
00:17:31,460 --> 00:17:33,620
已经默认启用了System D

515
00:17:33,620 --> 00:17:36,580
所以现在在WSL上面运行Docker的体验

516
00:17:36,580 --> 00:17:39,780
跟一台真正的Linux电脑的体验是一致的

517
00:17:39,780 --> 00:17:43,540
所以现在在WSL里面使用Docker也非常的方便了

518
00:17:43,540 --> 00:17:45,860
我们来到Docker官方的部署指南

519
00:17:45,860 --> 00:17:47,220
这里有一个安装步骤

520
00:17:47,220 --> 00:17:50,420
我们只需要把第一个跟第四个执行一下就可以了

521
00:17:50,420 --> 00:17:52,100
这里把第一个命令复制一下

522
00:17:52,100 --> 00:17:54,820
然后来到WSL粘贴过来运行

523
00:17:54,820 --> 00:17:56,660
接下来复制第四个命令

524
00:17:56,660 --> 00:17:58,420
在WSL里面运行

525
00:17:58,420 --> 00:18:00,500
这里输入Linux虚拟机的密码

526
00:18:00,500 --> 00:18:01,780
到这一步我们不用管

527
00:18:01,780 --> 00:18:02,820
直接等待20秒

528
00:18:02,820 --> 00:18:04,660
好这样Docker就安装完成了

529
00:18:04,660 --> 00:18:06,500
我们开发后台服务的时候

530
00:18:06,500 --> 00:18:08,980
经常使用Redis作为高速缓存

531
00:18:08,980 --> 00:18:10,660
在本地开发软件的时候

532
00:18:10,660 --> 00:18:13,100
我们往往需要部署一个Redis实例

533
00:18:13,100 --> 00:18:16,300
在Windows系统上部署Redis是相当复杂的

534
00:18:16,300 --> 00:18:18,540
但是现在有了Docker就非常简单了

535
00:18:18,540 --> 00:18:19,820
我们直接输入命令

536
00:18:19,820 --> 00:18:20,860
sudo docker

537
00:18:20,860 --> 00:18:23,340
注意在WSL里面敲Docker命令

538
00:18:23,340 --> 00:18:25,100
一定要在前面先加sudo

539
00:18:25,100 --> 00:18:27,180
run-d-p

540
00:18:27,180 --> 00:18:28,860
我们把端口映射出来

541
00:18:28,860 --> 00:18:31,020
Redis默认端口6379

542
00:18:31,020 --> 00:18:33,340
最后镜像的名字Redis回车

543
00:18:33,340 --> 00:18:37,020
好这样我们的Redis在WSL里面就运行成功了

544
00:18:37,020 --> 00:18:38,380
接下来我们来试一试

545
00:18:38,380 --> 00:18:41,660
这是我Windows电脑上的一个开源的Redis客户端

546
00:18:41,660 --> 00:18:42,860
我们来连接一下

547
00:18:42,860 --> 00:18:44,220
点击New Connection

548
00:18:44,220 --> 00:18:46,540
这里host填Localhost

549
00:18:46,540 --> 00:18:47,900
端口6379

550
00:18:47,900 --> 00:18:50,060
之前的视频里面我们介绍了

551
00:18:50,060 --> 00:18:53,180
WSL在Localhost上面的端口转发

552
00:18:53,180 --> 00:18:55,340
当然Docker上面映射出来的端口

553
00:18:55,340 --> 00:18:57,420
使用宿主机也可以直接访问到

554
00:18:57,420 --> 00:18:58,540
这里直接点击OK

555
00:18:58,540 --> 00:18:59,660
这样就连接进来了

556
00:18:59,660 --> 00:19:00,780
我们添加一个key

557
00:19:00,780 --> 00:19:02,060
可以给这个key复值

558
00:19:02,060 --> 00:19:03,980
Redis正常工作没问题

559
00:19:03,980 --> 00:19:06,780
使用Docker一句话就能启动Redis实例

560
00:19:06,780 --> 00:19:08,780
本地开发使用非常的方便

561
00:19:08,780 --> 00:19:11,260
我们只需要把WSL的窗口关闭掉

562
00:19:11,260 --> 00:19:12,780
Docker就停止运行了

563
00:19:12,780 --> 00:19:14,700
我们使用宿主机也连接不到了

564
00:19:14,700 --> 00:19:16,700
我们再把Linux虚拟机启动起来

565
00:19:16,700 --> 00:19:17,420
输入命令

566
00:19:17,420 --> 00:19:18,700
速度Docker

567
00:19:18,700 --> 00:19:19,820
PS-A

568
00:19:19,820 --> 00:19:21,260
查看一下所有的容器

569
00:19:21,260 --> 00:19:23,020
我们看到因为刚才的关机

570
00:19:23,020 --> 00:19:25,500
我们的Redis容器已经停止运行了

571
00:19:25,500 --> 00:19:27,180
接下来我们再把它启动起来

572
00:19:27,180 --> 00:19:28,300
速度Docker

573
00:19:28,300 --> 00:19:28,860
Start

574
00:19:28,860 --> 00:19:30,380
后面接容器的ID

575
00:19:30,380 --> 00:19:31,980
让我们容器又启动起来了

576
00:19:31,980 --> 00:19:33,580
再回来重新连接一下

577
00:19:33,580 --> 00:19:34,620
就又连接上了

578
00:19:34,620 --> 00:19:36,220
这里再补充一个知识点

579
00:19:36,220 --> 00:19:38,060
本期视频介绍的所有功能

580
00:19:38,060 --> 00:19:40,300
都是基于最新版WSL2

581
00:19:40,300 --> 00:19:42,300
其实WSL还有一个老版本

582
00:19:42,300 --> 00:19:43,180
WSL1

583
00:19:43,180 --> 00:19:45,660
这两个版本在底层原理的实现上

584
00:19:45,660 --> 00:19:46,860
有本质上的不同

585
00:19:46,860 --> 00:19:48,300
我们来简单了解一下

586
00:19:48,300 --> 00:19:50,860
WSL1的本质是一个翻译层

587
00:19:50,860 --> 00:19:52,460
它将Linux系统指令

588
00:19:52,460 --> 00:19:54,020
翻译成Windows NT内核

589
00:19:54,020 --> 00:19:55,500
可以理解的系统指令

590
00:19:55,500 --> 00:19:58,500
WSL1不运行真正的Linux内核

591
00:19:58,500 --> 00:19:59,980
而是通过Windows内核

592
00:19:59,980 --> 00:20:01,500
来模拟Linux系统

593
00:20:01,500 --> 00:20:02,940
因此在某些情况下

594
00:20:02,940 --> 00:20:04,540
会出现兼容性的问题

595
00:20:04,540 --> 00:20:06,140
比如无法运行Docker

596
00:20:06,140 --> 00:20:07,780
而且维护这样的翻译层

597
00:20:07,780 --> 00:20:09,100
其实工作量巨大

598
00:20:09,100 --> 00:20:11,500
于是微软开发出了WSL2

599
00:20:11,500 --> 00:20:14,620
WSL2基于Hyper-V的虚拟化平台

600
00:20:14,620 --> 00:20:16,620
它具有真正的Linux内核

601
00:20:16,620 --> 00:20:18,580
可以与Windows在用户空间上

602
00:20:18,580 --> 00:20:19,580
进行网络通信

603
00:20:19,580 --> 00:20:20,700
文件共享等等

604
00:20:20,700 --> 00:20:23,660
更棒的是WSL2可以运行Docker

605
00:20:23,660 --> 00:20:25,100
并且得益于Hyper-V的

606
00:20:25,100 --> 00:20:26,940
强大硬件虚拟化技术

607
00:20:26,940 --> 00:20:29,260
WSL2自带显卡直通

608
00:20:29,260 --> 00:20:31,460
这种架构提高了系统的兼容性

609
00:20:31,460 --> 00:20:33,740
而且大大降低了开发维护成本

610
00:20:34,460 --> 00:20:36,180
显卡直通的意思是

611
00:20:36,180 --> 00:20:37,500
在WSL里面

612
00:20:37,500 --> 00:20:38,980
可以直接调用Windows

613
00:20:38,980 --> 00:20:40,460
速入机上面的显卡

614
00:20:40,460 --> 00:20:42,180
而不需要做任何的配置

615
00:20:42,180 --> 00:20:43,580
现阶段大多数的

616
00:20:43,580 --> 00:20:45,940
AA推理框架和深度学习框架

617
00:20:45,940 --> 00:20:48,420
都是优先支持Linux操作系统

618
00:20:48,420 --> 00:20:49,260
官方文档

619
00:20:49,260 --> 00:20:50,100
安装教程

620
00:20:50,100 --> 00:20:52,020
也基本都是以Linux为主

621
00:20:52,020 --> 00:20:53,060
使用WSL

622
00:20:53,060 --> 00:20:55,380
可以把你手头的高性能游戏电脑

623
00:20:55,380 --> 00:20:57,460
直接变成AA开发平台

624
00:20:57,460 --> 00:20:58,500
我们还是来到

625
00:20:58,500 --> 00:21:00,300
无版图的Linux子系统

626
00:21:00,300 --> 00:21:03,020
然后输入命令NVIDIA-SMI

627
00:21:03,020 --> 00:21:05,500
这个命令用来查看电脑的GPU情况

628
00:21:05,500 --> 00:21:08,460
我们看到这里直接显示了显卡驱动的版本

629
00:21:08,460 --> 00:21:09,420
枯大的版本

630
00:21:09,420 --> 00:21:11,340
还有我这台电脑的显卡型号

631
00:21:11,340 --> 00:21:12,700
RTX5070

632
00:21:12,700 --> 00:21:13,900
显存情况等等

633
00:21:13,900 --> 00:21:15,100
这里有一点要注意

634
00:21:15,100 --> 00:21:17,100
千万不要往这个Linux系统里面

635
00:21:17,100 --> 00:21:18,060
装任何的驱动

636
00:21:18,060 --> 00:21:19,460
它可以直接使用Windows

637
00:21:19,460 --> 00:21:21,060
速入机上面的显卡驱动

638
00:21:21,060 --> 00:21:22,060
来使用显卡

639
00:21:22,060 --> 00:21:23,460
不需要做任何的配置

640
00:21:23,460 --> 00:21:24,580
我们来看一个例子

641
00:21:24,580 --> 00:21:29,020
VLLM是目前最炙手可热的AA推理框架

642
00:21:29,020 --> 00:21:30,740
我们看到操作系统支持

643
00:21:30,740 --> 00:21:31,940
只有Linux版本

644
00:21:31,940 --> 00:21:33,140
所有的官方文档

645
00:21:33,140 --> 00:21:35,460
全部是基于Linux系统来写的

646
00:21:35,460 --> 00:21:36,740
我们使用WSL

647
00:21:36,740 --> 00:21:38,860
就是这个推理框架的一等公民

648
00:21:38,860 --> 00:21:39,780
照着这些文档

649
00:21:39,780 --> 00:21:41,100
可以实现一切功能

650
00:21:41,100 --> 00:21:42,340
我们按照这个文档

651
00:21:42,340 --> 00:21:43,900
把推理框架运行一下

652
00:21:43,900 --> 00:21:45,260
这里看到它需要UV

653
00:21:45,260 --> 00:21:46,540
先创建虚拟环境

654
00:21:46,540 --> 00:21:47,940
我们来到UV的官网

655
00:21:47,940 --> 00:21:49,460
找到Linux安装命令

656
00:21:49,460 --> 00:21:50,260
复制一下

657
00:21:50,260 --> 00:21:51,620
来到WSL里面

658
00:21:51,620 --> 00:21:53,220
我们先把UV安装一下

659
00:21:53,220 --> 00:21:54,260
就安装完成了

660
00:21:54,260 --> 00:21:55,820
接下来我们执行第一个命令

661
00:21:55,820 --> 00:21:56,540
第二个命令

662
00:21:56,540 --> 00:21:57,460
第三个命令

663
00:21:57,460 --> 00:21:58,260
好搞定了

664
00:21:58,260 --> 00:22:00,220
接下来我们启动起来试一下

665
00:22:00,220 --> 00:22:02,020
这里我复制官方文档的命令

666
00:22:02,020 --> 00:22:03,180
我改一下模型

667
00:22:03,180 --> 00:22:04,980
改成最新的千问3.5

668
00:22:04,980 --> 00:22:05,740
我试了一下

669
00:22:05,740 --> 00:22:07,220
这么启动会直接报错

670
00:22:07,220 --> 00:22:09,540
我让GPT帮我修改了一下启动命令

671
00:22:09,540 --> 00:22:10,860
改了一下采样器

672
00:22:10,860 --> 00:22:13,260
然后在后面约束了一下显存的占用量

673
00:22:13,260 --> 00:22:13,940
启动完成

674
00:22:13,940 --> 00:22:14,940
我们来测试一下

675
00:22:14,940 --> 00:22:18,100
这里我用的是Postman填上推理的端点

676
00:22:18,100 --> 00:22:19,700
然后把提示词填上

677
00:22:19,700 --> 00:22:22,540
VLLM是一个高性能的推理框架

678
00:22:22,540 --> 00:22:24,180
我们看到推理速度非常的快

679
00:22:24,180 --> 00:22:26,020
半秒钟就能推理这么多词

680
00:22:26,820 --> 00:22:30,940
之前我们主要介绍的是用命令行跟WSL进行交互

681
00:22:30,940 --> 00:22:33,700
WSL同样支持图形化界面

682
00:22:33,700 --> 00:22:35,740
本章节我们主要分成两个部分

683
00:22:35,740 --> 00:22:37,740
一个是WSLG工具

684
00:22:37,740 --> 00:22:40,820
再一个就是用Windows宿主机的远程桌面控制

685
00:22:40,820 --> 00:22:42,300
接入WSL桌面

686
00:22:42,300 --> 00:22:46,540
WSLG是WSL里面的图形界面支持组件

687
00:22:46,540 --> 00:22:50,500
它可以把Linux图形应用直接显示到Windows桌面上面

688
00:22:50,500 --> 00:22:53,300
WSLG不是一个完整的桌面系统

689
00:22:53,300 --> 00:22:56,620
通常我们只用来把单个的应用显示到Windows里面

690
00:22:56,620 --> 00:22:58,260
比如我们来看这个软件

691
00:22:58,260 --> 00:22:59,220
GIMP

692
00:22:59,220 --> 00:23:03,060
它是一个类似Photoshop的开源免费的图像编辑软件

693
00:23:03,060 --> 00:23:06,860
我们先用apt install在WSL里面安装一下

694
00:23:06,860 --> 00:23:09,100
然后我们运行一下GIMP

695
00:23:09,100 --> 00:23:12,820
在Windows的界面里面就打开了这个图形编辑软件

696
00:23:12,820 --> 00:23:17,180
也就是我们可以借助WSLG把Linux系统的图形软件

697
00:23:17,180 --> 00:23:19,980
直接显示到Windows桌面里面正常使用

698
00:23:19,980 --> 00:23:23,460
刚才我们看的是怎么显示单个应用的图形界面

699
00:23:23,460 --> 00:23:27,100
接下来我们看怎么在WSL里面启动一个完整的桌面

700
00:23:27,100 --> 00:23:28,020
这里有点变化

701
00:23:28,020 --> 00:23:29,500
我不选择Ubuntu了

702
00:23:29,500 --> 00:23:31,060
我选择Carly Linux

703
00:23:31,060 --> 00:23:33,340
我们先更新一下apt索引

704
00:23:33,340 --> 00:23:35,980
然后我们来安装CarlyWin KEX

705
00:23:35,980 --> 00:23:36,940
安装完成以后

706
00:23:36,940 --> 00:23:39,300
我们输入KEX来启动桌面

707
00:23:39,300 --> 00:23:41,460
这样我们就以远程连接的方式

708
00:23:41,460 --> 00:23:43,380
打开了Carly Linux桌面

709
00:23:43,380 --> 00:23:46,580
这是一个完整可用的Linux操作系统的桌面

710
00:23:46,580 --> 00:23:48,500
我们可以在里面操作浏览器

711
00:23:48,500 --> 00:23:50,260
操作各种图形软件等等

712
00:23:50,260 --> 00:23:52,620
接下来我们看在Ubuntu系统上

713
00:23:52,620 --> 00:23:54,100
启动一个完整的桌面

714
00:23:54,100 --> 00:23:55,860
在Ubuntu上启动桌面

715
00:23:55,860 --> 00:23:57,700
需要依次执行以下命令

716
00:23:57,700 --> 00:23:59,260
执行过程我就跳过了

717
00:23:59,260 --> 00:24:02,780
最后一个命令是显示这台Linux虚拟机的IP地址

718
00:24:02,780 --> 00:24:04,700
我们把IP地址复制一下

719
00:24:04,700 --> 00:24:05,860
然后来到Windows

720
00:24:05,860 --> 00:24:07,540
搜索远程桌面连接

721
00:24:07,540 --> 00:24:09,140
把IP地址复制过来

722
00:24:09,140 --> 00:24:11,580
然后冒号端口是3389

723
00:24:11,580 --> 00:24:12,380
点击连接

724
00:24:12,380 --> 00:24:15,460
这样我们就连接进了这台Ubuntu虚拟机的桌面

725
00:24:16,220 --> 00:24:17,500
刚才的视频里面

726
00:24:17,500 --> 00:24:21,220
我们介绍了WSL Localhost的端口自动转发

727
00:24:21,220 --> 00:24:24,940
当WSL检测到Linux里面有程序监听端口

728
00:24:24,940 --> 00:24:26,660
就会自动转发到Windows

729
00:24:26,660 --> 00:24:29,420
输入机这边的Localhost相同的端口

730
00:24:29,420 --> 00:24:31,220
所以我们在输入机里面

731
00:24:31,220 --> 00:24:34,940
可以使用Localhost访问到WSL里面启动的应用

732
00:24:34,940 --> 00:24:36,620
在这个图里面可以看出

733
00:24:36,620 --> 00:24:39,500
WSL默认采用的是Net网络模式

734
00:24:39,500 --> 00:24:44,060
Linux子系统位于WSL宿主机内部的虚拟网络里面

735
00:24:44,060 --> 00:24:46,220
它拥有独立的虚拟IP地址

736
00:24:46,220 --> 00:24:48,620
通过Localhost的端口自动转发

737
00:24:48,620 --> 00:24:50,860
在宿主机里面使用Localhost

738
00:24:50,860 --> 00:24:53,300
可以访问到WSL里面启动的应用

739
00:24:53,300 --> 00:24:56,820
如果想在虚拟机里面访问到宿主机里的应用

740
00:24:56,820 --> 00:24:58,060
我们可以这么操作

741
00:24:58,060 --> 00:25:01,780
在我的Windows宿主机上面启动了一个Python服务

742
00:25:01,780 --> 00:25:03,300
这里使用8000端口

743
00:25:03,300 --> 00:25:05,540
这样我在宿主机的浏览器里面

744
00:25:05,540 --> 00:25:07,060
使用Localhost的8000

745
00:25:07,060 --> 00:25:08,660
是可以访问到这个服务的

746
00:25:08,660 --> 00:25:11,460
接下来我们看怎么在WSL里面访问

747
00:25:11,460 --> 00:25:13,500
这里先来到Windows的PowerShell

748
00:25:13,500 --> 00:25:14,380
输入这个命令

749
00:25:14,380 --> 00:25:15,100
IP

750
00:25:15,100 --> 00:25:15,780
Config

751
00:25:15,780 --> 00:25:17,260
找到自己的网卡

752
00:25:17,260 --> 00:25:18,580
这里有一个IP地址

753
00:25:18,580 --> 00:25:20,140
这个就是我这台宿主机

754
00:25:20,140 --> 00:25:21,940
在局域网里面的IP地址

755
00:25:21,940 --> 00:25:23,940
然后我们来到WSL里面

756
00:25:23,940 --> 00:25:25,300
使用这个IP地址

757
00:25:25,300 --> 00:25:27,700
就可以访问到宿主机上面的服务

758
00:25:27,700 --> 00:25:30,260
现在我们的宿主机可以访问到虚拟机

759
00:25:30,260 --> 00:25:32,340
虚拟机也能访问到宿主机

760
00:25:32,340 --> 00:25:33,900
但是还有一个特殊情况

761
00:25:33,900 --> 00:25:35,980
也就是局域网里面的其他设备

762
00:25:35,980 --> 00:25:38,620
是没法访问到WSL里面的服务的

763
00:25:38,620 --> 00:25:40,860
比如我想用手机调试一下

764
00:25:40,860 --> 00:25:43,300
WSL上面开发的一个网页服务

765
00:25:43,300 --> 00:25:45,100
现在是没有办法访问到的

766
00:25:45,100 --> 00:25:47,580
我们可以修改WSL的网络设置

767
00:25:47,580 --> 00:25:48,860
来达成这个需求

768
00:25:48,860 --> 00:25:50,860
我们来到Windows上的C盘

769
00:25:50,860 --> 00:25:52,260
用户你的用户名

770
00:25:52,260 --> 00:25:54,900
然后在这个目录下面新建一个文件

771
00:25:54,900 --> 00:25:57,540
文件的名字叫做.WSL config

772
00:25:57,540 --> 00:25:59,940
这是WSL全局的配置文件

773
00:25:59,940 --> 00:26:01,780
然后我们用记事本打开它

774
00:26:01,780 --> 00:26:03,460
在这里面新加这么两行

775
00:26:03,460 --> 00:26:06,180
它的意思是把WSL的网络模式

776
00:26:06,180 --> 00:26:08,740
从Net网络切换成镜像网络

777
00:26:08,740 --> 00:26:10,980
然后我们把配置文件保存一下

778
00:26:10,980 --> 00:26:13,060
把所有的WSL窗口关闭

779
00:26:13,060 --> 00:26:13,900
等待一分钟

780
00:26:13,900 --> 00:26:15,700
让WSL完成重启

781
00:26:15,700 --> 00:26:17,420
在镜像网络模式下面

782
00:26:17,420 --> 00:26:21,700
Windows宿主机的网卡会直接镜像一份给WSL使用

783
00:26:21,700 --> 00:26:25,780
这样可以让Windows和WSL处于相同的网络环境中

784
00:26:25,780 --> 00:26:28,100
并且使用相同的局域网IP

785
00:26:28,100 --> 00:26:30,100
这样局域网里面的其他设备

786
00:26:30,100 --> 00:26:32,980
也可以轻松访问到WSL上面的服务了

787
00:26:32,980 --> 00:26:34,740
镜像模式还有个好处

788
00:26:34,740 --> 00:26:37,220
就是让网络结构变得更加的简单

789
00:26:37,220 --> 00:26:39,300
如果你使用WSL的过程中

790
00:26:39,300 --> 00:26:41,220
遇到一些奇怪的网络问题

791
00:26:41,220 --> 00:26:43,380
可以试试切换成镜像模式

792
00:26:43,380 --> 00:26:44,580
看看能不能解决

793
00:26:44,580 --> 00:26:45,700
好我们来试一下

794
00:26:45,700 --> 00:26:49,060
这里我先把视频开头那个坦克大战的应用启动起来

795
00:26:49,060 --> 00:26:51,140
启动完成以后再修改一个设置

796
00:26:51,140 --> 00:26:55,140
在搜索栏搜索PowerShell右键以管理员身份运行

797
00:26:55,140 --> 00:26:57,940
然后把这串命令粘贴上回车

798
00:26:57,940 --> 00:27:01,620
这串命令的意思是修改WSL的防火墙设置

799
00:27:01,620 --> 00:27:04,740
让它可以被局域网里面的其他设备访问到

800
00:27:04,740 --> 00:27:07,220
然后我们就可以在手机上来测试一下

801
00:27:07,220 --> 00:27:10,340
打开手机浏览器输入宿主机的IP地址

802
00:27:10,340 --> 00:27:14,820
在镜像模式下面也等同于WSL这个虚拟机的IP地址

803
00:27:14,820 --> 00:27:16,420
后面接上端口3000

804
00:27:16,420 --> 00:27:18,020
我们看到成功访问进来了

805
00:27:18,020 --> 00:27:20,020
这样我们就通过使用镜像网络

806
00:27:20,020 --> 00:27:24,420
让局域网里面的其他设备也能访问到WSL里面启动的服务

807
00:27:25,220 --> 00:27:28,500
刚才我们介绍了WSL上面的配置文件

808
00:27:28,500 --> 00:27:29,940
.wslconfig

809
00:27:29,940 --> 00:27:33,780
它还有另外一个配置文件是wsl.conf

810
00:27:33,780 --> 00:27:36,180
这两个配置文件有本质上的不同

811
00:27:36,180 --> 00:27:38,980
我们先来看前面这个.wslconfig

812
00:27:38,980 --> 00:27:40,500
这是一个windows文件

813
00:27:40,500 --> 00:27:43,060
它是一个全局的通用配置文件

814
00:27:43,060 --> 00:27:46,100
也就是对所有的WSL虚拟机都生效

815
00:27:46,100 --> 00:27:49,220
它的地址是在c盘用户你的用户名

816
00:27:49,220 --> 00:27:50,900
然后.wslconfig

817
00:27:50,900 --> 00:27:52,900
主要用途可以用来修改内存

818
00:27:52,900 --> 00:27:54,180
内核启动方式

819
00:27:54,180 --> 00:27:56,580
还有刚才我们介绍的网络模式等等

820
00:27:56,580 --> 00:28:00,100
另外一个配置文件是wsl.conf

821
00:28:00,100 --> 00:28:01,620
这是一个linux文件

822
00:28:01,620 --> 00:28:03,700
它存放在linux系统里面

823
00:28:03,700 --> 00:28:05,700
它只对单个虚拟机生效

824
00:28:05,700 --> 00:28:08,180
这个配置文件可以用来修改挂载券

825
00:28:08,180 --> 00:28:09,620
systemd的使用

826
00:28:09,620 --> 00:28:11,260
还有默认用户设置等等

827
00:28:11,260 --> 00:28:12,980
我们来看一个例子怎么使用

828
00:28:12,980 --> 00:28:14,980
wsl.conf

829
00:28:14,980 --> 00:28:17,380
这里还是来到我的Ubuntu虚拟机

830
00:28:17,380 --> 00:28:18,660
然后进入这个目录

831
00:28:18,660 --> 00:28:19,700
etc

832
00:28:19,700 --> 00:28:21,540
我们可以使用速度vi

833
00:28:21,540 --> 00:28:24,500
wsl.conf

834
00:28:24,500 --> 00:28:27,860
我们看到比如这里的systemd是默认启用的

835
00:28:27,860 --> 00:28:30,580
我们在官方文档里面可以来修改一个东西

836
00:28:30,580 --> 00:28:32,500
比如这里的自动挂载设置

837
00:28:32,500 --> 00:28:33,780
先把这个标签加上

838
00:28:33,780 --> 00:28:35,780
然后enable等于false

839
00:28:35,780 --> 00:28:38,500
这个配置的意思是关闭自动挂载

840
00:28:38,500 --> 00:28:40,100
也就是在虚拟机里面

841
00:28:40,100 --> 00:28:42,260
不再自动挂载c盘跟d盘了

842
00:28:42,260 --> 00:28:43,300
AI操作的时候

843
00:28:43,300 --> 00:28:45,540
它也无法看到windows上面的文件

844
00:28:45,540 --> 00:28:47,540
这样可以进一步的提高安全性

845
00:28:47,540 --> 00:28:48,660
然后敲 esc

846
00:28:48,660 --> 00:28:50,580
可以冒号wqtan号回车

847
00:28:50,580 --> 00:28:52,580
把配置文件保存一下

848
00:28:52,580 --> 00:28:54,260
然后我们把虚拟机关闭

849
00:28:54,260 --> 00:28:56,900
这里官方文档要求我们至少等待8秒

850
00:28:56,900 --> 00:28:58,660
等待虚拟机完全重启

851
00:28:58,660 --> 00:28:59,540
重启完成以后

852
00:28:59,540 --> 00:29:02,020
我们输入df-h命令查看一下

853
00:29:02,020 --> 00:29:03,700
我们看到在挂载卷里面

854
00:29:03,700 --> 00:29:05,220
就没有windows的目录了

855
00:29:05,220 --> 00:29:06,740
这样配置也就生效了

856
00:29:06,740 --> 00:29:08,100
在官方文档里面

857
00:29:08,100 --> 00:29:10,660
还有关于这两个配置文件更多的功能

858
00:29:10,660 --> 00:29:12,580
不过这些功能也不太常用

859
00:29:12,580 --> 00:29:14,820
大家有需求可以来参考这个文档

860
00:29:14,820 --> 00:29:16,420
这里我就不过多介绍了

861
00:29:16,420 --> 00:29:19,220
我们再来介绍一个WSL的高级功能

862
00:29:19,220 --> 00:29:20,900
也就是备份跟克隆

863
00:29:20,900 --> 00:29:23,740
比如我在WSL上面进行了很多工作

864
00:29:23,740 --> 00:29:25,940
我现在想把整个linux虚拟机

865
00:29:25,940 --> 00:29:27,260
做一个完整的备份

866
00:29:27,260 --> 00:29:28,540
就可以使用这个命令

867
00:29:28,540 --> 00:29:30,740
WSL两个横杠export

868
00:29:30,740 --> 00:29:32,060
也就是导出的意思

869
00:29:32,060 --> 00:29:33,740
后面接上虚拟机的名字

870
00:29:33,740 --> 00:29:35,620
比如我想导出我的Ubuntu

871
00:29:35,620 --> 00:29:37,700
最后我再填一个压缩包的名字

872
00:29:37,700 --> 00:29:39,380
比如叫做Ubuntu.ta

873
00:29:39,380 --> 00:29:39,900
回车

874
00:29:39,900 --> 00:29:40,980
导出完成以后

875
00:29:40,980 --> 00:29:42,060
这个当前目录

876
00:29:42,060 --> 00:29:43,460
也就是我的桌面上

877
00:29:43,460 --> 00:29:45,780
就多了一个Ubuntu.ta的压缩包

878
00:29:45,780 --> 00:29:48,180
这样我们就把虚拟机进行了一个备份

879
00:29:48,180 --> 00:29:49,540
有了这个备份包以后

880
00:29:49,540 --> 00:29:51,700
我们就可以随时把它还原回来

881
00:29:51,700 --> 00:29:52,940
比如我先使用命令

882
00:29:52,940 --> 00:29:55,020
把Ubuntu的这个虚拟机删除掉

883
00:29:55,020 --> 00:29:57,860
看到我电脑上就没有Ubuntu这台虚拟机了

884
00:29:57,860 --> 00:29:59,620
接下来我们借助这个备份包

885
00:29:59,620 --> 00:30:01,300
把虚拟机还原回来

886
00:30:01,300 --> 00:30:03,260
这里收入命令WSL

887
00:30:03,260 --> 00:30:04,740
两个横杠import

888
00:30:04,740 --> 00:30:05,700
后面起个名字

889
00:30:05,700 --> 00:30:06,820
我还叫Ubuntu

890
00:30:06,820 --> 00:30:08,700
接下来要指定一个安装路径

891
00:30:08,700 --> 00:30:10,140
我选了一个D盘的目录

892
00:30:10,140 --> 00:30:11,940
最后就是填上压缩包的

893
00:30:11,940 --> 00:30:12,460
地址

894
00:30:12,460 --> 00:30:13,980
我把压缩包拖转进来

895
00:30:13,980 --> 00:30:14,460
回车

896
00:30:14,460 --> 00:30:16,900
我们再输入命令WSL-L

897
00:30:16,900 --> 00:30:18,460
我们看到我们的Ubuntu

898
00:30:18,460 --> 00:30:20,020
就被重新导入回来了

899
00:30:20,020 --> 00:30:22,100
我们可以使用导入导出的方法

900
00:30:22,100 --> 00:30:23,660
把我电脑上的虚拟机

901
00:30:23,660 --> 00:30:26,140
迁移到其他的windows电脑上面使用

902
00:30:26,140 --> 00:30:28,340
导入导出还有一个重要功能

903
00:30:28,340 --> 00:30:30,820
就是可以把一个虚拟机克隆好几份

904
00:30:30,820 --> 00:30:32,500
我们还可以再导入一边

905
00:30:32,500 --> 00:30:34,660
但是这里可以重新给它起个名字

906
00:30:34,660 --> 00:30:35,940
比如叫Ubuntu2

907
00:30:35,940 --> 00:30:37,060
后面的路径

908
00:30:37,060 --> 00:30:38,300
也选Ubuntu2

909
00:30:38,300 --> 00:30:38,700
回车

910
00:30:38,700 --> 00:30:40,900
然后我们还可以再来一个Ubuntu3

911
00:30:40,900 --> 00:30:42,460
这样我们使用导入命令

912
00:30:42,460 --> 00:30:44,180
把同一个虚拟机克隆了

913
00:30:44,180 --> 00:30:45,540
123这么三份

914
00:30:45,540 --> 00:30:47,180
我们再来看一个进阶功能

915
00:30:47,180 --> 00:30:48,460
就是命令行互通

916
00:30:48,460 --> 00:30:49,300
在windows里

917
00:30:49,300 --> 00:30:51,340
我们甚至可以调用Linux命令

918
00:30:51,340 --> 00:30:53,740
这里我打开一个powershell的窗口

919
00:30:53,740 --> 00:30:55,420
我们执行一条windows命令

920
00:30:55,420 --> 00:30:56,860
getchilditem

921
00:30:56,860 --> 00:30:59,540
这里显示的是当前文件夹的所有内容

922
00:30:59,540 --> 00:31:01,340
然后我想对这个命令的输出

923
00:31:01,340 --> 00:31:02,380
进行一下过滤

924
00:31:02,380 --> 00:31:05,060
但是我不知道windows版本的过滤怎么写

925
00:31:05,060 --> 00:31:07,660
我知道Linux版本的过滤是grip

926
00:31:07,660 --> 00:31:09,820
我们可以直接两个命令混写

927
00:31:09,820 --> 00:31:11,940
这样还是getchilditem

928
00:31:11,940 --> 00:31:13,300
后面管道符

929
00:31:13,940 --> 00:31:15,100
管道符结束以后

930
00:31:15,100 --> 00:31:17,180
我准备使用Linux的grip命令

931
00:31:17,180 --> 00:31:18,420
对结果进行筛选

932
00:31:18,420 --> 00:31:19,940
这里wsl

933
00:31:20,580 --> 00:31:21,660
然后grip

934
00:31:22,420 --> 00:31:23,820
后面接一个vdu

935
00:31:23,820 --> 00:31:25,540
这条命令如此的神奇

936
00:31:25,540 --> 00:31:27,100
前半部分是windows命令

937
00:31:27,100 --> 00:31:28,980
后半部分是Linux命令

938
00:31:28,980 --> 00:31:31,500
可以看到它一样达成了我想要的效果