macOS、Windows、Linux 与 WSL 使用区别
最后核对
官方资料最后核对日期:2026-10-13。本文参考 ChatGPT 桌面 App、Windows App、Linux App、WSL、Sandbox、Appshots、Computer History 与 Record & Replay 整理。平台支持、Preview 状态和桌面功能会继续变化,请以官方页面与当前客户端为准。
macOS、Windows、Linux 与 WSL 使用区别
无论使用 macOS、Windows 还是 Linux,Codex 都可以读取项目、修改文件、运行命令并检查结果。不过,不同系统使用的命令、文件路径和运行环境并不完全相同。
例如,一条能在 macOS 中运行的命令,复制到 Windows PowerShell 后可能会报错;在 Windows 中,项目保存在本地磁盘还是 WSL2 中,也会影响运行速度和文件权限。
这一章会带你了解这些差异,帮助你确认 Codex 当前运行在哪个环境、应该使用哪种命令,以及项目文件放在哪里更合适。
不同平台有什么区别
| 对比项 | macOS | Windows 原生 | Linux | WSL2 |
|---|---|---|---|---|
| 桌面 App | 支持 | 支持 | Preview | 通过 Windows App 切换 Agent 环境 |
| 常用 Shell | zsh、bash | PowerShell | bash 等 | bash 等 |
| 常见项目路径 | /Users/<username>/project | C:\Users\<username>\project | /home/<username>/project | /home/<username>/project |
| 沙盒实现 | macOS Seatbelt | Windows 原生沙盒 | Linux bubblewrap | Linux bubblewrap |
| Computer Use | 支持,可在后台运行 | 支持,会占用前台桌面 | 以当前官方支持为准 | 由 Windows App 和当前环境决定 |
| Appshots | 支持 | 支持 | 当前官方页面未说明支持 | 由 Windows App 提供 |
| Computer History | 支持,macOS 限定 | 不支持 | 不支持 | 不支持 |
| Record & Replay | 支持,macOS 限定 | 不支持 | 不支持 | 不支持 |
注意
WSL2 是 Windows 中的 Linux 运行环境。将 Codex Agent 切换到 WSL2 后,它会按照 Linux 的方式运行,因此需要使用 Linux 命令、文件路径和沙盒,而不是 Windows PowerShell 的运行方式。
Shell 和命令有什么不同
macOS、Linux 和 WSL2
在 macOS、Linux 和 WSL2 中,我们通常会在终端里输入命令,让电脑完成复制文件、删除文件夹或运行脚本等操作。这些系统常用 zsh 或 bash 来理解并执行命令。
下面是几条常见命令。
export API_KEY="example"
cp .env.example .env
rm -rf dist
chmod +x scripts/setup.sh
./scripts/setup.sh它们的作用分别是:
export API_KEY="example":临时保存一项配置信息,供接下来运行的程序使用。这里的example只是示例内容。cp .env.example .env:把.env.example复制一份,并将复制出来的文件命名为.env。rm -rf dist:删除dist文件夹以及里面的所有内容。删除后不会进入回收站,所以执行前一定要检查文件夹名称。chmod +x scripts/setup.sh:允许电脑运行setup.sh这个脚本文件。./scripts/setup.sh:开始运行setup.sh脚本,让电脑按照脚本中写好的步骤执行操作。
提示
这里不需要记住每条命令。先记住一点就可以:macOS、Linux 和 WSL2 通常使用上面这种写法,而 Windows PowerShell 的命令写法会有所不同。
Windows 原生模式
在 Windows 原生模式中,Codex Agent 默认使用 PowerShell。你可以把 PowerShell 理解成 Windows 用来接收和执行命令的工具。
下面几条命令,与前面的例子用途相近,但写法换成了 PowerShell:
$env:API_KEY = "example"
Copy-Item .env.example .env
Remove-Item -Recurse -Force dist
.\scripts\setup.ps1它们分别表示:
$env:API_KEY = "example":临时保存一项配置信息,供接下来运行的程序使用。Copy-Item .env.example .env:复制.env.example文件,并把新文件命名为.env。Remove-Item -Recurse -Force dist:删除dist文件夹以及里面的所有内容。删除前要确认文件夹名称是否正确。.\scripts\setup.ps1:运行setup.ps1脚本,让电脑按照脚本里的步骤执行操作。
虽然这两组命令完成的事情相近,但 Bash 命令不能直接当作 PowerShell 命令使用。从教程中复制命令时,可以先看脚本文件的结尾:
- 文件名以
.sh结尾,通常需要在 macOS、Linux、WSL2 或 Git Bash 中运行。 - 文件名以
.ps1结尾,通常需要在 Windows PowerShell 中运行。
如果不知道应该使用哪一种,可以直接把命令或脚本文件交给 Codex,让它先判断运行环境,不要急着执行。
四种环境的沙盒不同
为了保护电脑中的文件,Codex 默认不会直接获得全部权限。它只能在允许的范围内读取文件、修改项目和运行命令。这个受限制的运行范围就叫“沙盒”。
你可以把沙盒理解成一个专门给 Codex 准备的工作区。Codex 可以在工作区内完成任务;如果它想打开工作区之外的文件或访问没有获得许可的网络,可能会先询问你是否允许。
macOS、Windows 和 Linux 都有沙盒,只是使用的技术不同:
- macOS:使用系统自带的 Seatbelt。Seatbelt 是 macOS 用来限制程序访问范围的安全功能。
- Windows 原生模式:使用 Windows 原生沙盒。Codex 会根据电脑支持的功能和当前设置,选择合适的隔离方式。
- Linux:使用名为
bubblewrap的工具创建沙盒。这个工具负责限制 Codex 可以访问的文件和系统功能。 - WSL2:Codex Agent 实际运行在 Linux 环境中,所以使用的也是 Linux 沙盒,而不是 Windows 原生沙盒。
它们虽然实现方式不同,但作用相同,都是防止 Codex 随意访问电脑中的其他内容。
因此,当 Codex 无法打开某个文件夹或执行某条命令时,不一定是命令写错了,也可能是当前沙盒没有允许这项操作。遇到这种情况,可以按下面的顺序检查:
- 查看 Codex 是否正在申请权限。
- 检查当前权限模式是否允许这项操作。
- 检查沙盒设置是否限制了目标文件或网络。
- 如果仍然无法运行,再检查当前系统是否缺少需要的组件,例如 Linux 的
bubblewrap。
更完整的权限说明见沙盒与审批。
Windows 原生还是 WSL2
在 Windows 电脑上,Codex Agent 有两种运行方式:
- Windows 原生模式:Codex 直接在 Windows 中运行,通常使用 PowerShell 和 Windows 路径。
- WSL2 模式:Codex 在 Windows 内部的 Linux 环境中运行,使用 Bash、Linux 路径和 Linux 工具。
选择哪一种,主要看你的项目和开发工具目前放在哪里。
适合选择 Windows 原生的情况
- 项目主要保存在
C:\盘 - 日常使用 PowerShell、Visual Studio 或 Windows 专用工具
- 项目依赖 Windows SDK、
.NET、PowerShell 脚本或 Windows 应用 - 不想额外维护一套 Linux 环境
如果你平时没有使用过 WSL2,或者不确定应该选哪个,可以先使用 Windows 原生模式。
适合选择 WSL2 的情况
- 项目和开发工具已经安装在 WSL2 中
- 团队主要使用 Linux 部署环境
- 项目依赖 Bash、Linux 包管理器或 Linux 原生工具
- 希望本地环境更接近 Linux 服务器
如果项目本来就保存在 WSL2 中,最好让 Codex Agent 也在 WSL2 中运行。这样可以减少路径、权限和工具不一致带来的问题。
需要切换时,打开 Windows App 设置,找到 Agent environment,然后选择 Windows 原生模式或 WSL2。修改后需要重新启动 App,新设置才会生效。
提示
Agent 的运行环境和集成终端使用的 Shell 可以分别设置。例如,Agent 可以运行在 WSL2 中,而集成终端仍然打开 PowerShell。
如果你刚开始使用,建议让 Agent 和集成终端使用同一种环境。例如,Agent 使用 WSL2 时,终端也选择 WSL。这样看到的命令和文件路径会保持一致,遇到问题时也更容易排查。
项目应该放在哪里
使用 Windows 原生 Agent
如果 Codex Agent 运行在 Windows 原生模式,建议把项目保存在 Windows 文件系统中,例如:
C:\Users\<username>\Projects\my-app这里的 <username> 代表你的 Windows 用户名。项目和 Agent 都在 Windows 环境中,文件路径、权限和开发工具会更容易保持一致。
使用 WSL2 Agent
如果 Codex Agent 运行在 WSL2 中,建议把项目保存在 WSL2 自己的 Linux 用户目录中,例如:
/home/<username>/code/my-app这里的 <username> 代表你在 WSL2 中使用的 Linux 用户名。
在 WSL2 中也能通过 /mnt/c/... 打开 Windows C 盘中的文件,但不建议把大型 Linux 项目长期放在那里运行。因为 Codex 和开发工具需要在 Linux 与 Windows 文件系统之间来回访问,可能出现:
- 文件读写速度较慢
- 修改文件后,开发工具没有及时发现变化
- 项目中的快捷链接无法正常使用
- 文件权限或文件名大小写不一致
项目保存在 WSL2 中,并不代表只能通过 Linux 终端访问。如果想从 Windows 文件资源管理器打开它,可以在地址栏输入:
\\wsl$\然后选择自己安装的 Linux 发行版,再进入 home 和对应的用户目录。
注意
当前 Codex 已不再支持 WSL1。如果需要在 Windows 中使用 Linux 环境,请安装并使用 WSL2。
为什么 Windows 和 WSL 的配置没有同步
Windows 原生环境和 WSL2 虽然在同一台电脑上,但可以把它们理解成两个相邻的房间。两个房间都有自己的文件和设置,不会自动把内容同步给对方。
Codex 也会在两个环境中分别建立自己的数据目录。这个目录叫作 CODEX_HOME,主要用来保存 Codex 的配置、登录信息和会话记录。默认位置如下:
Windows:C:\Users\<username>\.codex
WSL2: /home/<username>/.codex例如,你在 Windows 原生模式中登录了 Codex,并修改了 config.toml,进入 WSL2 后仍可能需要重新登录,也看不到刚才修改的配置。因为这些数据分别保存在两个目录中。
默认情况下,下面这些内容都可能各自保存一份:
config.toml中的设置- Codex 的登录状态
- 以前的会话记录
- 已安装的 Skills 和 Plugins
- MCP 连接配置
- 保存在本地的 Memories
如果经常在 Windows 原生模式和 WSL2 之间切换,也可以让两边共用 Windows 中的 .codex 目录。方法是在 WSL2 中把 CODEX_HOME 指向 Windows 的目录:
export CODEX_HOME=/mnt/c/Users/<windows-user>/.codex这条命令相当于告诉 WSL2:“以后不要再使用自己的 Codex 数据目录,改用 Windows 中的这一份。”其中 <windows-user> 需要替换成自己的 Windows 用户名。
提示
如果刚开始使用,建议先让 Windows 和 WSL2 各自保存配置。这样一边的设置出现问题时,不会影响另一边。
等你确认两边需要使用相同的登录状态、配置和会话后,再考虑统一 CODEX_HOME。
Computer Use 的工作方式不同
macOS
在 macOS 中,Computer Use 可以在后台操作应用。你可以把它理解成一名在旁边工作的助手:它操作自己的任务窗口,你可以通过画中画预览查看进度,同时继续使用其他应用。
例如,让 Codex 打开浏览器检查网页时,你仍然可以在另一个应用中写文档。不过,为了避免相互干扰,最好不要同时操作 Codex 正在使用的应用。
Windows
在 Windows 中,Computer Use 和你使用的是同一个活动桌面。它会操作当前桌面上的鼠标、键盘和窗口,而不是在后台打开一个独立桌面。
任务执行时,你可能会看到:
- 鼠标自动移动
- Codex 自动输入文字
- 前台窗口自动切换
- 你的操作和 Codex 的操作互相影响
Computer Use 运行时,你仍然可以使用鼠标和键盘,也可以随时停止任务,自己接管电脑。不过,你和 Codex 操作的是同一个桌面,所以同时操作可能会互相干扰。
例如,Codex 正在填写表单时,如果你切换到另一个窗口,它接下来的点击就可能落在错误的位置。为了让任务顺利完成,建议先让 Codex 完成当前操作,再接管电脑。
运行任务时,Windows 电脑还需要保持解锁。如果任务需要较长时间,又不希望影响自己使用电脑,可以让它在另一台 Windows 设备上运行,或者使用 Windows 虚拟机。
虚拟机相当于在电脑里另外运行一个独立的 Windows 桌面,Codex 可以在里面操作,不会占用你正在使用的主桌面。
Linux 和 WSL2 是否支持相同的桌面操作能力,要根据当前安装的 App、账号权限和官方支持范围判断,不能直接按照 macOS 或 Windows 的方式使用。
Appshots 快捷键不同
Appshots 可以把电脑当前打开的窗口发送给 ChatGPT 或 Codex。你可以把它理解成给当前窗口拍一张“带文字信息的快照”:Codex 不仅能看到窗口画面,还可能读取应用提供的文字内容。

