返回首頁

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 / AAAI Agent / AI
PyPi (Agent 名稱)
HermisHermes
Cloud CodeClaude Code
CodexCodex CLI
V4FlashV3 Flash (DeepSeek 模型)
千問3.5千問 3.5 (Qwen 3.5)
K2.7 CodeK2.7 Code (Kimi 模型)
Carly LinuxKali 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
可以看到它一样达成了我想要的效果