首页 › tutorials › Claude Code零基础入门:安装到首个项目

Claude Code零基础入门:安装到首个项目

学习目标:从零开始安装Claude Code,完成身份认证,掌握核心命令,理解配置层级,最终独立交付一个可运行的待办事项应用。适合从未接触过Claude Code的开发者。

适用人群:有一门编程语言基础(Python/JavaScript均可),会使用终端,但从未用过Claude Code。


一、Claude Code是什么

Claude Code是Anthropic推出的官方AI编程智能体(Agentic Coding Tool),它不是一个聊天机器人插件,而是一个能直接操作你本地文件系统的终端工具。它读取代码、编辑文件、运行Shell命令、管理Git仓库——这些操作全部在你的本地环境中完成,代码不会上传到云端。

┌──────────────────────────────────────────────────────────────┐
│                    Claude Code 架构概览                       │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│  ┌─────────┐    ┌─────────────┐    ┌───────────────────┐    │
│  │ 你的终端  │───▶│ Claude Code │───▶│ Anthropic Claude  │    │
│  │  / IDE   │◀───│   CLI/桌面   │◀───│     模型API       │    │
│  └─────────┘    └──────┬──────┘    └───────────────────┘    │
│                        │                                     │
│              ┌─────────┼─────────┐                          │
│              ▼         ▼         ▼                          │
│         ┌────────┐ ┌────────┐ ┌────────┐                   │
│         │ 文件系统 │ │ Shell   │ │  Git   │                   │
│         │ 读写   │ │ 命令执行 │ │ 操作   │                   │
│         └────────┘ └────────┘ └────────┘                   │
│                                                              │
└──────────────────────────────────────────────────────────────┘

与ChatGPT/Copilot的核心区别

特性 Claude Code GitHub Copilot ChatGPT
运行方式 本地终端/IDE IDE插件 网页/桌面App
文件操作 直接读写本地文件 仅补全当前文件 无法操作文件
Shell命令 可执行终端命令 不能 不能
Git集成 原生支持 部分支持 不能
项目理解 全仓库上下文 当前文件为主 手动粘贴
MCP扩展 支持外部工具连接 不支持 插件生态

五种使用界面

Claude Code不只是一个终端工具,它有五种运行界面:

  1. 终端CLI — 命令行交互,最核心的界面
  2. VS Code扩展 — 内嵌在编辑器中,支持Inline Diff
  3. JetBrains插件 — 支持IntelliJ、PyCharm、WebStorm等
  4. 桌面App — 2026年4月重大改版,支持多会话并行
  5. Web版 — 浏览器中直接使用

本教程以终端CLI为主线,因为它是所有界面的基础。


二、环境准备

2.1 系统要求

项目 最低要求
操作系统 macOS 12+、Ubuntu 20.04+、Windows 10+(WSL2)
Node.js v18或更高
内存 4GB以上
网络 需要访问 api.anthropic.com

2.2 安装Node.js

如果你还没装Node.js,推荐使用 nvm(Node Version Manager):

# macOS / Linux
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
source ~/.bashrc   # 或 source ~/.zshrc
nvm install --lts
node --version     # 确认 v18+

Windows用户在WSL2中执行相同命令,或直接从 nodejs.org 下载安装包。

2.3 验证环境

node --version     # 应显示 v18.x.x 或更高
npm --version      # 应显示 9.x.x 或更高
git --version      # Claude Code依赖Git,确保已安装

三条命令都有正常输出,就可以进入下一步。


三、安装与认证

3.1 安装Claude Code

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

安装完成后验证:

claude --version
# 预期输出:Claude Code v2.1.x 或更高

常见问题:macOS用户如果遇到 EACCES 权限错误,执行: bash sudo npm install -g @anthropic-ai/claude-code 或配置npm全局目录避免使用sudo。

3.2 两种认证方式

Claude Code支持两种认证路径:

flowchart TD
    A[开始认证] --> B{你有哪种账号?}
    B -->|Claude Pro/Max/Team订阅| C[OAuth登录]
    B -->|Anthropic API Key| D[环境变量方式]
    C --> E[终端运行 claude]
    E --> F[浏览器自动打开]
    F --> G[登录claude.ai授权]
    G --> H[认证完成]
    D --> I[export ANTHROPIC_API_KEY=sk-ant-xxx]
    I --> J[认证完成]
    H --> K[开始使用]
    J --> K

方式一:OAuth登录(推荐订阅用户)

claude
# 自动打开浏览器,跳转到 claude.ai 登录页面
# 登录后终端显示 "Authentication successful"

这是Claude Pro、Max、Team、Enterprise订阅用户的默认方式。登录一次后,后续自动续期。

方式二:API Key(开发者/企业用户)

# 1. 从 https://console.anthropic.com/ 获取API Key
# 2. 设置环境变量
export ANTHROPIC_API_KEY="sk-ant-api03-xxxxxxxxxxxxx"

# 3. 启动Claude Code
claude

为了持久化,把环境变量写入Shell配置文件:

# bash用户
echo 'export ANTHROPIC_API_KEY="sk-ant-api03-xxx"' >> ~/.bashrc
source ~/.bashrc

# zsh用户
echo 'export ANTHROPIC_API_KEY="sk-ant-api03-xxx"' >> ~/.zshrc
source ~/.zshrc

3.3 验证认证状态

在Claude Code会话中输入:

/status

预期输出类似:

Account: [email protected]
Plan: Claude Max
Model: claude-sonnet-4-6

四、核心操作速览

4.1 启动与退出

# 在项目目录启动交互式会话
cd /path/to/your/project
claude

# 一次性提问(不进入交互模式)
claude "这个项目用了什么技术栈?"

# 指定模型
claude --model claude-sonnet-4-6

# 退出会话
# 在会话中按 Ctrl+C 两次,或输入 /exit

4.2 权限模式

Claude Code有五种权限模式,按 Shift+Tab 循环切换:

模式 行为 适用场景
Default 每次文件编辑/命令执行都询问 初学者、敏感项目
Accept Edits 自动接受文件编辑,命令仍询问 日常编码
Plan 只输出计划不执行,需确认后才动手 复杂重构、架构变更
Bypass Permissions 自动批准大部分操作 可信环境、快速迭代
Auto Mode 安全场景自动执行,危险操作仍询问 推荐的平衡模式

新手建议:前三天使用 Default 模式,理解Claude Code的行为模式后再切换。

4.3 必备斜杠命令

命令 功能 使用频率
/help 查看所有命令 首次使用
/init 扫描项目生成CLAUDE.md 每个新项目
/model 切换模型 按需
/compact 压缩上下文窗口 长会话必用
/cost 查看Token消耗和费用 定期检查
/clear 清空当前会话上下文 切换话题
/status 查看账号和模型状态 排查问题
/plan 进入/退出计划模式 复杂任务
/review 代码审查 提交前
/mcp 管理MCP服务器连接 扩展工具
/exit 退出Claude Code 结束会话

4.4 键盘快捷键

快捷键 功能
Enter 发送消息
Shift+Enter 换行(不发送)
Shift+Tab 切换权限模式
Ctrl+C 中断当前操作 / 退出
Tab 自动补全文件名/命令
Escape 取消当前输入
Ctrl+G 在Plan Mode中确认/取消计划

4.5 CLI常用启动参数

claude                          # 交互式会话
claude "你的问题"                # 一次性问答
claude -p "提示词"              # 非交互管道模式(适合脚本)
claude --model claude-sonnet-4-6  # 指定模型
claude --resume                  # 恢复上次会话
claude --continue                # 继续最近一次对话
claude --verbose                 # 详细日志模式
claude --allowedTools "Read,Write,Bash"  # 限制可用工具

五、配置体系详解

Claude Code采用分层配置架构,理解这个层级是高效使用的关键。

flowchart BT
    subgraph 配置层级
        E["🌐 Enterprise\n企业管理策略"] --> D["🏢 Team\n团队共享配置"]
        D --> C["👤 User\n用户全局配置"]
        C --> B["📁 Project\n项目级配置"]
        B --> A["🔒 Local\n本地个人配置"]
    end

    subgraph 文件位置
        F1["~/.claude/settings.json"]
        F2["项目根/.claude/settings.json"]
        F3["项目根/CLAUDE.md"]
        F4["~/.claude/CLAUDE.md"]
    end

    A --- F1
    B --- F2
    B --- F3
    C --- F4

