Claude Code 使用教程:从入门到精通

Claude Code 使用教程:从入门到精通

Claude Code 是 Anthropic 推出的 AI 编程助手,直接集成在终端中。用了几个月,踩了不少坑,今天把核心用法和最佳实践整理一下。

一、基础用法

1.1 安装与启动

# 安装
npm install -g @anthropic-ai/claude-code

# 启动交互式会话
claude

# 非交互模式(Headless 模式)— 直接执行指令并打印结果
claude -p "你好,介绍下go语言,不超过200字"

Headless 模式特别适合脚本化调用,不需要进入交互式会话。

1.2 自动模式

claude --enable-auto-mode

自动模式下 Claude Code 会更积极地自主执行任务,减少确认提示。

1.3 上下文与行动

@ 上下文(Context):获取上下文内容,比如 @file.txt 可以把文件内容注入到对话中。

! 行动(Action):直接执行 shell 命令,无需退出 Claude Code:

# 在 Claude Code 对话中直接执行
! ls -la
! git status

二、权限控制与沙箱

2.1 四大权限模式

Shift + Tab 可以循环切换:

模式说明
default每次操作都需要确认
AcceptEdits自动接受文件编辑,其他操作需确认
plan只规划不执行,适合需求分析阶段
bypassPermissions跳过所有权限检查(YOLO 模式)

2.2 沙箱模式

权限:只能读写项目文件,系统文件默认只读。在 .claude/settings.json 中配置:

{
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": false
  }
}

2.3 安全 YOLO 模式

这是最强大的用法:bypassPermissions 与沙箱结合

# 在沙箱内启动 YOLO 模式
claude -p "修复这个项目中所有的ESLint错误" --dangerously-skip-permissions

AI 全速自主工作,但被限制在沙箱的安全范围内。修改项目外的文件?被阻断。访问外部恶意网站?被阻断。唯一能做的就是在你划定的安全范围内高效完成任务。

2.4 精细化权限配置

.claude/settings.json 中可以做到”立法+执法”双重保障:

{
  "permissions": {
    "allow": [
      "Read(go.mod)",
      "Bash(go:test:*)",
      "Bash(go:build:*)",
      "WebFetch(domain:github.com)"
    ],
    "deny": [
      "Read(./.env*)",
      "Read(~/.ssh/**)",
      "Bash(rm:*)",
      "Bash(git:push:*)"
    ],
    "ask": [
      "Write",
      "Edit",
      "Bash(git:add:*)",
      "Bash(git:commit:*)"
    ]
  }
}
  • allow:无害操作开绿灯
  • deny:绝对禁区
  • ask:需要你确认的”红绿灯”

三、项目规则:CLAUDE.md

3.1 分层加载逻辑

Claude Code 启动时会递归向上查找 CLAUDE.md 文件,直到根目录(通常 .git 所在目录),拼接所有的 CLAUDE.md 文件。

同时还会动态向下查找子目录中的 CLAUDE.md。

3.2 Constitution.md — 最高行为准则

这是抽象的原则性文件,定义了项目不可动摇的核心开发原则:

## AI 交互监控系统开发公约

第一条:简单性原则 (Simplicity First)
- 只实现明确要求的功能,不提前设计
- 优先使用浏览器原生 API 和 Node.js 内置模块
- 简单的函数和组合优于复杂的继承体系

第二条:类型安全铁律 (Type-Safety Imperative)
- 必须启用 strict: true,禁止使用 any 类型
- 优先利用 TypeScript 的类型推导

第三条:明确性原则 (Clarity and Explicitness)
- 所有 Promise/async 错误都必须被显式处理
- 使用清晰、描述性的命名

这个文件是 AI Agent 的”宪法”,所有技术规划和代码实现都必须无条件遵循。

四、Slash Commands(自定义指令)

4.1 三级指令体系

级别存放位置特点
内置指令系统自带/help, /model, /memory
Project 级./.claude/commands/随项目 Git 提交,团队共享
User 级~/.claude/commands/个人专属,跨项目可用

4.2 自定义指令示例

创建 .claude/commands/commit.md

---
description: 分析git diff,生成符合Conventional Commits规范的提交信息并提交。
allowed-tools: Bash(git diff:*), Bash(git commit:*)
---
1. 执行 `git diff --staged` 获取暂存区的变更。
2. 根据变更内容,生成一条严格遵循 `CLAUDE.md` 中 Conventional Commits 规范的 Commit Message。
3. 向用户展示生成的 Message,并询问是否确认提交。
4. 如果确认,执行 `git commit -m "..."`

之后在 Claude Code 中输入 /commit 就能自动执行这个工作流。

五、Hooks 检查点

Hooks 允许你在 Claude Code 执行特定操作前后插入自定义逻辑。比如在每次文件编辑前自动备份,或者在提交前自动运行 lint。

六、MCP(Model Context Protocol)

Claude Code 支持通过 MCP 协议连接外部工具服务器,扩展能力边界。比如连接 Figma MCP Server 可以直接读取设计稿信息。

七、实战技巧

7.1 为 Go 项目定制安全配置

{
  "permissions": {
    "allow": [
      "Read(go.mod)", "Read(Makefile)",
      "Bash(go:test:*)", "Bash(go:build:*)",
      "Bash(gofmt:*)", "Bash(golangci-lint:run:*)"
    ],
    "deny": [
      "Read(./.env*)", "Read(~/.ssh/**)",
      "Bash(rm:*)", "Bash(git:push:*)"
    ],
    "ask": [
      "Write", "Edit",
      "Bash(go:get:*)", "Bash(go:mod:tidy)"
    ],
    "defaultMode": "default"
  },
  "sandbox": {
    "enabled": true,
    "autoAllowBashIfSandboxed": false
  }
}

7.2 设置终端别名

让每次输入 claude 都自动跳过权限检查:

# ~/.zshrc
alias claude='claude --dangerously-skip-permissions'

7.3 常见错误处理

  • 权限问题:检查 .claude/settings.json 的 permissions 配置
  • 上下文溢出:用 /memory 查看当前上下文,清理不必要的文件
  • 模型响应慢:检查网络连接,或者切换到更轻量的模型

八、总结

Claude Code 的核心理念是让 AI 成为你的编程伙伴,而不是简单的代码生成器。通过合理配置权限、编写项目规则、善用自定义指令,你可以打造出一个既安全又高效的 AI 编程环境。

最重要的几点:

  1. CLAUDE.md 是灵魂 — 花时间写好它,AI 会更懂你的项目
  2. 权限要分层 — allow/deny/ask 三级管控,安全与效率兼顾
  3. 沙箱 + YLOO = 安全自动 — 高度重复的任务交给 AI,你只管审查
  4. 自定义指令是效率倍增器 — 把重复工作流封装成 /xxx 一键触发

参考资料:

  • Claude Code 官方文档
  • D2 2026 大会分享:《Skills - 宝玉》