第 1 章:先看懂五层关系
建议学时:1.5 小时|状态:概念经官方资料核对
学习目标
- 区分 Linux、WSL、Ubuntu、Docker Desktop 和 Codex;
- 判断一条命令应在哪一层运行;
- 理解“安装成功”和“最终功能可用”不是一回事。
概念图
概念图 / 文本
物理电脑
└─ Windows 11:管理硬件、桌面应用与 WSL
├─ PowerShell:执行 wsl.exe 等 Windows 命令
├─ WSL 2:运行真实 Linux 内核的轻量环境
│ └─ Ubuntu:Bash、APT、Linux 文件系统和工具
│ └─ Docker CLI:请求 Docker 引擎创建容器
├─ Docker Desktop:提供并管理容器引擎
└─ Codex:在授权范围内读文件、改文件、运行命令Linux 是内核,不等同于 Ubuntu;Ubuntu 是围绕 Linux 内核组织的软件发行版。WSL 2 不是 Ubuntu,也不是传统双系统,它让 Windows 同时使用 Linux 环境。Docker 容器不是一台完整虚拟机:容器共享宿主 Linux 内核,却拥有隔离的进程、网络和文件视图。Codex 更不是“另一个 Linux”,它是使用这些环境和工具完成任务的智能体。
命令该放在哪里
| 需求 | 正确位置 | 示例 |
|---|---|---|
| 查看 WSL 发行版 | PowerShell | wsl --list --verbose |
| 更新 Ubuntu 包索引 | Ubuntu Bash | sudo apt update |
| 查看容器 | Ubuntu Bash | docker container ls |
| 在容器内部看系统 | 容器 Shell | cat /etc/os-release |
| 请智能体解释差异 | Codex 输入框 | “只解释当前改动,不修改文件” |
实验:识别四种提示符
在 PowerShell:
PowerShell
Get-Location
wsl pwd进入 Ubuntu Bash:
Ubuntu Bash
pwd
echo "$SHELL"
uname -s预期:PowerShell 路径类似 D:\...;Ubuntu 路径以 / 开头;uname -s 输出 Linux。同一个窗口里能调用 WSL,不代表当前 Shell 已经变成 Bash。
故障分支
wsl找不到:停在 Windows/WSL 层,转第 3 章。docker找不到:WSL 可能正常,只是 Docker Desktop 集成未启用,转第 17 章。- Codex 能打开但不能写文件:先检查工作区和审批边界,不要先使用管理员权限。
自测
- Ubuntu 与 WSL 2 的关系是什么?
- 为什么“Docker Desktop 已启动”不能单独证明网站可访问?
wsl --status应在哪个 Shell 执行?
答案见答案索引。
官方来源
Microsoft:什么是 WSL · Microsoft:Windows 容器概览 · OpenAI Docs:Codex quickstart