Claude Code 完全入门指南

Claude Code 完全入门指南

前言

Claude Code 是 Anthropic 官方推出的命令行工具,让你能够在终端中直接与 Claude AI 协作完成软件开发任务。不同于在网页中复制粘贴代码,Claude Code 可以直接读取、编辑你的本地文件,执行命令,甚至帮你提交代码------这一切都在你的控制之下。

本文将从零开始,带你了解 Claude Code 的核心概念,完成基础配置,并开始第一个实践项目。


💡 国内访问 Claude和Codex: weelinking - 直连、稳定、不折腾

一、Claude Code 是什么

1.1 核心能力

Claude Code 是一个AI 辅助编程工具,它可以:

  • 读取和编辑文件 - 理解你的代码库结构,直接修改源代码
  • 执行终端命令 - 运行测试、安装依赖、执行 git 操作
  • 搜索代码 - 快速查找文件、函数、类定义
  • 生成和重构代码 - 编写新功能、优化现有代码、修复 bug
  • 理解上下文 - 记住项目的编码规范和特定约定

1.2 工作模式

Claude Code 通过对话式交互完成任务:

bash 复制代码
# 启动 Claude Code
claude

# 然后你可以这样提问
You: 帮我在 src/utils.js 中添加一个日期格式化函数
Claude: 我会读取文件,添加函数,并解释实现细节

You: 运行测试看看是否通过
Claude: 我会执行 npm test 并分析结果

1.3 权限控制

重要的是,你始终掌握控制权

  • 所有文件操作都需要你的确认(除非你明确授权)
  • 可以配置哪些命令允许自动执行,哪些需要批准
  • 支持"只读模式",让 Claude 只查看代码不修改

二、安装与基础配置

2.1 安装 Claude Code

(假设用户已完成安装,此处提供快速参考)

macOS/Linux:

bash 复制代码
# 使用 npm 安装
npm install -g @anthropics/claude-code

# 验证安装
claude --version

Windows:

bash 复制代码
# 使用 npm 安装
npm install -g @anthropics/claude-code

# 验证安装
claude --version

💡 国内访问 Claude和Codex: weelinking - 直连、稳定、不折腾

2.2 首次登录

bash 复制代码
# 启动并登录
claude

# 系统会引导你通过浏览器完成认证
# 选择使用 Claude.ai 账号或 Anthropic Console 账号登录

2.3 验证工作目录

Claude Code 会在你当前所在的目录启动:

bash 复制代码
# 进入你的项目目录
cd /path/to/your/project

# 启动 Claude Code
claude

启动后,Claude 可以访问这个目录及其子目录下的所有文件。


三、核心概念介绍

3.1 配置层级(Settings Hierarchy)

Claude Code 使用多层配置系统,优先级从高到低:

优先级 配置文件位置 作用范围 是否提交到 Git
1 命令行参数 单次会话 -
2 .claude/settings.local.json 当前项目(个人) ❌ 不提交
3 .claude/settings.json 当前项目(团队) ✅ 提交共享
4 ~/.claude/settings.json 全局(个人) -

实用建议:

  • 个人偏好 → 放在 ~/.claude/settings.json(如默认模型、语言)
  • 团队规范 → 放在 .claude/settings.json(如代码风格、提交规范)
  • 临时测试 → 使用 .claude/settings.local.json(不会影响团队)

3.2 CLAUDE.md 文件

CLAUDE.md 是项目的"说明书",告诉 Claude:

  • 项目的架构和组织方式
  • 代码规范和最佳实践
  • 特定的命名约定
  • 常用的开发工作流

示例 CLAUDE.md

markdown 复制代码
# 项目说明

## 技术栈
- React 18 + TypeScript
- 使用 Vite 作为构建工具
- 使用 Vitest 进行单元测试

## 代码规范
- 所有组件使用函数式组件(不使用类组件)
- Props 必须定义 TypeScript 类型
- 文件名使用 PascalCase(如 UserProfile.tsx)

