Skip to content

yh-xh/claude-code-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

Claude Code 从入门到精通

一份面向中文开发者的 Claude Code 完全教程,从零基础到高级用法。

目录


什么是 Claude Code

Claude Code 是 Anthropic 推出的 AI 编程智能体。它能读懂你的代码库、编辑文件、运行命令、操作 Git,并与你的开发工具深度集成。

它的核心工作方式是一个 智能体循环:Claude 不断收集上下文、执行操作、验证结果,循环往复直到任务完成。你随时可以打断并调整方向。

支持的平台

平台 安装方式 特点
终端 CLI curl -fsSL https://claude.ai/install.sh | bash 主力界面,支持 macOS/Linux/WSL
桌面应用 从 claude.ai 下载 可视化 Diff、并行会话、定时任务
VS Code 扩展 扩展商店搜索 "Claude Code" 内联 Diff、@引用、计划审查
JetBrains 插件 JetBrains Marketplace 搜索 支持 IDEA、PyCharm、WebStorm 等
Web 版 访问 claude.ai/code 无需本地安装,云端运行

系统要求

  • macOS 13.0+ / Windows 10 1809+ / Ubuntu 20.04+
  • 4 GB+ 内存
  • 需要网络连接
  • 支持 Bash、Zsh、PowerShell

账号要求

需要 Claude Pro、Max、Team、Enterprise 或 Console 账号。也支持 Amazon Bedrock、Google Vertex AI 等第三方提供商。


安装与认证

方式一:官方安装脚本(推荐)

macOS / Linux / WSL:

curl -fsSL https://claude.ai/install.sh | bash

Windows PowerShell:

irm https://claude.ai/install.ps1 | iex

方式二:包管理器

# Homebrew (macOS)
brew install --cask claude-code

# WinGet (Windows)
winget install Anthropic.ClaudeCode

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

首次登录

cd your-project
claude

首次运行会引导你登录,按提示在浏览器中完成授权即可。

验证安装

claude doctor

这个命令会检查安装状态、认证、网络连接等,有问题会给出修复建议。


基础用法

启动方式

# 交互模式(最常用)
claude

# 带初始任务启动
claude "帮我看看这个项目的结构"

# 非交互模式:执行完就退出
claude -p "这个项目用了什么技术栈?"

# 继续上次对话
claude -c

# 选择历史对话恢复
claude -r

常用 CLI 命令

命令 作用
claude 启动交互模式
claude "任务" 带任务启动
claude -p "查询" 非交互模式,执行后退出
claude -c 继续最近一次对话
claude -r 恢复历史对话
claude --worktree feature-x 在隔离的 git worktree 中启动
claude --model opus 指定模型
claude doctor 诊断安装问题

斜杠命令(会话内)

在会话中输入 / 可以看到所有可用命令:

命令 作用
/help 显示帮助
/clear 清空对话历史
/compact 压缩对话,释放上下文空间
/model 切换模型(Sonnet / Opus / Haiku)
/plan 进入计划模式
/memory 查看和编辑记忆文件
/permissions 管理权限规则
/mcp 管理 MCP 服务器连接
/config 打开设置面板
/init 自动生成 CLAUDE.md
/usage 查看 token 用量和费用
/doctor 诊断问题

内置技能

技能 作用
/simplify 审查代码质量,优化重复和低效代码
/review 审查 Pull Request
/security-review 安全审查
/batch 将大规模变更分解为并行任务
/loop 定时循环执行任务

基本交互示例

了解代码库:

这个项目是做什么的?
主入口文件在哪里?
解释一下目录结构

修改代码:

给用户注册表单添加输入验证
修复用户提交空表单的 bug
把认证模块重构为 async/await

Git 操作:

提交我的更改,写一个描述性的 commit message
创建一个新分支 feature/quickstart
帮我解决合并冲突

打断与调整

  • Esc:立即停止 Claude,当前工具调用被取消
  • 直接输入修正内容按 Enter:不打断当前操作,Claude 会在本轮完成后读取你的新指令

配置详解

CLAUDE.md 文件

CLAUDE.md 是 Claude 的 持久化指令文件,每次会话启动时自动加载。相当于给 AI 写的"项目说明书"。

文件位置与作用域(从宽到窄):

作用域 位置 共享范围
全局策略 /etc/claude-code/CLAUDE.md 所有用户(IT 部署)
用户级 ~/.claude/CLAUDE.md 你自己的所有项目
项目级 ./CLAUDE.md 团队共享(提交到 Git)
本地级 ./CLAUDE.local.md 仅自己,仅当前项目