5.1 CLAUDE.md — 项目上下文文件

CLAUDE.md是Claude Code最重要的配置文件,相当于给AI的项目说明书。

生成方式:

# 在项目根目录执行
claude
> /init

/init 会扫描你的项目结构,检测框架和工具链,自动生成CLAUDE.md。例如一个Next.js项目的CLAUDE.md可能长这样:

# Project: my-todo-app

## Tech Stack
- Next.js 15 with App Router
- TypeScript
- Tailwind CSS
- SQLite with Drizzle ORM

## Commands
- `npm run dev` — Start development server
- `npm run build` — Production build
- `npm test` — Run tests with Vitest
- `npm run lint` — ESLint check

## Code Style
- Use TypeScript strict mode
- Prefer named exports
- Components in PascalCase, files in kebab-case
- Use `cn()` utility for conditional classes

## Architecture
- `app/` — Next.js App Router pages
- `components/` — Reusable React components
- `lib/` — Shared utilities and database
- `types/` — TypeScript type definitions

手动优化CLAUDE.md的要点:

要写什么 不要写什么
项目技术栈和版本号 通用编程知识
构建/测试/部署命令 过时的历史信息
代码风格和命名约定 与当前项目无关的内容
目录结构说明 超长的API文档
已知的约束和边界条件 模糊的"做好代码"要求

5.2 settings.json — 权限和工具配置

settings.json控制Claude Code的行为边界:

{
  "permissions": {
    "allow": [
      "Bash(npm run *)",
      "Bash(git status)",
      "Bash(git diff *)",
      "Read",
      "Write"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Bash(git push --force)"
    ]
  },
  "model": "claude-sonnet-4-6",
  "env": {
    "NODE_ENV": "development"
  }
}

配置文件位置:

范围 路径 用途
用户全局 ~/.claude/settings.json 所有项目共享
项目共享 .claude/settings.json 团队统一(提交到Git)
项目本地 .claude/settings.local.json 个人偏好(不提交)

5.3 .claudeignore — 排除敏感文件

类似 .gitignore,用于排除Claude Code不应该访问的文件:

