wsl-bash-windowslisted
Install: claude install-skill black-yt/skills
# WSL Bash on Windows
## 文件导航
| 序号 | 文件内容概览 | 关键词 | 触发时机 | 文件路径 |
| --- | --- | --- | --- | --- |
| 1 | 记录 WSL bash 中执行 GitHub 与 Hugging Face push 的安全流程,覆盖非交互/交互 shell token 差异、一次性 HTTP Basic header、DNS 解析失败、坏代理、沙箱网络、`.git/index.lock` 提权、LFS/Xet 边界和 push 后状态验证。 | WSL push、GitHub、Hugging Face、HF、git push、DNS、getent hosts、proxy、HTTP_PROXY、bash -ic、token env、http.extraheader、credential.helper、LFS、Xet、index.lock、Read-only file system、ahead 1 | 在 WSL 项目中 push GitHub 或 Hugging Face 前必须读取;排查 `Could not resolve host`、代理端口不可达、`You are not authorized to push to this repo` 前必须读取;发现 token 只在交互 shell 中存在、普通 shell 网络失败、`.git/index.lock` 写入失败、HF LFS/Xet 或大文件边界不清时必须读取 | [references/push-dns.md](references/push-dns.md) |
## 核心判断
- 看到 `cwd` 或项目路径是 `/mnt/c/...`、`/mnt/d/...`,默认这是 WSL 项目。
- 在 WSL 项目里优先使用 WSL 的 `bash` 和 Linux 命令链,不要绕到 PowerShell、cmd、Windows 侧 `node.exe`、浏览器 `fetch`。
- 如果普通执行失败,先判断是不是沙箱启动失败,而不是误判为“系统没有 bash”。
- Codex 桌面端可能出现“UI 显示 WSL workspace,但实际执行器在 Windows 侧直接找 `/bin/bash`”的混合坏状态;这时不能继续改文件。
- 有些失败只是普通沙箱权限不足或没有提权,不代表 WSL bash 坏了;例如写 `.git/index.lock`、访问受限路径、联网命令或安装依赖时失败,应优先申请提权/原生 WSL 执行。
- 典型沙箱失败包括:
```text
Unable to spawn ... codex-linux-sandbox because it doesn't exist
```
或一开始表现成:
```text
CreateProcess ... No such file or directory
```
- 这些错误通常说明受限沙箱或运行包装器启动失败;正确处理是申请脱离沙箱,用原生 WSL bash 执行,而不是切换到 Windows 工具链。
- 如果错误形态是 `CreateProcess` + `/bin/bash` + `No such file or directory`,通常表示 Windows 执行器误拿了 WSL shell;应先让用户重启/修复 Codex 桌面端的 WSL 绑定。
## 标准流程
1. 先用 WSL bash 确认当前目录: