教程Claude Code系列第 4 / 4 篇

Claude Code 速查:内置工具、常用命令和环境变量,各挑最用得上的讲

官方的工具、命令、环境变量三张参考表加起来五百多项。本站按用途各挑出最常用的一批,并实测了几件容易弄错的事:这台 Linux 上实际只加载了 21 个工具,没有 Glob 和 Grep;Bash 里 export 的变量留不到下一条命令;模型的环境变量盖过设置文件,命令行参数又盖过环境变量。

发布 · 约 11 分钟读完 · 经人工审核()· 本站的内容怎么来的

本站已实测,测试日期:2026-10-12。

本页目录(5 节)
  1. 一、内置工具
  2. 二、命令
  3. 三、环境变量
  4. 这一趟花了多少
  5. 这次实测没有覆盖到的

这篇教程解决一个问题:写权限规则要用工具的名字,干活要记命令,调行为要找环境变量。官方的三张参考表加起来有五百多项,大部分人用得上的是其中几十个。

这是一篇速查,三部分各自独立,可以直接跳到要用的那一节。每一节先给挑出来的清单,再讲实测里发现的、容易弄错的地方。

实测环境
日期 2026-10-12
版本 Claude Code 2.1.296
系统 Ubuntu 24.04
模型 Opus 5.5
连接方式 通过酷站AI 中转站,不是直连官方

官方文档当天列的数量:工具 46 个,命令 119 个,环境变量 391 个。

一、内置工具

工具是 Claude 干活时调用的东西:读文件、跑命令、搜网页。平时你不用点名,它自己选。要用到名字的地方是配置:权限规则、--allowedTools 参数、hook 的匹配条件、子代理的工具清单,写的都是这里的名字。

这个环境里实际有哪些

文档列的是全集,你的会话里有哪些取决于系统、接入方式和设置。本站用非交互模式启动一个会话,从它的启动信息里读出了实际加载的清单,一共 21 个:

类别 工具 做什么
文件 Read、Edit、Write、NotebookEdit 读文件、改文件的一部分、新建或覆盖文件、改 Jupyter 笔记本
命令 Bash 运行 shell 命令
联网 WebFetch、WebSearch 取一个网址的内容、搜索
分派 Task、SendMessage、ListAgents、TaskStop 起子代理、给别的代理发消息、列出能发消息的代理、停后台任务
编排 Workflow、Skill 运行动态工作流、执行 skill
定时 CronCreate、CronDelete、CronList、ScheduleWakeup 会话内的定时任务,/loop 用
其他 EnterWorktree、ExitWorktree、ReportFindings、DesignSync 进出 worktree、代码审查时上报发现、同步设计系统

起子代理的工具,文档里叫 Agent,启动信息里显示的是 Task。

对照文档,有几样不在里面,原因文档都写了:

  • 没有 Glob 和 Grep。 在 macOS、Linux 和 WSL 上,这两个默认不加载,Claude 改用 Bash 里的 find 和 grep 来搜。文档说明这两条命令在它的 shell 里是内置的加速版本,搜索会以 Bash 调用的形式经过你的 hooks 和权限规则。所以按 Grep 写的权限规则和 hook,在这些系统上默认碰不到。 想要回这两个工具,启动时在 --allowedTools 里点名其中一个。
  • 没有任务清单类的工具(TaskCreate、TodoWrite 等)。文档说明它们默认只在较早的模型上提供;新模型不靠写清单也能跟住多步任务。要用就设 CLAUDE_CODE_ENABLE_TODO_TOOLS=1。
  • 没有 AskUserQuestion、EnterPlanMode、ExitPlanMode。 这次是非交互运行,没有人可问。
  • 没有 Artifact、RemoteTrigger、PushNotification。 这几样要 claude.ai 账号或 Anthropic 托管的服务。
  • 没有 LSP 和 PowerShell。 前一个要装代码智能插件,后一个是 Windows 上的。
  • 也没有 Monitor(在后台盯着日志或状态、有变化就告诉 Claude 的工具)。文档列的不可用条件是云厂商接入或关了遥测,这里都不符合,原因本站没有查明。

想知道自己会话里有哪些,文档的办法是直接问 Claude:“你有哪些工具?”。MCP 工具的准确名字用 /mcp 看。

权限规则怎么写

规则的格式是 工具名(限定条件),限定条件的写法按工具分几类:

规则 管哪些工具 限定的是什么
Bash(npm run *) Bash、Monitor 命令的样式
Read(~/secrets/**) Read、Grep、Glob、LSP 路径
Edit(/src/**) Edit、Write、NotebookEdit 路径
WebFetch(domain:example.com) WebFetch 域名
Skill(deploy *) Skill skill 的名字
Agent(Explore) Agent 子代理的类型
WebSearch WebSearch 没有限定条件,只能整个允许或拒绝

文档里两条容易忽略的连带关系:

  • 允许 Edit(...) 同时也允许读同一个路径,不用再写一条 Read(...)。
  • 拒绝 Read(...) 同时也拦住对同一个路径的 Edit 和 Write,包括在那里新建文件。

hook 的 matcher 里写的是不带括号的工具名。规则怎么组合、谁先谁后,见权限模式怎么选。

Bash 工具:什么会留到下一条命令

这是最容易想当然的地方。本站让 Claude 把八条命令各自单独运行,并在设置文件的 env 里放了一个变量、把超时改成了 3 秒:

# 命令 实际输出
1 export DEMO_X=1 (无输出)
2 echo "X=[$DEMO_X]" X=[]
3 cd sub (无输出)
4 pwd /home/ccdemo/demo/h4-reference/sub
5 cd /tmp Shell cwd was reset to /home/ccdemo/demo/h4-reference
6 pwd /home/ccdemo/demo/h4-reference
7 echo "$DEMO_VAR" 来自设置文件
8 sleep 8 && echo done Command timed out after 3s

四件事:

  • export 的变量留不到下一条。 每条命令是一个单独的进程。
  • cd 留得住,但只限项目目录以内。 进子目录有效;cd 到项目外面,会被重置回项目根目录。
  • 设置文件 env 里的变量每条命令都看得到。 要给它用的环境变量,写在这里,不要指望在会话里 export。
  • 超时是可以配的。 默认 2 分钟,Claude 自己最多能要到 10 分钟。上面是把两个都改成 3 秒后的结果。

文档补充的几点:

  • 你 shell 启动文件里的别名和函数是可用的,Claude Code 启动时会读一次。
  • 虚拟环境要在启动 Claude Code 之前激活。 进了会话再让它 source venv/bin/activate,下一条命令就没了。要在命令之间保持,把 CLAUDE_ENV_FILE 指向一个脚本,它会在每条命令之前执行。
  • 输出默认读回约 3 万个字符,超出的部分存成文件,Claude 需要时再去读。

二、命令

命令是你在会话里输入的、以 / 开头的东西。输入 / 会列出能用的,接着打字母可以筛选。命令只在一条消息的开头才算数。

下面按“什么时候用”来排,是从一百多个里挑的。

刚进一个仓库

命令 做什么
/init 生成一份初始的 CLAUDE.md
/memory 编辑 CLAUDE.md,开关自动记忆
/permissions 看和改允许、询问、拒绝三类规则
/mcp 管理 MCP 服务器的连接
/add-dir <路径> 这次会话里多给它一个能访问的目录

干活的时候

命令 做什么
/plan [描述] 进入 plan 模式,先出计划再动手
/model [模型] 换模型,并存成以后的默认值
/effort [档位] 调 effort
/context 看上下文被什么占着
/compact [说明] 把到目前为止的对话压缩成摘要,腾出上下文
/btw [问题] 问一个旁支问题,不计入对话历史
/diff 看工作区里改了什么
/copy [N] 复制最近一条(或倒数第 N 条)回答
/goal [条件] 定一个目标,它会一直做到条件满足
/loop [间隔] [提示] 会话开着的时候反复执行一个提示

提交之前

命令 做什么
/code-review 审查当前的改动,--fix 可以直接改;/review 是它的别名
/security-review 检查当前分支的改动有没有安全问题
/simplify 检查改过的代码有没有可以精简的地方并动手改
/verify 把应用跑起来,确认改动真的生效

会话之间

命令 做什么
/clear [名字] 开一段新对话,上下文清空,项目记忆保留
/resume [会话] 回到之前的某段对话
/branch [名字] 从当前位置分出一支,试另一个方向
/rename [名字] 给会话起名字
/export [文件名] 把对话导出成纯文本
/tasks 看后台在跑的东西

出问题的时候

命令 做什么
/rewind 把代码和对话退回到之前的某个点
/status 看版本、模型、接口地址、加载了哪些设置文件
/doctor 检查安装和配置,能修的顺手修
/debug [描述] 打开调试日志并帮你排查
/usage 看这次会话的花费和用量;/cost 是它的别名
/release-notes 看更新日志

改设置

命令 做什么
/config 打开设置界面
/statusline 配状态栏
/keybindings 打开快捷键文件
/output-style [风格] 换输出风格
/theme 换配色
/tui [default|fullscreen] 换渲染方式
/terminal-setup 给终端装上 Shift+Enter 换行
/sandbox 开关沙箱
/hooks 看 hook 的配置
/plugin 管理插件
/skills 列出能用的 skill

前几个在设置文件、状态栏和把终端调顺手三篇里讲过。

通过中转站或 API key 用不了的

文档里写明了条件或者本身依赖 claude.ai 的几个:

命令 条件
/voice 要 claude.ai 账号
/desktop 要 Claude 订阅
/privacy-settings 只有 Pro 和 Max 订阅才有
/schedule 云端的 routines;文档提到用控制台的 API key 时会报“未知命令”
/remote-control、/teleport、/web-setup 远程控制和云端会话的功能,都要连 claude.ai

/remote-control 这一条本站在 claude doctor 里看到了原话:它只在直连 api.anthropic.com 时可用,设了别的接口地址就不行。

用不了的命令不会出现在 / 的菜单里。文档说明,硬敲出来多数会得到“Unknown command”。

两个小知识

  • Claude 正在回答时发命令,它会排队,等这一轮结束再执行。/status、/tasks、/usage 例外,立刻执行,不打断回答。
  • 打错了不会自动纠正。 菜单里会列出相近的,可以用 Tab 或方向键选;直接按回车发出去的是你打的原样。

三、环境变量

环境变量调的是 Claude Code 自身的行为:连哪里、用哪个模型、超时多久、关掉哪些功能。

两种设法

在 shell 里设,只对这个终端里接下来启动的会话有效:

export API_TIMEOUT_MS="1200000"
claude

想每次都生效,把这一行写进 ~/.bashrc 或 ~/.zshrc。也可以只管一次:API_TIMEOUT_MS=1200000 claude。

在设置文件的 env 里设,不管从哪里启动都生效:

{
  "env": {
    "API_TIMEOUT_MS": "1200000",
    "BASH_DEFAULT_TIMEOUT_MS": "300000"
  }
}

写在哪个设置文件里,决定了对谁生效,规则和设置文件那篇讲的一样。文档提醒:这里的值是原样使用的,没有 shell 来展开,路径要写绝对路径,~ 和 $HOME 不会被替换。

同一个变量 shell 和设置文件都设了,文档说多数情况下设置文件的值生效。shell 里的变量只在启动时读一次,设置文件里的改了会重新应用到正在运行的会话。

实测:模型到底听谁的

同一件事有环境变量、设置键、命令行参数三处可以设时,谁优先是每个功能单独定的,不能一概而论。本站拿模型试了四种组合,看启动时第一屏显示的模型:

设置文件 model 环境变量 ANTHROPIC_MODEL 参数 --model 启动后的模型
不设 claude-sonnet-5-5 不带 Sonnet 5.5
claude-haiku-5-5 不设 不带 Haiku 5.5
claude-haiku-5-5 claude-sonnet-5-5 不带 Sonnet 5.5
claude-haiku-5-5 claude-sonnet-5-5 opus Opus 5.5

对模型来说:命令行参数 > 环境变量 > 设置文件。

但 effort 的顺序是反的。 文档写明 CLAUDE_CODE_EFFORT_LEVEL 盖过 --effort 参数和 /effort 命令。本站只验证了单独设这个变量有效(启动时显示 with high effort),没有测它和参数同时存在的情况。

所以遇到“我明明设了却没生效”,先想一想是不是 shell 的启动文件里还留着一个老的 export。

最常用的一批

391 个里挑的。默认值和说明来自文档。

接入

变量 作用
ANTHROPIC_BASE_URL 接口地址。接中转站或网关时改它
ANTHROPIC_AUTH_TOKEN 放进 Authorization 头的值,会自动加上 Bearer 前缀
ANTHROPIC_API_KEY 放进 X-Api-Key 头的 key。设了它,即使登录着订阅账号也用这个 key
ANTHROPIC_CUSTOM_HEADERS 给请求额外加的头,一行一个
HTTP_PROXY、HTTPS_PROXY、NO_PROXY 走代理,以及哪些地址不走
API_TIMEOUT_MS 接口请求的超时,默认 600000(10 分钟)。网络慢或走代理时调大

中转站具体怎么填,见接入中转站。文档提到一个连带的影响:接口地址不是官方的时候,MCP 的工具搜索默认关闭。

模型和思考

变量 作用
ANTHROPIC_MODEL 用哪个模型
ANTHROPIC_DEFAULT_OPUS_MODEL、…_SONNET_MODEL、…_HAIKU_MODEL opus、sonnet、haiku 三个别名各自指向哪个模型 ID。中转站的模型名和官方不一样时用
CLAUDE_CODE_SUBAGENT_MODEL 没有另外指定时,子代理用哪个模型
CLAUDE_CODE_EFFORT_LEVEL effort 档位:low、medium、high、xhigh、max、auto
MAX_THINKING_TOKENS 给思考一个固定的 token 预算
CLAUDE_CODE_MAX_OUTPUT_TOKENS 单次回答最多输出多少 token

命令的超时和输出

变量 作用
BASH_DEFAULT_TIMEOUT_MS Bash 命令的默认超时,默认 120000(2 分钟)
BASH_MAX_TIMEOUT_MS Claude 自己最多能要多长的超时,默认 600000(10 分钟)
BASH_MAX_OUTPUT_LENGTH 一条命令的输出读回多少字符,默认 30000,最多 150000
CLAUDE_ENV_FILE 一个脚本的路径,每条 Bash 命令之前执行,用来保持虚拟环境
MCP_TIMEOUT MCP 服务器启动的超时,默认 30000(30 秒)
MAX_MCP_OUTPUT_TOKENS MCP 工具一次返回最多多少 token,默认 25000

缓存和上下文

变量 作用
ENABLE_PROMPT_CACHING_1H 把提示缓存的有效期从默认的 5 分钟改成 1 小时
DISABLE_PROMPT_CACHING 关掉提示缓存
CLAUDE_CODE_AUTO_COMPACT_WINDOW 上下文到多少 token 时自动压缩,10 万到 100 万之间
CLAUDE_CODE_DISABLE_AUTO_MEMORY 关掉自动记忆

更新、遥测和联网

变量 作用
DISABLE_AUTOUPDATER 关掉后台自动更新,手动 claude update 还能用
DISABLE_TELEMETRY 不发遥测
DISABLE_ERROR_REPORTING 不发错误报告
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 一次关掉所有非必需的联网:自动更新、遥测、错误报告、更新日志等

DISABLE_AUTOUPDATER 本站验证了:设了之后,claude doctor 里的那一行从 Auto-updates: enabled 变成 Auto-updates: disabled (set by env: DISABLE_AUTOUPDATER)。

文档特别提醒了 DISABLE_TELEMETRY 和 DISABLE_ERROR_REPORTING:设成 0 或 false 也算关掉,和多数开关型变量不一样。只要变量存在且非空就生效,要重新打开得把变量删掉。

界面和目录

变量 作用
CLAUDE_CODE_NO_FLICKER 设成 1 开全屏渲染
CLAUDE_CODE_DISABLE_TERMINAL_TITLE 不自动改终端标题,同时也不再用小模型给会话起名字
CLAUDE_CONFIG_DIR 把 ~/.claude 换到别的目录。同一台机器上并排用两个账号时有用
CLAUDE_CODE_TMPDIR 临时文件放哪
CLAUDE_CODE_SHELL Bash 工具用哪个 shell,只支持 bash 和 zsh

设置文件里“取消”一个变量

设置文件里能设变量,不能删变量。文档给的办法:某个你管不了的 shell 启动文件导出了一个变量,想让它失效,就在 env 里把它设成空字符串。

这一趟花了多少

约 0.35 美元:读启动信息的那次 0.13 美元,八条 Bash 命令那次 0.21 美元。模型、effort、自动更新几项只看了启动画面和 claude doctor,没有发消息。这是 Claude Code 按官方价格估算的数字,不是中转站实际扣的金额。

这次实测没有覆盖到的

  • 工具清单是非交互模式(claude -p)下读到的。 交互会话里会多出向你提问、进出 plan 模式这几个,本站没有另外核对交互会话的完整清单。
  • 命令只整理了清单,没有逐个运行。 其中一部分在本站别的教程里实测过。
  • “用不了的命令”只验证了 /remote-control 一条的原因,其余是文档写的条件。
  • 环境变量只实测了五个:ANTHROPIC_MODEL、CLAUDE_CODE_EFFORT_LEVEL、DISABLE_AUTOUPDATER、BASH_DEFAULT_TIMEOUT_MS、BASH_MAX_TIMEOUT_MS,外加设置文件 env 里的自定义变量。其余的作用和默认值来自文档。
  • shell 和设置文件设了同一个变量时谁生效,没有测。
  • 只在 Linux 上测过。 Windows 上工具集不一样(有 Glob、Grep,可以开 PowerShell)。
  • 三张清单都是挑过的,不是全集。数量和内容会随版本变,以官方参考页为准。

来源

通过 API 中转站使用这些模型?到 Veridrop 免费检测中转站给你的是不是它声称的模型,或者看看中转站排行榜前 100 名。

相关文章