最佳实践:

  • 控制在 200 行以内
  • 使用 Markdown 标题和列表
  • 写具体、可验证的指令("使用 2 缩进" 而非 "格式化代码")
  • @path/to/file 引入其他文件

快速生成:

/init

Claude 会自动分析你的代码库,生成一份初始 CLAUDE.md。

Rules 目录

对大型项目,可以在 .claude/rules/ 中按路径组织规则:

---
paths:
  - "src/api/**/*.ts"
---
# API 开发规则
- 所有 API 端点必须包含输入验证
- 使用标准错误响应格式

设置文件

设置按优先级从高到低:

  1. 全局策略 — IT 部署,不可覆盖
  2. 命令行参数 — 临时覆盖
  3. 本地.claude/settings.local.json(不提交)
  4. 项目.claude/settings.json(提交到 Git)
  5. 用户~/.claude/settings.json(所有项目)

settings.json 示例:

{
  "permissions": {
    "allow": [
      "Bash(npm run test *)",
      "Bash(git diff *)"
    ],
    "deny": [
      "Read(./.env)"
    ]
  },
  "env": {
    "DATABASE_URL": "postgres://localhost/mydb"
  },
  "model": "claude-sonnet-4-6"
}

常用配置项:

  • permissions — 控制工具访问权限
  • env — 环境变量
  • model — 默认模型
  • hooks — 生命周期钩子
  • autoMemoryEnabled — 自动记忆开关
  • editorMode — 编辑器模式(normal / vim)

权限模式

Shift+Tab 在会话中切换:

模式 说明
default 仅允许读取
acceptEdits 允许读取和文件编辑
plan 只读,Claude 先出计划再操作
auto 全部允许(有后台安全检查)
bypassPermissions 全部允许(仅限容器/VM)

核心功能

MCP 服务器(Model Context Protocol)

MCP 是一个开放标准,让 Claude Code 连接外部数据源。通过 MCP,Claude 可以:

  • 读取 Google Drive 中的设计文档
  • 更新 Jira 工单
  • 查询数据库
  • 发送 Slack 消息

添加 MCP 服务器:

# 远程 HTTP 服务器
claude mcp add --transport http sentry https://sentry.example.com

# 本地 stdio 服务器
claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres postgres://localhost/mydb

在会话中用 /mcp 管理连接。

记忆系统

两套互补的机制:

1. CLAUDE.md(你写的)

  • 项目说明、编码规范、架构决策
  • 每次会话自动加载

2. 自动记忆(Claude 自己写的)

  • 构建命令、调试经验、架构模式
  • 存储在 ~/.claude/projects/<项目>/memory/
  • 跨会话积累知识

Worktrees(工作树)

隔离并行的 Claude 会话,互不干扰:

# 终端 1:开发新功能
claude --worktree feature-auth

# 终端 2:修 bug
claude --worktree bugfix-123

每个 worktree 从默认分支创建,有独立的工作目录。

计划模式

让 Claude 先研究、再提方案,不直接改代码:

Shift+Tab 两次  或  /plan  或  --permission-mode plan

计划完成后可以:

  • 批准并自动执行
  • 批准并逐个审查编辑
  • 继续讨论调整方案

技能(Skills)

扩展 Claude 的能力。创建 SKILL.md 文件即可:

位置:

  • 个人:~/.claude/skills/<skill-name>/SKILL.md
  • 项目:.claude/skills/<skill-name>/SKILL.md

示例:代码变更摘要技能

---
description: 总结未提交的变更并标记风险点。
---

## 当前变更
!`git diff HEAD`

## 指令
用两三个要点总结上面的变更,然后列出任何风险。

子代理(Subagents)

子代理拥有独立的上下文窗口,不会占用主对话的空间。适合长时间的调研任务。

.claude/agents/ 中定义自定义子代理。


进阶用法

Agent SDK

用 Python 或 TypeScript 编程调用 Claude Code 的能力:

# TypeScript
npm install @anthropic-ai/claude-agent-sdk

# Python
pip install claude-agent-sdk

TypeScript 示例:

import { query } from "@anthropic-ai/claude-agent-sdk";

for await (const message of query({
  prompt: "找到并修复 auth.ts 中的 bug",
  options: { allowedTools: ["Read", "Edit", "Bash"] }
})) {
  if ("result" in message) console.log(message.result);
}

Python 示例:

import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions

async def main():
    async for message in query(
        prompt="找到并修复 auth.py 中的 bug",
        options=ClaudeAgentOptions(allowed_tools=["Read", "Edit", "Bash"]),
    ):
        if hasattr(message, "result"):
            print(message.result)

asyncio.run(main())

