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 编程环境。
最重要的几点:
- CLAUDE.md 是灵魂 — 花时间写好它,AI 会更懂你的项目
- 权限要分层 — allow/deny/ask 三级管控,安全与效率兼顾
- 沙箱 + YLOO = 安全自动 — 高度重复的任务交给 AI,你只管审查
- 自定义指令是效率倍增器 — 把重复工作流封装成
/xxx一键触发
参考资料:
- Claude Code 官方文档
- D2 2026 大会分享:《Skills - 宝玉》