菇太帷i Lv4

Claude Code 使用指南

维度 AI IDE (Cursor / Trae / Windsurf) AI CLI (Claude Code / Gemini CLI)
界面 图形界面(代码编辑器强绑定 命令行/终端,编辑器无关
交互方式 可视化、实时反馈、多窗口对比 纯文本交互,命令触发
适用场景 大部分编码流程、调试、协作 批量重构、复杂 Bug 追踪、自动化运维、服务器/远程环境
集成深度 集成编译、调试器、插件生态 直接操作 Shell、运行测试、管理 Git
自执行能力 通常需要依赖 UI 界面的人机交互 更倾向任务自动执行、可脚本化

概述

Claude Code 是 Anthropic 推出的官方 AI 编程助手,通过命令行界面提供强大的代码生成、项目理解和开发辅助功能。本文档总结了 Claude Code 的核心功能、最佳实践和使用技巧。

安装

Claude Code 概述 - Claude Code Docs

API 配置指南

基础配置

建议使用 settings.json 配置文件方式,相比环境变量更安全且易于管理:

  • 用户设置在 ~/.claude/settings.json 中定义,适用于所有项目。
  • 项目设置保存在您的项目目录中:
    • .claude/settings.json 用于检入源代码控制并与您的团队共享的设置
    • .claude/settings.local.json 用于未检入的设置,适用于个人偏好和实验。Claude Code 将在创建 .claude/settings.local.json 时配置 git 以忽略它。
1
2
3
4
{
"ANTHROPIC_AUTH_TOKEN": "你的Claude Code专属组令牌密钥",
"ANTHROPIC_BASE_URL": "中转商API地址",
}

同时 Claude Code 也支持其他模型的接入,例如

快速接入工具推荐:cc-switch

核心功能与命令

斜杠命令系统

Claude Code 提供丰富的斜杠命令:

  • /resume - 恢复历史会话
  • /memory - 在系统编辑器中打开记忆文件
  • /model - 切换模型(支持 Claude Opus 与 Claude Sonnet 4)
  • /cost - 查看当前会话使用情况
  • /exit - 退出当前会话

交互模式快捷键

  • 快速换行:输入 \ 后按 Enter
  • 退出方式:按 Ctrl-C 两次或 Ctrl-D 两次
  • 自定义快捷键:配置后使用 Option+Enter 或 Shift+Enter

CLI 命令参考

1
2
3
4
5
6
7
8
9
10
# 基础命令
claude # 启动交互式 REPL
claude "查询" # 以初始提示启动 REPL
claude -p "查询" # 运行一次性查询后退出
claude config # 配置设置
claude update # 更新到最新版本

# MCP 配置
claude mcp add <名称> <命令> [参数...]
claude mcp add my-server -e API_KEY=123 -- /path/to/server arg1 arg2

CLAUDE.md 文件机制

CLAUDE.md 是项目上下文记忆文件,Claude Code 会在对话开始时自动加载。它类似于 Cursor 的 rules 规则文件,但功能更强大。

CLAUDE.md 适合记录的内容

  • 常用的 bash 命令
  • 核心文件和实用函数
  • 代码风格指南
  • 测试说明
  • 代码仓库规范(如分支命名、合并与变基策略)
  • 开发者环境设置(如使用 pyenv、可用的编译器)
  • 项目特有的任何意外行为或警告

示例 CLAUDE.md 结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 项目名称

## 项目概述
简要描述项目的目的和主要功能

## 技术栈
- 前端:React + TypeScript
- 后端:Node.js + Express
- 数据库:PostgreSQL

## 常用命令
- 运行开发服务器:`npm run dev`
- 运行测试:`npm test`
- 构建项目:`npm run build`

## 代码规范
- 使用 ESLint 和 Prettier
- 遵循 Airbnb JavaScript 风格指南
- 组件使用函数式组件和 Hooks

## 注意事项
- 环境变量存储在 .env 文件中
- 提交前确保通过所有测试

自定义命令

Claude Code 支持两种级别的自定义命令:

  1. 用户级命令:放在 ~/.claude/commands 目录下
  2. 项目级命令:放在当前项目 .claude/commands 目录下

使用方式:

  • 用户级命令:/user:命令名
  • 项目级命令:/project:命令名

自定义命令示例

创建 .claude/commands/test.md

1
2
3
4
5
6
# 运行测试套件

请运行项目的完整测试套件,并分析任何失败的测试。

```bash
npm test

如果有测试失败,请:

  1. 分析失败原因
  2. 提供修复建议
  3. 询问是否需要自动修复

最佳实践

1. 具体化你的需求

避免笼统的指令,如”修复这个漏洞”。相反,提供具体信息:

  • 错误的具体表现
  • 期望的行为
  • 相关的文件或代码片段

2. 批量处理小任务

对于小任务或模块,一次性提供完整需求,让 Claude Code 一次性生成结果,提高整体效率。

3. 利用 Claude Code 作为 Linux 智能助手

无需记住繁杂的 Linux 命令,直接描述你想要做的事情。

4. 项目组织建议

在项目根目录创建并维护 CLAUDE.md 文件,帮助 Claude Code 更好地理解项目上下文。

总结

Claude Code 是一个强大的 AI 编程助手,通过合理配置和使用最佳实践,可以显著提高开发效率。记住:

  1. 维护良好的 CLAUDE.md 文件
  2. 使用具体明确的指令
  3. 选择性价比高的 Sonnet 模型
  4. 利用自定义命令和 MCP 扩展功能

通过这些技巧,你将能够充分发挥 Claude Code 的潜力,让它成为你的得力编程助手。

命令总览

常规控制
快捷键 描述 上下文
Ctrl+C 取消当前输入或生成 标准中断
Ctrl+D 退出 Claude Code 会话 EOF 信号
Ctrl+L 清除终端屏幕 保留对话历史
Ctrl+O 切换详细输出 显示详细的工具使用和执行情况
Ctrl+R 反向搜索命令历史 交互式搜索以前的命令
Ctrl+V (macOS/Linux) 或 Alt+V (Windows) 从剪贴板粘贴图像 粘贴图像或图像文件的路径
Up/Down arrows 导航命令历史 回忆以前的输入
Esc + Esc 回退代码/对话 将代码和/或对话恢复到之前的状态
Tab 切换 扩展思考 在思考开启和思考关闭之间切换
Shift+Tab 或 Alt+M (某些配置) 切换权限模式 在自动接受模式、计划模式和正常模式之间切换
内置斜杠命令
命令 用途
/add-dir 添加额外的工作目录
/bug 报告错误(将对话发送给 Anthropic)
/clear 清除对话历史
/compact [instructions] 压缩对话,可选择性地提供重点指令
/config 查看 / 修改配置
/cost 显示令牌使用统计
/doctor 检查您的 Claude Code 安装的健康状况
/help 获取使用帮助
/init 使用 CLAUDE.md 指南初始化项目
/login 切换 Anthropic 账户
/logout 从您的 Anthropic 账户登出
/mcp 管理 MCP 服务器连接和 OAuth 身份验证
/memory 编辑 CLAUDE.md 内存文件
/model 选择或更改 AI 模型
/permissions 查看或更新权限
/pr_comments 查看拉取请求评论
/review 请求代码审查
/status 查看账户和系统状态
/terminal-setup 安装 Shift+Enter 键绑定用于换行(仅限 iTerm2 和 VSCode)
/vim 进入 vim 模式,在插入和命令模式之间切换

实践

命令 功能说明
/claude 在当前目录启动交互式 REPL,对话式使用 Claude Code。
/claude “解释这个项目” 启动 REPL 并带上初始问题,一进来就让 Claude 分析项目。
/claude -p “解释这个函数” 使用 print 模式一次性问答,输出结果后直接退出,便于脚本/CI 调用。
/cat logs.txt | claude -p “帮我总结错误” 将文件或命令输出通过管道喂给 Claude,再配合 -p 做总结、分析。
/claude -c 继续当前目录最近的一次会话,在原有上下文里接着聊。
/claude -c -p “检查类型错误” 在最近会话上下文中执行一次性请求,常用于自动化检查。
/claude -r “abc123” “把这个 PR 完成” 通过会话 ID 恢复指定会话,并继续执行新的任务。
/claude update 将 Claude Code CLI 更新到最新版本。
/claude mcp 管理和配置 MCP 服务器,让 Claude 能访问外部数据源和工具。
/claude –add-dir ../apps ../lib 为 Claude 额外添加可访问的代码目录,支持跨多个路径读代码。
/claude –agents ‘{“reviewer”:{…}}’ 通过 JSON 临时定义子 Agent,例如 code-reviewer、debugger 等。
/claude -p “生成接口文档” –output-format json 使用 JSON 格式输出回答,方便后续脚本解析处理。
/claude –model sonnet 指定会话使用的模型(如 sonnet / opus 或具体模型名)。
/claude –verbose 打开详细日志,显示工具调用和内部步骤,便于调试。
/claude –resume abc123 “继续修这个 Bug” 通过会话 ID 恢复会话,在任意目录继续之前的工作。
/claude –continue 载入当前目录最近的一次会话,相当于“继续上次对话”。
/claude –append-system-prompt “始终使用 TypeScript” 在默认系统提示后追加自定义规则,不影响默认行为。
/claude –dangerously-skip-permissions 跳过权限确认,让 Claude 自动执行读写文件/运行命令(高风险,仅在完全信任环境使用)。
执行命令
描述 示例
allow 权限规则 数组以允许工具使用。注意: Bash 规则使用前缀匹配,而不是正则表达式 [ "Bash(git diff:*)" ]
ask 权限规则 数组以在工具使用时请求确认。 [ "Bash(git push:*)" ]
deny 权限规则 数组以拒绝工具使用。使用此选项也可以排除敏感文件不被 Claude Code 访问。注意: Bash 模式是前缀匹配,可能被绕过(请参阅 Bash 权限限制 [ "WebFetch", "Bash(curl:*)", "Read(./.env)", "Read(./secrets/**)" ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
“permissions”: {  
“allow”: [
“Bash(defaults read:_)",
"Bash(plutil:_)”,
“Bash(frida:_)",
"Bash(cat:_)”,
“Bash(ls:_)",
"Bash(pwd:_)”,
“Bash(file:_)",
"Bash(stat:_)”,
“Bash(du:_)",
"Bash(tree:_)”,
“Bash(which:_)",
"Bash(whereis:_)”,
“Bash(pgrep:_)",
"Bash(nm:_)”,
“Bash(otool:_)",
"Bash(chmod:_)”,
“Bash(md5:_)",
"Bash(find:_)”,
“Bash(head:_)",
"Bash(tail:_)”,
“Bash(grep:_)",
"Bash(wc:_)”,
“Bash(sort:_)",
"Bash(uniq:_)”,
“Bash(awk:_)",
"Bash(sed:_)”,
“Bash(xargs:_)",
"Bash(dirname:_)”,
“Bash(basename:_)",
"Bash(realpath:_)”,
“Bash(cd:_)",
"Bash(cp:_)”,
“Bash(mv:_)",
"Bash(mkdir:_)”,
“Bash(touch:_)",
"Bash(echo:_)”,
“Bash(printf:_)",
"Bash(date:_)”,
“Bash(cal:_)",
"Bash(env:_)”,
“Bash(export:_)",
"Bash(uname:_)”,
“Bash(hostname:_)",
"Bash(whoami:_)”,
“Bash(id:_)",
"Bash(groups:_)”,
“Bash(ps:_)",
"Bash(top:_)”,
“Bash(htop:_)",
"Bash(kill:_)”,
“Bash(killall:_)",
"Bash(jobs:_)”,
“Bash(bg:_)",
"Bash(fg:_)”,
“Bash(nohup:_)",
"Bash(diff:_)”,
“Bash(cmp:_)",
"Bash(comm:_)”,
“Bash(cut:_)",
"Bash(paste:_)”,
“Bash(join:_)",
"Bash(tr:_)”,
“Bash(rev:_)",
"Bash(tee:_)”,
“Bash(less:_)",
"Bash(more:_)”,
“Bash(xxd:_)",
"Bash(hexdump:_)”,
“Bash(od:_)",
"Bash(strings:_)”,
“Bash(readlink:_)",
"Bash(ln:_)”,
“Bash(tar:_)",
"Bash(gzip:_)”,
“Bash(gunzip:_)",
"Bash(zip:_)”,
“Bash(unzip:_)",
"Bash(bzip2:_)”,
“Bash(xz:_)",
"Bash(sha1sum:_)”,
“Bash(sha256sum:_)",
"Bash(shasum:_)”,
“Bash(base64:_)",
"Bash(openssl:_)”,
“Bash(curl:_)",
"Bash(wget:_)”,
“Bash(ping:_)",
"Bash(traceroute:_)”,
“Bash(dig:_)",
"Bash(nslookup:_)”,
“Bash(host:_)",
"Bash(ifconfig:_)”,
“Bash(netstat:_)",
"Bash(lsof:_)”,
“Bash(df:_)",
"Bash(mount:_)”,
“Bash(diskutil:_)",
"Bash(sw_vers:_)”,
“Bash(system_profiler:_)",
"Bash(sysctl:_)”,
“Bash(launchctl:_)",
"Bash(xcode-select:_)”,
“Bash(xcrun:_)",
"Bash(codesign:_)”,
“Bash(security:_)",
"Bash(dscl:_)”,
“Bash(spctl:_)",
"Bash(csrutil:_)”,
“Bash(pmset:_)",
"Bash(scutil:_)”,
“Bash(networksetup:_)",
"Bash(mdls:_)”,
“Bash(mdfind:_)",
"Bash(xattr:_)”,
“Bash(ditto:_)",
"Bash(hdiutil:_)”,
“Bash(pkgutil:_)",
"Bash(installer:_)”,
“Bash(lipo:_)",
"Bash(install_name_tool:_)”,
“Bash(dsymutil:_)",
"Bash(dwarfdump:_)”,
“Bash(lldb:_)",
"Bash(objdump:_)”,
“Bash(size:_)",
"Bash(c++filt:_)”,
“Bash(swift:_)",
"Bash(swiftc:_)”,
“Bash(clang:_)",
"Bash(clang++:_)”,
“Bash(gcc:_)",
"Bash(g++:_)”,
“Bash(make:_)",
"Bash(cmake:_)”,
“Bash(xcodebuild:_)",
"Bash(pod:_)”,
“Bash(carthage:_)",
"Bash(brew:_)”,
“Bash(port:_)",
"Bash(gem:_)”,
“Bash(pip:_)",
"Bash(pip3:_)”,
“Bash(python:_)",
"Bash(python3:_)”,
“Bash(node:_)",
"Bash(npm:_)”,
“Bash(npx:_)",
"Bash(yarn:_)”,
“Bash(pnpm:_)",
"Bash(bun:_)”,
“Bash(deno:_)",
"Bash(go:_)”,
“Bash(cargo:_)",
"Bash(rustc:_)”,
“Bash(java:_)",
"Bash(javac:_)”,
“Bash(mvn:_)",
"Bash(gradle:_)”,
“Bash(ruby:_)",
"Bash(irb:_)”,
“Bash(perl:_)",
"Bash(php:_)”,
“Bash(lua:_)",
"Bash(git:_)”,
“Bash(gh:_)",
"Bash(svn:_)”,
“Bash(hg:_)",
"Bash(docker:_)”,
“Bash(docker-compose:_)",
"Bash(kubectl:_)”,
“Bash(helm:_)",
"Bash(terraform:_)”,
“Bash(ansible:_)",
"Bash(vagrant:_)”,
“Bash(virtualenv:_)",
"Bash(conda:_)”,
“Bash(pyenv:_)",
"Bash(nvm:_)”,
“Bash(rbenv:_)",
"Bash(jenv:_)”,
“Bash(sqlite3:_)",
"Bash(mysql:_)”,
“Bash(psql:_)",
"Bash(redis-cli:_)”,
“Bash(mongo:_)",
"Bash(jq:_)”,
“Bash(yq:_)",
"Bash(xmllint:_)”,
“Bash(pbcopy:_)",
"Bash(pbpaste:_)”,
“Bash(open:_)",
"Bash(osascript:_)”,
“Bash(say:_)",
"Bash(afplay:_)”,
“Bash(screencapture:_)",
"Bash(sips:_)”,
“Bash(qlmanage:_)",
"Bash(textutil:_)”,
“Bash(man:_)",
"Bash(info:_)”,
“Bash(help:_)",
"Bash(apropos:_)”,
“Bash(type:_)",
"Bash(alias:_)”,
“Bash(unalias:_)",
"Bash(source:_)”,
“Bash(eval:_)",
"Bash(exec:_)”,
“Bash(time:_)",
"Bash(timeout:_)”,
“Bash(watch:_)",
"Bash(sleep:_)”,
“Bash(wait:_)",
"Bash(true:_)”,
“Bash(false:_)",
"Bash(test:_)”,
“Bash(seq:_)",
"Bash(yes:_)”,
“Bash(tput:_)",
"Bash(clear:_)”,
“Bash(reset:_)",
"Bash(stty:_)”,
“Bash(tty:_)",
"Bash(script:_)”,
“Bash(screen:_)",
"Bash(tmux:_)”,
“Write”,
“Edit”
],
“deny”: [
“Bash(rm -rf /)”,
“Bash(rm -rf /_)",
"Bash(mkfs:_)”,
“Bash(dd if=/dev/zero of=/dev/*)”
]
},
  • 标题:
  • 作者: 菇太帷i
  • 创建于 : 2026-03-27 07:06:49
  • 更新于 : 2026-03-27 07:06:49
  • 链接: https://blog.gutawei.com/2026/03/27/Technology Stack/Claude Code 使用/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论