Claude Code 终端 AI 编程助手
了解 Anthropic 的智能编程工具 Claude Code,它运行在你的终端中,帮你比以往更快地将创意转化为代码。
核心功能
- 自然语言编程:用简单描述构建功能、修复 Bug
- 代码库理解:快速掌握复杂项目结构和架构
- 自动化开发:执行日常任务、管理 Git、运行测试
- 终端集成:在你熟悉的环境中工作,无需切换工具
快速开始
前提条件:
- Node.js 18+
- Claude.ai 或 Anthropic Console 账户
# 安装
npm install -g @anthropic-ai/claude-code
# 进入项目目录
cd your-project
# 启动 Claude Code
claude
# 首次使用会提示登录
核心工作流
理解新代码库
> 这个项目是做什么的?
> 解释主要架构模式
> 找到用户认证相关文件
修复 Bug
> npm test 出现错误,请修复
> 用户提交空表单的问题,添加验证
代码重构
> 将回调改为 async/await
> 为工具函数添加单元测试
Git 操作
> 我修改了哪些文件?
> 用描述性信息提交更改
> 创建 feature/auth 分支
高级功能
子代理系统
创建专门的 AI 助手处理特定任务:
/agents # 管理子代理
> 使用 code-reviewer 子代理检查我的更改
计划模式
安全分析代码库而不做修改:
claude --permission-mode plan
> 分析认证系统并建议改进方案
自定义命令
创建可重用斜杠命令:
# 创建项目命令
echo "分析性能问题并建议优化" > .claude/commands/optimize.md
# 使用命令
> /optimize
配置管理
设置文件层级
- 企业策略:组织级标准和安全策略
- 项目设置:
- 用户设置:个人偏好(
~/.claude/settings.json)
权限控制
{
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test:*)",
"Read(~/.zshrc)"
],
"deny": [
"Bash(curl:*)",
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)"
]
},
"env": {
"CLAUDE_CODE_ENABLE_TELEMETRY": "1",
"OTEL_METRICS_EXPORTER": "otlp"
}
}
可用设置
settings.json 支持多个选项:
| **键** | **描述** | **示例** |
|---|---|---|
| `apiKeyHelper` | 自定义脚本,在 `/bin/sh` 中执行,生成认证值。此值将作为 `X-Api-Key` 和 `Authorization: Bearer` 标头发送给模型请求 | `/bin/generate_temp_api_key.sh` |
| `cleanupPeriodDays` | 基于最后活动日期本地保留聊天记录的时间(默认:30天) | `20` |
| `env` | 将应用于每个会话的环境变量 | `{"FOO": "bar"}` |
| `includeCoAuthoredBy` | 是否在 git 提交和拉取请求中包含 `co-authored-by Claude` 署名(默认:`true`) | `false` |
| `permissions` | 权限结构见下表。👇 | |
| `hooks` | 配置在工具执行前后运行的自定义命令。参见[钩子文档](https://github.com/wang-junjian/wang-junjian.github.io/blob/main/_posts/hooks) | `{"PreToolUse": {"Bash": "echo 'Running command...'"}}` |
| `disableAllHooks` | 禁用所有[钩子](https://github.com/wang-junjian/wang-junjian.github.io/blob/main/_posts/hooks) | `true` |
| `model` | 覆盖 Claude Code 使用的默认模型 | `"claude-3-5-sonnet-20241022"` |
| `statusLine` | 配置自定义状态行以显示上下文。参见[statusLine 文档](https://github.com/wang-junjian/wang-junjian.github.io/blob/main/_posts/statusline) | `{"type": "command", "command": "~/.claude/statusline.sh"}` |
| `outputStyle` | 配置输出样式以调整系统提示。参见[输出样式文档](https://github.com/wang-junjian/wang-junjian.github.io/blob/main/_posts/output-styles) | `"Explanatory"` |
| `forceLoginMethod` | 使用 `claudeai` 限制登录到 Claude.ai 账户,`console` 限制登录到 Anthropic Console(API 使用计费)账户 | `claudeai` |
| `forceLoginOrgUUID` | 指定组织的 UUID 以在登录期间自动选择它,绕过组织选择步骤。需要设置 `forceLoginMethod` | `"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"` |
| `enableAllProjectMcpServers` | 自动批准项目 `.mcp.json` 文件中定义的所有 MCP 服务器 | `true` |
| `enabledMcpjsonServers` | 从 `.mcp.json` 文件中批准的特定 MCP 服务器列表 | `["memory", "github"]` |
| `disabledMcpjsonServers` | 从 `.mcp.json` 文件中拒绝的特定 MCP 服务器列表 | `["filesystem"]` |
权限设置
| **键** | **描述** | **示例** |
|---|---|---|
| `allow` | 允许工具使用的[权限规则](https://github.com/wang-junjian/wang-junjian.github.io/blob/main/zh-CN/docs/claude-code/iam#configuring-permissions)数组。**注意:** Bash 规则使用前缀匹配,不是正则表达式 | `[ "Bash(git diff:*)" ]` |
| `ask` | 在工具使用时要求确认的[权限规则](https://github.com/wang-junjian/wang-junjian.github.io/blob/main/zh-CN/docs/claude-code/iam#configuring-permissions)数组。 | `[ "Bash(git push:*)" ]` |
| `deny` | 拒绝工具使用的[权限规则](https://github.com/wang-junjian/wang-junjian.github.io/blob/main/zh-CN/docs/claude-code/iam#configuring-permissions)数组。使用此选项也可以排除敏感文件不被 Claude Code 访问。**注意:** Bash 模式是前缀匹配,可以被绕过(参见[Bash 权限限制](https://github.com/wang-junjian/wang-junjian.github.io/blob/main/zh-CN/docs/claude-code/iam#tool-specific-permission-rules)) | `[ "WebFetch", "Bash(curl:*)", "Read(./.env)", "Read(./secrets/**)" ]` |
| `additionalDirectories` | Claude 可以访问的额外[工作目录](https://github.com/wang-junjian/wang-junjian.github.io/blob/main/_posts/iam#working-directories) | |
| `defaultMode` | 打开 Claude Code 时的默认[权限模式](https://github.com/wang-junjian/wang-junjian.github.io/blob/main/_posts/iam#permission-modes) | `"acceptEdits"` |
| `disableBypassPermissionsMode` | 设置为 `"disable"` 以防止激活 `bypassPermissions` 模式。参见[托管策略设置](https://github.com/wang-junjian/wang-junjian.github.io/blob/main/_posts/iam#enterprise-managed-policy-settings) | `"disable"` |
配置系统的关键点
- 内存文件(CLAUDE.md):包含 Claude 在启动时加载的指令和上下文
- 设置文件(JSON):配置权限、环境变量和工具行为
- 斜杠命令:可以在会话期间使用
/command-name调用的自定义命令 - MCP 服务器:使用额外的工具和集成扩展 Claude Code
- 优先级:更高级别的配置(企业)覆盖较低级别的配置(用户/项目)
- 继承:设置被合并,更具体的设置添加到或覆盖更广泛的设置
实用技巧
高效提问
- 具体明确:“修复登录后白屏问题” 而非 “修复 Bug”
- 分步说明:将复杂任务拆解为多个步骤
- 提供上下文:包含错误信息、复现步骤
终端集成
#开头:快速添加记忆到 CLAUDE.md/开头:使用斜杠命令!开头:直接执行 Bash 命令@文件路径:引用文件内容
会话管理
claude --continue # 继续最近会话
claude --resume # 选择恢复会话
/claer # 清除对话历史
开发体验
实时协作
- 直接编辑文件并征求确认
- 运行命令验证更改
- 自动处理合并冲突
上下文感知
- 自动读取相关文件
- 理解项目结构和依赖
- 保持编码规范和风格
企业特性
- 安全合规:数据本地处理,企业级隐私保护
- 成本控制:详细的令牌使用统计
- 团队协作:共享配置和自定义命令
- 扩展集成:支持 MCP 协议连接外部工具
Claude Code 将 AI 编程助手直接集成到你的开发工作流中,通过自然语言交互提升编码效率,同时保持对代码的完全控制。