深色模式
Claude Code CLI
概述
Claude Code CLI 不是单纯的终端聊天窗口。把它当聊天框当然也能用,只是有点亏。
它能读项目、搜文件、跑命令、改代码、管会话,还能把这些动作串成一条完整工作流。日常开发里,交互会话、一次性调用和会话恢复都很常用。
本文基于 2026 年 3 月 31 日查阅的 Anthropic 官方文档整理,只讲高频用法:安装、登录、交互模式、-p 脚本调用、会话恢复和常用参数。
安装与登录
截至 2026 年 3 月 31 日,Claude Code 官方 Quickstart 推荐三种安装方式:原生安装、Homebrew 和 WinGet。
macOS、Linux、WSL 可以直接使用官方安装脚本:
sh
curl -fsSL https://claude.ai/install.sh | bashWindows PowerShell:
sh
irm https://claude.ai/install.ps1 | iex使用包管理器的话,也可以直接装 Homebrew 版本:
sh
brew install --cask claude-code安装完成后,先确认版本:
sh
claude -v第一次启动交互会话时,Claude Code 会要求你登录:
sh
claude如果之后需要切换账号,可以在会话里执行:
text
/login官方文档目前支持这几类账号:
- Claude Pro、Max、Teams、Enterprise。
- Claude Console 账号,也就是走 Anthropic API 计费的方式。
- 受支持的云平台接入,例如 Amazon Bedrock、Google Vertex AI、Microsoft Foundry。
还有一个常被忽略的区别:
- 原生安装会自动后台更新。
- Homebrew 和 WinGet 默认不会自动更新,需要你自己执行升级命令。
两种工作方式
Claude Code CLI 主要有两种工作方式:交互模式和打印模式。
| 命令 | 含义 | 用途 |
|---|---|---|
claude | 进入交互式会话 | 日常开发、持续协作 |
claude "解释这个项目" | 带着首个 prompt 进入交互会话 | 想开场就给任务 |
claude -p "解释这个函数" | 执行一次请求并输出结果后退出 | 脚本、管道、自动化 |
claude -c | 继续当前目录最近一次会话 | 回到刚刚做到一半的任务 |
claude -r auth-refactor | 按会话名或会话 ID 恢复 | 继续某个明确任务 |
第二行和第三行最容易混。
按 2026 年 3 月 31 日的 CLI reference,claude "query" 仍然表示“带首个问题启动 REPL”,不会执行完就退出。要做一次性调用,用 claude -p "query"。
交互模式里的高频入口
交互模式里,下面几个入口最常用:
- 直接输入自然语言任务,例如“先给我概览这个仓库,再定位登录流程”。
- 用
/打开内置命令和 skills 菜单,例如/help、/resume、/config、/vim。 - 用
@引用文件或目录,让 Claude 明确聚焦到某个路径。 - 用
!直接执行 shell 命令,并把输出带回当前会话上下文。 - 用
?查看当前终端环境下可用的快捷键。 - 用
Shift+Tab在权限模式之间切换。 - 用
Ctrl+O打开详细输出,查看 Claude 实际调用了哪些工具。 - 用
Ctrl+B把长时间运行的 Bash 任务放到后台。
例如,在一个真实会话里,你可以这样组合使用:
text
@src/auth
先解释这个目录里登录流程的主路径。
! git status
/config! 会直接进入 Bash mode,把命令输出追加到当前会话,不需要先经过 Claude 解释一遍。git status、pnpm test、ls -la 这类命令都适合这么跑。
权限模式怎么选
Claude Code 的使用体验,很大一部分取决于权限模式。
对 CLI 用户来说,先记住下面几种就够用了:
default:默认模式。Claude 可以读文件,但编辑文件和很多外部操作都要你确认。acceptEdits:允许直接编辑当前工作区文件,但命令执行等操作仍然会提示确认。plan:只研究、分析、给方案,不直接改源码。auto:尽量减少人工确认,由后台分类器做额外安全判断。bypassPermissions:跳过检查,只适合隔离容器、VM、devcontainer 这类环境。
陌生仓库,或者跨多个文件的大改,plan 通常是更稳妥的起点:
sh
claude --permission-mode plan进入之后,可以先让它只做分析:
text
先阅读认证模块,给我一份重构计划,不要直接改代码。官方权限文档当前还提到两个要点:
Shift+Tab可以在 CLI 里循环切换default、acceptEdits、plan,以及你显式启用的其它模式。bypassPermissions等价于--dangerously-skip-permissions,只建议在隔离环境中使用。
日常本地开发可以按这个顺序选:
- 初次理解项目或复杂任务先用
plan。 - 已经确认方向以后,再切到
acceptEdits或继续手动审批。 - 不要把
bypassPermissions当日常默认模式。
把 Claude 当成 Unix 工具来用
不少人只用交互聊天,-p 这一支反而经常被忽略。它才是 Claude Code 在命令行里最像 Unix 工具的部分。
最简单的用法,就是把输入通过管道喂给 Claude,再把结果重定向出去:
sh
cat build-error.txt | claude -p '用中文简洁解释这个构建错误的根因' > output.txt也可以把它塞进现有脚本里,做一次性检查:
sh
git diff -- src/auth.ts | claude -p '审查这段改动,指出明显风险'脚本要消费结果时,可以直接让它输出 JSON:
sh
claude -p "总结最近一次构建失败的原因" --output-format json结果还要继续喂给别的程序时,可以加 --json-schema:
sh
claude -p \
--output-format json \
--json-schema '{"type":"object","properties":{"summary":{"type":"string"},"risk":{"type":"string"}},"required":["summary","risk"]}' \
"review the staged changes"做自动化时,另外两个参数也很常用:
--max-turns:限制 agent 最多跑多少轮,避免长时间停不下来。--max-budget-usd:给 Anthropic API 使用场景设置一次调用的成本上限。
会话恢复与命名
同时推进多个任务时,会话管理很重要。
Claude Code 官方给了三套常用手段:
claude -c或claude --continue:继续当前目录最近一次会话。claude -r或claude --resume:恢复某个指定会话,或者打开会话选择器。-n或/rename:给会话起一个可读名字。
例如:
sh
claude -n auth-refactor在会话内部重命名:
text
/rename auth-refactor之后你就可以直接恢复:
sh
claude --resume auth-refactor不记得会话名时,可以直接打开选择器:
sh
claude --resume官方 common workflows 文档还提到几个选择器能力:
- 可以预览历史会话内容。
- 可以按当前目录、所有项目、当前 git 分支过滤。
- 可以在选择器里直接重命名会话。
这样就不用把上下文连续性全压在终端标签页上。标签页关了,活还在。
常用启动参数
第一次上手,先记下面这些就够用。
| 参数 | 作用 | 典型用途 |
|---|---|---|
--permission-mode plan | 以计划模式启动 | 先分析再动手 |
--add-dir ../shared | 额外开放其它目录 | monorepo、跨目录引用 |
--model sonnet | 指定当前会话模型 | 控制成本或能力 |
--append-system-prompt "..." | 追加本次会话约束 | 临时要求输出风格或语言 |
--tools "Bash,Edit,Read" | 限制当前会话可用工具 | 收缩能力边界 |
--verbose | 展示更完整的执行细节 | 排查 Claude 实际做了什么 |
--output-format json | 让 -p 输出结构化结果 | 脚本或 CI 集成 |
这里有个实际区别:
- 日常附加要求,优先用
--append-system-prompt。 --system-prompt会直接替换 Claude Code 默认系统提示,除非你非常明确要完全接管行为,否则不要轻易用它。
monorepo 里,--add-dir 很关键。例如当前目录在某个 app 下,但你还想让 Claude 一并看到共享库:
sh
claude --add-dir ../packages ../shared日常流程
先按下面这个流程走,基本够用。
先从计划模式进入目标仓库:
sh
claude --permission-mode plan -n login-bugfix第一轮先只让它理解问题:
text
先定位登录失败的根因,给我一个修复方案,不要改代码。方案确认以后,再让它开始实现:
text
按照刚才的方案开始修改,并补上回归测试。需要你自己快速执行命令时,直接用 Bash mode:
text
! pnpm test
! git diff --stat收尾阶段,再让它帮你整理提交:
sh
claude commit或者直接在会话里说:
text
帮我 review 刚才的改动,并给出一条清楚的 commit message这个流程把分析、改动、验证、提交拆开处理,同时保留上下文,日常开发基本够用。