# .claudeignore
.env
.env.local
**/secrets/**
**/credentials/**
node_modules/
*.pem
*.key

六、实战:从零构建待办事项应用

下面用一个完整项目串联前面所有知识点。我们将构建一个命令行待办事项应用,使用Python,无需任何Web框架。

6.1 项目初始化

# 1. 创建项目目录
mkdir ~/claude-todo && cd ~/claude-todo

# 2. 初始化Git仓库
git init

# 3. 启动Claude Code
claude

6.2 生成项目配置

在Claude Code会话中:

> /init

由于是新空目录,/init会生成一个基础CLAUDE.md。我们可以直接让Claude Code帮我们完善。

6.3 描述需求并开始开发

输入以下提示词:

帮我用Python构建一个命令行待办事项应用,要求:
1. 数据存储在JSON文件中(todos.json)
2. 支持添加、列出、完成、删除任务
3. 使用argparse处理命令行参数
4. 代码放在todo.py中
5. 添加颜色输出,让界面更好看

Claude Code会进入计划模式,输出类似:

我来规划一下这个待办事项应用:

1. 创建 todo.py 主程序
   - argparse 定义子命令: add, list, done, delete
   - TodoManager 类管理数据读写
   - JSON文件持久化

2. 功能实现
   - add: 添加新任务
   - list: 显示所有任务(带状态标记)
   - done: 标记任务完成
   - delete: 删除任务

3. 添加颜色输出
   - 使用 colorama 库

确认这个方案,我开始编码?[Y/n]

确认后Claude Code开始编码。预期生成的 todo.py:

#!/usr/bin/env python3
"""命令行待办事项应用"""
import argparse
import json
import os
from datetime import datetime

try:
    from colorama import init, Fore, Style
    init(autoreset=True)
    HAS_COLOR = True
except ImportError:
    HAS_COLOR = False

DATA_FILE = "todos.json"

def _color(text, color):
    if HAS_COLOR:
        return f"{color}{text}{Style.RESET_ALL}"
    return text

class TodoManager:
    def __init__(self, filepath=DATA_FILE):
        self.filepath = filepath
        self.todos = self._load()

    def _load(self):
        if os.path.exists(self.filepath):
            with open(self.filepath, "r") as f:
                return json.load(f)
        return []

    def _save(self):
        with open(self.filepath, "w") as f:
            json.dump(self.todos, f, indent=2, ensure_ascii=False)

    def add(self, title):
        todo = {
            "id": len(self.todos) + 1,
            "title": title,
            "done": False,
            "created": datetime.now().isoformat()
        }
        self.todos.append(todo)
        self._save()
        print(_color(f"  ✓ 已添加: {title}", Fore.GREEN))

    def list_all(self):
        if not self.todos:
            print(_color("  暂无任务", Fore.YELLOW))
            return
        for t in self.todos:
            status = _color("✓", Fore.GREEN) if t["done"] else _color("○", Fore.RED)
            title = _color(t["title"], Fore.WHITE) if not t["done"] else _color(t["title"], Fore.GREEN)
            print(f"  {status} [{t['id']}] {title}")

    def done(self, todo_id):
        for t in self.todos:
            if t["id"] == todo_id:
                t["done"] = True
                self._save()
                print(_color(f"  ✓ 已完成: {t['title']}", Fore.GREEN))
                return
        print(_color(f"  ✗ 未找到ID={todo_id}的任务", Fore.RED))

    def delete(self, todo_id):
        before = len(self.todos)
        self.todos = [t for t in self.todos if t["id"] != todo_id]
        if len(self.todos) < before:
            self._save()
            print(_color(f"  ✓ 已删除ID={todo_id}", Fore.GREEN))
        else:
            print(_color(f"  ✗ 未找到ID={todo_id}的任务", Fore.RED))

def main():
    parser = argparse.ArgumentParser(description="命令行待办事项")
    sub = parser.add_subparsers(dest="command")

    sub.add_parser("list", help="列出所有任务")

    add_p = sub.add_parser("add", help="添加任务")
    add_p.add_argument("title", help="任务标题")

    done_p = sub.add_parser("done", help="完成任务")
    done_p.add_argument("id", type=int, help="任务ID")

    del_p = sub.add_parser("delete", help="删除任务")
    del_p.add_argument("id", type=int, help="任务ID")

    args = parser.parse_args()
    mgr = TodoManager()

    if args.command == "add":
        mgr.add(args.title)
    elif args.command == "list":
        mgr.list_all()
    elif args.command == "done":
        mgr.done(args.id)
    elif args.command == "delete":
        mgr.delete(args.id)
    else:
        parser.print_help()

if __name__ == "__main__":
    main()

6.4 测试运行

在Claude Code会话中直接让它运行测试:

运行 python todo.py add "学习Claude Code" 然后运行 python todo.py list 确认功能正常

预期终端输出:

$ python todo.py add "学习Claude Code"
  ✓ 已添加: 学习Claude Code

$ python todo.py add "写第一个项目"
  ✓ 已添加: 写第一个项目

$ python todo.py list
  ○ [1] 学习Claude Code
  ○ [2] 写第一个项目

$ python todo.py done 1
  ✓ 已完成: 学习Claude Code

$ python todo.py list
  ✓ [1] 学习Claude Code
  ○ [2] 写第一个项目

6.5 添加测试并完善

继续在会话中输入:

用pytest为todo.py添加单元测试,覆盖添加、完成、删除、空列表场景。
测试应使用临时文件而非真实的todos.json。

Claude Code会创建 test_todo.py,你只需确认计划并让它执行。

# 运行测试
pip install pytest
pytest test_todo.py -v

6.6 完整工作流程

flowchart LR
    A["📁 创建项目目录"] --> B["🔧 git init"]
    B --> C["🤖 启动 claude"]
    C --> D["📝 /init 生成配置"]
    D --> E["💬 描述需求"]
    E --> F["📋 确认开发计划"]
    F --> G["⚡ 自动编码"]
    G --> H["🧪 运行测试"]
    H --> I{测试通过?}
    I -->|是| J["✅ 完成"]
    I -->|否| K["🐛 描述错误"]
    K --> G

七、成本意识与上下文管理

7.1 理解Token消耗

Claude Code每次对话都消耗Token。一个典型开发会话的Token分布:

┌────────────────────────────────────────────┐
│            Token消耗分布                    │
├────────────────────────────────────────────┤
│ ████████████████░░░░  系统提示词    ~35%    │
│ ██████████░░░░░░░░░░  你的输入      ~15%    │
│ ██████████████░░░░░░  Claude回复    ~30%    │
│ ████████░░░░░░░░░░░░  工具调用结果  ~20%    │
└────────────────────────────────────────────┘

7.2 节省Token的六个习惯

习惯 节省幅度 方法
使用 /compact 30-50% 长会话中定期压缩上下文
精准CLAUDE.md 20-30% 避免冗余信息,只写项目相关
.claudeignore 10-20% 排除 node_modules 等大目录
指定文件范围 15-25% "只看 src/index.ts" 而非 "看看代码"
分段对话 20-40% 一个会话一个任务,不要混着来
使用Sonnet模型 50-70% 日常编码用Sonnet,复杂架构用Opus

7.3 监控费用

# 在会话中随时查看
/cost

# API Key用户的典型输出:
Session: 45,230 input + 12,450 output tokens
Estimated cost: $0.34

# 订阅用户看到的是用量配额:
Session: 45,230 input + 12,450 output tokens
Usage: 2.3% of daily limit

八、IDE集成

8.1 VS Code

在VS Code中安装 Claude Code扩展:

  1. 打开VS Code
  2. 进入扩展商店(Ctrl+Shift+X)
  3. 搜索 "Claude Code"
  4. 点击安装

安装后,侧边栏出现Claude图标,支持: - Inline Diff — 直接在编辑器中查看AI修改建议 - Side Chat — 侧边栏对话 - 文件引用 — 在聊天中引用当前打开的文件

8.2 JetBrains

  1. 打开 Settings → Plugins → Marketplace
  2. 搜索 "Claude Code"
  3. 安装并重启

支持IntelliJ IDEA、PyCharm、WebStorm、GoLand等全系JetBrains IDE。


九、新手常犯的十个错误

# 错误 正确做法
1 一次提十个需求 一次一个明确任务
2 不读代码直接接受 养成审阅Diff的习惯
3 从不写CLAUDE.md 每个项目都 /init
4 会话越长越好 任务完成就 /clear 或重启
5 在Default模式下不耐烦 前几天保持Default学习行为模式
6 不提交Git就让AI改代码 改动前先commit,方便回滚
7 用模糊的提示词 "在 src/utils/format.ts 中添加日期格式化函数"
8 忘记加 .claudeignore 排除 node_modules、.env、dist
9 把API Key写在代码里 用环境变量或 .env 文件
10 不用 /plan 就动手复杂重构 复杂任务先进Plan模式确认方案

十、第一天学习路线图

flowchart TD
    A["Day 1 目标:能用会基本操作"] --> B["Hour 1: 安装与认证"]
    B --> C["Hour 2: 空目录中探索命令<br/>/help, /status, /model"]
    C --> D["Hour 3: 用现有项目练习<br/>cd 到已有项目 → /init → 提问"]
    D --> E["Hour 4: 完成待办事项实战项目"]
    E --> F["Hour 5: 理解配置层级<br/>CLAUDE.md + settings.json"]
    F --> G["Hour 6: 尝试VS Code集成"]
    G --> H["✅ Day 1 完成!"]

    style A fill:#4A90D9,color:#fff
    style H fill:#2ECC71,color:#fff

自检清单

完成第一天后,确认你能做到:


训练营适用性评估

维度 评估
适合训练营类型 AI编程入门营、Claude Code快速上手营、DevOps自动化入门
教学时长 6小时(一天集中训练)
学员前置要求 任一编程语言基础 + 终端使用经验
硬件要求 能运行Node.js的笔记本,网络连接
教学形式 讲授30% + Live Demo 30% + 动手实操40%

参考来源

  1. Quickstart - Claude Code Docs — Anthropic官方快速入门指南
  2. Claude Code Tutorial for Beginners 2026 — 从安装到首个项目的完整教程
  3. Claude Code Cheat Sheet — 命令、快捷键速查手册
  4. Choose a permission mode - Claude Code Docs — 权限模式官方文档
  5. Claude Code Tutorial - CodeWithMukesh — 2026完整入门教程

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入