例如,程序弹出一条很难描述的错误信息时,你可以先打开错误窗口,再使用 Appshots 把画面交给 Codex 分析,不需要自己逐字复制报错。
macOS 和 Windows 都支持 Appshots,但默认快捷键不同:
- macOS:同时按下两个
Command键。 - Windows:同时按下两个
Alt键。
第一次在 macOS 中使用时,系统可能要求开启“屏幕与系统音频录制”和“辅助功能”权限。前者让 Appshots 获取窗口画面,后者帮助它读取窗口中可以识别的文字。

注意保护隐私
使用 Appshots 前,先检查当前窗口中有没有密码、密钥、聊天记录或其他隐私信息。Appshots 会把窗口画面和其中可读取的文字一起发送给 ChatGPT。
简单来说,如果某个窗口不适合截图发给别人,也不要通过 Appshots 发送。
macOS 当前独有的功能
Computer History
Computer History 会记录你允许访问的应用和网站活动,并将这些内容整理成时间线和本地记忆,方便以后查找和继续之前的工作。
目前,这项功能只支持 macOS,Windows、Linux 和 WSL2 暂时无法使用。
开启方式、记录范围和隐私提醒,见 Computer History:找回最近在电脑上做过的事。

Record & Replay
Record & Replay 可以把你演示的操作步骤记录下来,再将这套流程制作成可以重复使用的 Skill。例如,你演示一次如何整理文件,之后就可以让 Codex 按照相同的步骤再次操作。
目前,这项功能只支持 macOS,使用前还需要安装并开启 Computer Use。
锁屏后的 Computer Use
macOS 支持“锁屏后继续使用”功能。开启后,已经获得你许可的 Computer Use 任务,可以在 Mac 锁屏后继续操作应用。
这项功能需要单独开启,而且只适用于符合安全要求的任务。开始任务前,仍要检查 Codex 可以访问哪些应用,以及它准备执行哪些操作。
Linux Desktop 仍是 Preview
Linux Desktop App 目前仍处于 Preview,也就是预览阶段。它已经可以安装和使用,但功能、支持范围和稳定性仍可能继续调整。
目前,官方支持以下 Linux 发行版:
- Ubuntu 24.04 LTS、26.04 LTS
- Debian 13
- Fedora 43、44
- 持续更新的 Arch Linux
这些系统同时支持 x64 和 ARM64 两种处理器架构。安装前需要先确认自己使用的 Linux 发行版和处理器架构,再下载对应的安装文件。
不同发行版的安装方式也不一样:Ubuntu 和 Debian 使用 .deb 安装包,Fedora 使用 .rpm 安装包,Arch Linux 则需要运行官方提供的安装脚本。
提示
Linux App 可以安装,并不代表它已经具备 macOS 和 Windows App 的全部功能。使用 Computer Use、Appshots、远程控制等桌面功能前,建议先查看对应的官方页面,确认 Linux 当前是否支持。
如何确认 Codex 实际运行在哪里
如果不确定 Codex Agent 当前运行在哪个环境,可以让它执行几条只读取信息的命令。这些命令不会修改文件,只会显示系统类型、正在使用的 Shell 和当前文件夹。
你可以先直接告诉 Codex:
请检查当前运行环境,告诉我是 macOS、Windows、Linux 还是 WSL2。只读取系统信息,不要修改文件。
如果想自己检查,可以根据当前终端运行下面的命令。
macOS 或 Linux
uname -a
echo "$SHELL"
pwduname -a:查看当前系统信息。echo "$SHELL":查看当前使用的是哪一种 Shell。pwd:查看当前所在的文件夹。
WSL2
echo "$WSL_DISTRO_NAME"
uname -a
pwd第一条命令会显示当前使用的 WSL Linux 发行版,例如 Ubuntu。如果能正常显示名称,通常说明 Agent 正在 WSL2 中运行。
Windows PowerShell
$PSVersionTable
$env:OS
Get-Location$PSVersionTable:查看当前 PowerShell 的版本信息。$env:OS:查看当前操作系统。Get-Location:查看当前所在的文件夹。
查看结果时,可以重点关注文件路径:
- 出现
/Users/...,通常表示 Agent 在 macOS 中运行。 - 出现
/home/...,通常表示 Agent 在 Linux 或 WSL2 中运行。可以再查看$WSL_DISTRO_NAME,进一步确认是不是 WSL2。 - 出现
C:\...,并且命令由 PowerShell 执行,通常表示 Agent 在 Windows 原生环境中运行。
选择建议
- 使用 Mac:选择 macOS 环境即可,一般不需要额外配置其他系统。
- 项目保存在 Windows 中:优先使用 Windows 原生模式,这样 Codex 使用的路径和工具会与项目保持一致。
- 项目保存在 WSL2 中:让 Codex Agent 也在 WSL2 中运行,并尽量把项目放在
/home/...目录下。 - 使用 Linux 桌面:安装前先确认自己的发行版和处理器架构是否受支持。Linux App 目前仍处于 Preview,部分桌面功能可能与 macOS、Windows 不同。
- 团队成员使用不同系统:尽量把安装、测试和启动项目的步骤写成统一命令。例如,大家都运行
npm test,而不是分别记住一套 Bash 和 PowerShell 命令。
如果遇到命令无法运行、路径找不到或没有权限等问题,不要只看当前使用的电脑系统。还需要依次确认四件事:Codex Agent 在哪里运行、集成终端使用什么 Shell、项目实际保存在哪里,以及当前沙盒允许访问哪些内容。
下一步
完成快速上手后,可以继续阅读进阶教程,进一步了解权限、沙盒、配置和团队协作。