DOCAI · 课程 · L3 · 21 分钟 · 命令参考
`claude "query"`:带初始提示启动
已经想好第一句时,把问题直接跟在命令后面,进入会话即开工。这一节讲清引号规则、它和单次模式的区别,以及第一句怎样写才不浪费。
你将学会
- 能在启动时正确传入带空格和标点的提示词
- 能分清交互启动与单次查询的适用场景
- 能写出让首轮更有效的开场任务
省掉那一步「进去再问」
打开终端、进项目、敲 claude,等界面出来,再把心里那句问题打进去。这套动作每天重复十次,就是十次多余的等待。
如果你已经知道第一句要问什么,把它跟在命令后面即可:
claude "帮我看看 src/index.ts 有没有明显的空指针风险"
启动完成后,这句话已经作为第一轮输入发出,界面里直接出现它的回应。这不是一次性执行——回答完之后你仍然可以继续追问。
引号不是装饰,是语法
命令行按空格切分参数。提示词不整体包起来,后半句就会被当成另一个参数,轻则报错,重则静默丢掉一半信息。
# 错:后半句被当成独立参数
claude 检查 src 下所有 async 函数
# 对:整句放进一对引号
claude "检查 src/ 下所有 async 函数有没有漏掉错误处理"
还有两种情况值得留心:
- 提示词里含反引号或
$时,双引号仍会让 shell 尝试求值。改用单引号,它就原样传过去; - 中文问句里的逗号、问号不是命令分隔符,不用转义,但整句仍要包好。
claude '对比 src/old.ts 和 src/new.ts,说明哪个更好,并给出理由'
它和 -p 完全是两回事
名字相近,行为差别很大:
| 写法 | 进入对话 | 适合 |
|---|---|---|
claude |
是,空白开始 | 还没想好从哪问 |
claude "query" |
是,首句已发出 | 想好了第一句,还要继续聊 |
claude -p "query" |
否,跑完退出 | 脚本、流水线、一次拿结果 |
最容易混的是后两者。claude "query" 只是把第一轮提前,会话照样开着;-p 是无人值守模式,进程结束即走。把该交互的任务写成 -p,你会看到一个跑到一半没人确认的进程;反过来,把脚本任务留给交互模式,就永远自动不起来。
第一句写什么最划算
首轮的价值在于「对齐」,不在于「产出」。开场先让它读、再说理解,你才有机会纠正方向:
先读 README、package.json 和 src/ 的入口文件,然后用五条以内的要点告诉我:这个项目怎么启动、测试怎么跑、核心模块各负责什么。先不要改任何文件。
这类请求有三个好处:范围清楚、结果可核对、零副作用。它读偏了你立刻能发现,而不是等改完代码才察觉。
相反,首句就写「重构整个项目」通常换来一份泛泛的计划。任务越大,第一轮的偏差越难纠正。
把条件一并带上
启动参数可以直接和提示词组合:
claude --model <模型名> "读一遍 src/api/,画出模块之间的依赖"
claude --permission-mode plan "给出重构方案,先不要动手"
claude --append-system-prompt "回答一律用简体中文,先结论后理由" "检查这次改动"
plan 这类权限模式适合只想要方案、不想让它落地的场合;具体取值以当前版本为准,可用 Tab 补全查看。相关概念见提示词。
参数建议集中放在提示词前面:读起来更像一句完整的命令,复制给别人时也不容易漏掉引号。
接着上次的会话继续
一天里常常是同一件事分几段做。每次重新交代背景很浪费,可以把上一次的上下文接回来:
# 继续最近一次会话
claude --continue
# 继续,并在开头补一句新任务
claude -c "刚才那个缓存函数,补一组单元测试"
# 恢复指定会话;不给 ID 时通常会出现列表让人挑
claude --resume
-c 是继续最近一次,--resume 是挑一次恢复;两者都会带回之前的讨论与改动记录。会话按项目目录归档,换一个目录启动时可能看不到,先 cd 回原来的项目再恢复。恢复之后的第一句同样要写清目标,别默认它记得你脑子里的事。具体参数以当前版本的 claude --help 为准。
进到界面里:按键与 Vim 模式
进入交互界面后,几组按键值得先记住:
| 操作 | 按键 | 说明 |
|---|---|---|
| 发送 | Enter | 单行输入直接发送 |
| 换行 | Shift+Enter | 多数现代终端原生支持;不生效时查终端配置,或临时用反斜杠加回车 |
| 中止当前操作 | Ctrl+C | 空闲时再按一次退出 |
| 清屏 | Ctrl+L | 只清显示,上下文还在 |
| 翻历史输入 | ↑ / ↓ | 找回上一条问过的话 |
| 看斜杠命令 | /help |
列出当前可用的命令 |
习惯 Vim 的可以在 /config 里把 Editor mode 设为 vim(也可以把 "editorMode": "vim" 写进设置文件);开启后 i 进插入模式,Esc 回普通模式,编辑长提示词会顺手很多。只想先熟悉界面,可以看交互式会话入门。
三个常见的坑
- 不加引号。 多词提示词被拆散,最隐蔽的后果是它只收到前半句却照样回答。
- 首句塞进五件事。 它通常挑一件做,其余被忽略;拆成几轮,每轮一个目标。
- 在错误目录启动。 它读不到目标文件,只能凭文件名猜,答案看着像模像样却对不上你的项目。多目录的项目先
cd到主目录,再用--add-dir把其他目录加进可读范围。
另外,别把密钥、口令粘进首句。需要的凭据走环境变量或登录态,不要出现在命令历史里。
启动阶段报错,先按三层排查:提示命令不存在,查全局安装是否成功(npm list -g @anthropic-ai/claude-code);要求登录或鉴权失败,先确认变量有值,再重新走一次 /login;想看清请求细节,加 --verbose。这三层都和提示词无关,别急着改问法。
带初始提示启动省下的是一步操作,真正决定效果的是第一句的范围。想先了解它和普通对话的差别,可以看什么是 Claude Code。下一节换到无人值守的场景,看单次查询模式怎么把结果交给脚本。
自测
先自己回答,再展开对照;答不上来就回到对应小节。01claude "query" 和 claude -p "query" 的关键差别是什么?看答案
前者进入交互会话,答完还能追问;后者执行一次就退出,适合脚本。
02提示词里有空格或反引号时要注意什么?看答案
整句用一对引号包住;含反引号或 $ 时优先用单引号,避免被 shell 先解释。