非交互模式(CI/CD 集成)

# 基本查询
claude -p "认证模块做了什么?"

# 管道数据
cat build-error.txt | claude -p '解释根本原因' > output.txt

# JSON 输出
claude -p "总结这个项目" --output-format json

# 带 JSON Schema
claude -p "提取函数名" --output-format json \
  --json-schema '{"type":"object","properties":{"functions":{"type":"array","items":{"type":"string"}}}}'

# 自动批准工具
claude -p "运行测试并修复失败" --allowedTools "Bash,Read,Edit"

# 精简模式(跳过钩子、技能、MCP、CLAUDE.md)
claude --bare -p "总结这个文件" --allowedTools "Read"

Hooks(钩子)

在特定生命周期点执行自定义命令。提供确定性控制,不依赖 LLM。

事件类型: SessionStart、PreToolUse、PostToolUse、Stop、Notification 等

示例:编辑文件后自动格式化

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "npx prettier --write \"$CLAUDE_FILE_PATH\""
          }
        ]
      }
    ]
  }
}

示例:Claude 等待输入时发送通知

{
  "hooks": {
    "Notification": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "notify-send 'Claude Code' '等待你的输入'"
          }
        ]
      }
    ]
  }
}

快捷键

通过 ~/.claude/keybindings.json 自定义。会话中输入 /keybindings 打开。

默认快捷键:

快捷键 作用
Enter 发送消息
Ctrl+J 插入换行
Esc 取消当前输入
Ctrl+C 中断
Ctrl+D 退出
Shift+Tab 切换权限模式
Ctrl+T 切换任务列表
Ctrl+R 搜索命令历史
Ctrl+L 重绘屏幕
Ctrl+G 打开外部编辑器
Meta+P 选择模型
Meta+O 切换快速模式
Meta+T 切换扩展思考

批量模式

/batch 技能将大规模变更分解为独立单元,每个在自己的 worktree 中运行,各自开 PR。

定时任务

  • /loop:在 CLI 会话中循环执行(如 /loop 5m /review
  • 桌面定时任务:在本机运行
  • Routines(Web/桌面):在 Anthropic 基础设施上运行

最佳实践

提示词技巧

  • 具体明确:"修复用户输入错误密码后看到空白页面的 bug" 远好于 "修复 bug"
  • 给验证标准:提供测试用例、截图或预期输出
  • 先探索、再计划、后编码:复杂问题用计划模式
  • 委托而非命令:给上下文和方向,信任 Claude 处理细节

上下文管理

  • /context 查看上下文占用
  • /compact 压缩对话(可指定焦点:/compact 聚焦 API 变更
  • 用技能代替 CLAUDE.md 中的多步流程
  • 长调研任务交给子代理
  • CLAUDE.md 控制在 200 行内

常见工作流

# 了解新代码库
这个项目做什么?用了什么技术栈?

# 写测试
给 calculator 函数写单元测试

# 提交代码
提交我的更改,写一个描述性的 commit message

# 代码审查
审查我的更改并提出改进建议

# 管道集成
gh pr diff "$1" | claude -p --append-system-prompt "审查安全漏洞"

避免的坑

  • 不要在 CLAUDE.md 中放多步流程,用技能替代
  • 不要依赖对话历史保存持久规则,写进 CLAUDE.md
  • 不要在非隔离环境使用 bypassPermissions
  • 出问题先跑 /doctor
  • CI 脚本用 --bare 模式避免本地配置干扰

常见问题

Q: Claude Code 和 ChatGPT/Copilot 有什么区别?

Claude Code 是智能体,不是简单的代码补全。它能自主读代码、改文件、跑命令、操作 Git,完成复杂的多步任务。你只需要描述目标,它会自己规划和执行。

Q: 支持哪些编程语言?

所有语言都支持。Claude Code 通过读取代码来理解,不依赖特定语言的解析器。

Q: 如何控制费用?

  • /usage 查看当前用量
  • /compact 压缩上下文减少 token
  • 简单任务用 Haiku,复杂任务用 Opus
  • -p 非交互模式避免意外的长时间对话

Q: 代码安全吗?

  • 代码在本地处理,不会上传到 Anthropic 训练模型
  • 企业版支持数据驻留和合规控制
  • 用权限模式控制 Claude 能做什么

Q: 如何在团队中使用?

  • 项目级 CLAUDE.md 提交到 Git,团队共享
  • .claude/settings.json 提交到 Git,统一权限
  • 每人可以用 CLAUDE.local.md 覆盖个人偏好

参考资源


本教程基于 Claude Code 2025 年最新版本编写。如有更新,请参考官方文档。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors