Engineering & Agent for AI

模块 1 - Local to Remote · 第 03 课

Windows、PowerShell、WSL2 与 Linux

从 Windows 文件系统走到 WSL2 和 Linux server,建立不会迷路的路径 mental model。

两套路径,不是两种 Git

Windows PowerShell 常见路径是 C:\Users\you\project,WSL/Linux 路径是 /home/you/project。WSL 可以通过 /mnt/c/Users/you/project 访问 Windows 盘,但频繁跨边界会带来性能和权限差异。AI 项目若最终运行在 Linux GPU server,建议把代码和环境主要放在 WSL/Linux 一侧。

最小对照表

意图PowerShellBash / Linux
当前目录Get-Locationpwd
列出文件Get-ChildItemls
进入目录Set-Location pathcd path
创建目录New-Item -ItemType Directory demomkdir demo
复制文件Copy-Item a bcp a b
设置变量$env:MODE="dev"export MODE=dev

跨平台的 mental model 是目录、文件、标准输入输出;命令名和引号规则可能不同。

可观察实验

PowerShell:

$env:COURSE="engineering"
Get-ChildItem
python -c "import os; print(os.environ['COURSE'])"

WSL/Linux:

export COURSE=engineering
find . -maxdepth 1 -type f | sort
python -c 'import os; print(os.environ["COURSE"])'

如果 Python 找不到,先记录 Get-Command python 或 command -v python,不要盲目重复安装。

故意制造路径错误

在一个含空格的目录中运行脚本,分别尝试未加引号和加引号的路径,观察 shell 如何分词。修复后把最终命令写入 README,而不是复制一条只适合你机器的绝对路径。

什么时候进入 WSL2

只做 Windows 原生文档或轻量脚本时 PowerShell 足够;需要 Linux 工具链、GPU 远程同构、Docker/Linux 权限模型或长时间 shell 工作时,进入 WSL2 会减少迁移摩擦。

练习

在 PowerShell 和 WSL 中各创建一个 path-lab 目录,写入同一个脚本并打印当前目录。故意把 Windows 路径直接粘贴到 Bash,记录错误,再改成 /mnt/c/... 或 WSL 内路径。最后在 README 写清哪一侧是你的主要项目目录。

查看答案

失败来自路径语法和运行环境边界,而不是 Python 代码本身。修复后应能说出文件实际位于哪套文件系统,以及为什么不把绝对路径硬编码进项目。

延伸阅读

第 03 课 学习进度仅保存在当前浏览器。