## 测试规范
- 每个组件必须有对应的 .test.tsx 文件
- 测试文件与组件文件放在同一目录
- 运行测试:npm test

## 提交规范
- 使用 Conventional Commits 格式
- 提交前必须运行 npm run lint

CLAUDE.md 的加载机制:

  1. 向上查找(Ancestor Loading) - 启动时自动加载从当前目录到根目录的所有 CLAUDE.md
  2. 向下延迟加载(Descendant Loading) - 子目录的 CLAUDE.md 只在访问该目录的文件时加载

实际例子:

复制代码
/myproject/
├── CLAUDE.md              # 全局规范(启动时加载)
├── frontend/
│   └── CLAUDE.md          # 前端规范(编辑 frontend/ 文件时加载)
└── backend/
    └── CLAUDE.md          # 后端规范(编辑 backend/ 文件时加载)

如果你在 /myproject/ 启动 Claude Code:

  • 根目录的 CLAUDE.md 立即加载
  • frontend/CLAUDE.mdbackend/CLAUDE.md 按需加载

3.3 Skills 技能系统

Skills 是可复用的命令或工作流,类似于自定义的快捷指令。

Skills 存放位置:

位置 路径 作用范围
个人 ~/.claude/skills/<skill-name>/SKILL.md 你的所有项目
项目 .claude/skills/<skill-name>/SKILL.md 当前项目
包级别 packages/frontend/.claude/skills/ Monorepo 中的特定包

示例 Skill:

创建 .claude/skills/commit-check/SKILL.md

markdown 复制代码
---
name: commit-check
description: 提交前检查代码质量
---

# 提交前检查流程

执行以下步骤:

1. 运行 `npm run lint` 检查代码风格
2. 运行 `npm test` 确保测试通过
3. 如果都通过,询问用户是否要提交
4. 如果用户确认,执行 `git add .` 和 `git commit`

使用 Skill:

bash 复制代码
You: /commit-check
Claude: 我会执行提交前检查流程...

Skills 与 CLAUDE.md 的区别:

特性 CLAUDE.md Skills
用途 静态知识(规范、约定) 动态命令(工作流)
调用方式 自动加载 手动调用(/skill-name
内容加载 全文加载 仅描述加载,调用时加载全文

四、第一个实践:创建项目级配置

4.1 初始化项目配置

假设你有一个 Node.js 项目,我们来创建配置文件:

步骤 1:创建配置目录

bash 复制代码
mkdir .claude

步骤 2:创建 CLAUDE.md

创建 .claude/CLAUDE.md 或直接在项目根目录创建 CLAUDE.md

markdown 复制代码
# 我的 Node.js 项目

## 项目信息
- 这是一个 Express.js 后端 API 项目
- 使用 ES Modules (import/export)
- Node 版本:18+

## 开发规范
- 所有 API 路由定义在 src/routes/
- 数据库模型定义在 src/models/
- 业务逻辑放在 src/services/

## 测试
- 使用 Jest 进行单元测试
- 运行测试:npm test
- 测试覆盖率:npm run test:coverage

## 数据库
- 使用 PostgreSQL
- 迁移文件位于 migrations/
- 运行迁移:npm run migrate

## 环境变量
- 本地开发使用 .env.local(不提交到 Git)
- 生产环境变量配置在部署平台

## 提交规范
- feat: 新功能
- fix: 修复 bug
- refactor: 代码重构
- docs: 文档更新
- test: 测试相关

步骤 3:创建权限配置

创建 .claude/settings.json

json 复制代码
{
  "permissions": {
    "default": "ask",
    "rules": [
      {
        "tool": "Bash",
        "allow": [
          "npm test",
          "npm run lint",
          "git status",
          "git diff"
        ]
      },
      {
        "tool": "Edit",
        "ask": ["*.js", "*.json"]
      }
    ]
  },
  "attribution": {
    "commit": "Co-Authored-By: Claude Sonnet <noreply@anthropic.com>"
  }
}

配置说明:

  • "default": "ask" - 默认所有操作都需要询问
  • allow 列表 - 这些命令可以自动执行(如运行测试)
  • ask 规则 - 编辑 JS 和 JSON 文件时需要确认

4.2 测试配置

启动 Claude Code 并测试:

bash 复制代码
claude

测试 1:让 Claude 读取 CLAUDE.md

复制代码
You: 我们的项目使用什么技术栈?
Claude: 根据 CLAUDE.md,这是一个 Express.js 后端 API 项目...

测试 2:测试权限配置

复制代码
You: 运行测试看看项目状态
Claude: 我会执行 npm test...(自动执行,无需确认)

测试 3:测试文件编辑

复制代码
You: 在 src/utils.js 添加一个函数
Claude: 我会编辑文件...(弹出确认提示)

五、常用命令速查表

5.1 内置命令

命令 功能
/help 显示帮助信息
/clear 清空当前对话历史
/reset 重置会话(保留配置)
/exit 退出 Claude Code
/context 查看当前上下文信息
/plan 进入计划模式(适合复杂任务)

5.2 对话技巧

有效的提问方式:

明确具体

复制代码
"在 src/auth.js 中添加 JWT token 验证中间件,使用 jsonwebtoken 库"

提供上下文

复制代码
"我们的 API 路由在 routes/ 目录,请添加一个新的 /api/users 路由,
包含 GET 和 POST 方法,使用 Express Router"

分步骤

复制代码
"首先读取 package.json 确认依赖,然后创建 User 模型文件"

避免模糊指令

复制代码
"优化代码"  // 太宽泛
"修复那个 bug"  // 没有指明哪个 bug
"帮我写个函数"  // 没有说明需求

5.3 权限相关

查看当前权限设置:

复制代码
You: /context
Claude: [显示当前配置、权限规则、加载的 CLAUDE.md 等]

临时授权:

  • 当 Claude 请求权限时,可以选择:
    • Allow once - 本次允许
    • Allow always - 始终允许(会更新配置)
    • Deny - 拒绝本次操作

💡 国内访问 Claude和Codex: weelinking - 直连、稳定、不折腾

六、实战案例:第一个完整工作流

场景:为项目添加日志功能

步骤 1:描述需求

复制代码
You: 我想为项目添加日志功能。要求:
- 使用 winston 库
- 日志文件保存到 logs/ 目录
- 开发环境输出到控制台,生产环境输出到文件
- 支持不同日志级别(info, warn, error)

步骤 2:Claude 制定计划

复制代码
Claude: 我会执行以下步骤:
1. 检查 package.json 中是否已安装 winston
2. 如果没有,建议你运行 `npm install winston`
3. 创建 src/utils/logger.js 配置文件
4. 在 CLAUDE.md 中记录日志使用规范

步骤 3:执行并验证

复制代码
You: 开始吧
Claude: [执行操作...]
完成!已创建 logger.js,使用方法:
javascript 复制代码
import logger from './utils/logger.js';
logger.info('应用启动');
logger.error('发生错误', { error });

步骤 4:更新文档

复制代码
You: 更新 CLAUDE.md,记录日志的使用规范
Claude: [自动更新 CLAUDE.md...]

七、故障排查

7.1 Claude 找不到文件

问题: "我找不到 xxx 文件"

解决方法:

bash 复制代码
# 确认当前工作目录
pwd

# 使用绝对路径
You: 读取 /Users/yourname/project/src/app.js

# 或使用 ./ 相对路径
You: 读取 ./src/app.js

7.2 权限被拒绝

问题: "我没有权限执行 xxx"

解决方法:

  1. 检查 .claude/settings.jsonpermissions 配置

  2. 临时授权:在提示时选择 "Allow always"

  3. 或使用 viewOnly 模式查看代码:

    json 复制代码
    {
      "permissions": {
        "default": "viewOnly"
      }
    }

7.3 CLAUDE.md 没有被加载

问题: Claude 似乎没有读取项目规范

检查方法:

复制代码
You: /context
# 查看 "Loaded CLAUDE.md files" 部分

解决方法:

  • 确认文件名是 CLAUDE.md(全大写)
  • 确认文件位于项目根目录或 .claude/ 目录
  • 重启 Claude Code 会话

八、下一步学习建议

完成本入门指南后,你可以继续学习:

  1. 深入配置 → 阅读《深入理解 Claude Code 配置系统》

    • 学习高级权限控制
    • 配置 Hooks 钩子系统
    • 集成 MCP 工具
  2. Monorepo 项目 → 阅读《Monorepo 项目中的 Claude Code 最佳实践》

    • 多包项目的配置策略
    • CLAUDE.md 和 Skills 的组织方式
  3. 自动化工作流 → 阅读《Claude Code Hooks 钩子系统实战指南》

    • 提交前自动检查
    • 自定义工作流
    • 与 CI/CD 集成
  4. 浏览器自动化 → 阅读《浏览器自动化测试工具选择指南》

    • E2E 测试
    • 性能调试
    • Chrome DevTools 集成

九、常见问题 FAQ

Q1: Claude Code 是否会自动修改我的代码?

A: 不会。默认情况下,所有文件编辑都需要你的确认。你可以通过配置 permissions 来决定哪些操作允许自动执行。

Q2: 我的 API Key 会被泄露吗?

A: Claude Code 使用安全的认证机制,API Key 存储在本地配置中,不会被发送到除 Anthropic 服务器之外的任何地方。

Q3: 可以在离线环境使用吗?

A: 不可以。Claude Code 需要联网才能与 Claude AI 通信。

Q4: 支持哪些编程语言?

A: Claude Code 支持几乎所有编程语言,包括但不限于:JavaScript/TypeScript, Python, Java, Go, Rust, C++, Ruby, PHP 等。

Q5: 如何在团队中共享配置?

A: 将 .claude/settings.jsonCLAUDE.md 提交到 Git 仓库。个人配置使用 .claude/settings.local.json(添加到 .gitignore)。

Q6: Claude Code 会记住之前的对话吗?

A: 会话历史存储在本地,下次启动时可以继续。你可以使用 /clear 清空历史,或使用 /reset 重置会话。

Q7: 如何获取帮助?

A:


十、总结

本文介绍了 Claude Code 的核心概念和基础使用方法:

安装与启动 - 了解工作目录和登录流程

配置层级 - 理解全局配置、项目配置、个人配置的优先级

CLAUDE.md - 编写项目说明书,让 Claude 理解你的项目

Skills 系统 - 创建可复用的命令和工作流

权限控制 - 掌握安全使用 Claude Code 的方法

实战演练 - 完成第一个完整的开发任务

现在,你已经具备了使用 Claude Code 的基础能力。开始在你的项目中尝试吧!


参考资源

相关推荐
你不是我我3 小时前
【Java 开发日记】HTTP3 性能更好,为什么内网微服务依然多用 HTTP2?HTTP2 内网优势是什么?
java·开发语言·微服务
agicall.com3 小时前
座机通话双方语音分离技术解决方案详解
人工智能·语音识别·信创电话助手·座机语音转文字·固话座机录音转文字
AI机器学习算法3 小时前
《动手学深度学习PyTorch版》笔记
人工智能·学习·机器学习
Goboy3 小时前
「我的第一次移动端 AI 办公」TRAE SOLO 三端联动, 通勤路上就把活干了,这设计,老罗看了都想当场退役
人工智能·ai编程·trae
qq_452396233 小时前
第二十篇:《UI自动化测试的未来:AI驱动的智能测试与低代码平台》
人工智能·低代码·ui
tjl521314_213 小时前
04C++ 名称空间(Namespace)
开发语言·c++
赏金术士3 小时前
Kotlin 数据流与单双向绑定
android·开发语言·kotlin
视觉&物联智能3 小时前
【杂谈】-人工智能风险文化对组织决策的深远影响
人工智能·安全·ai·agi
β添砖java4 小时前
深度学习(12)Kaggle房价竞赛
人工智能·深度学习
冬奇Lab4 小时前
RAG 系列(十):混合检索——让召回更全面
人工智能·llm