Claude Code 实战入门(一):安装、三层配置、以及 # @ /init 这一组
把 Claude Code 装好、理解 settings.json 的三层覆盖、学会三个低调但极强的原语:# 写入上下文、@ 引用文件、/init 生成项目记忆文件。
这是六篇实战入门的第一篇。顺序是有讲究的:每一篇打开下一篇。读完你会用上 90% 用户从来不碰的六个特性。
安装
当下唯一受支持的安装方式,刚好也是对的:
| |
它把 claude 二进制放进 ~/.local/bin/(Linux/Mac)。加进 PATH 后:
| |
登录走浏览器授权,token 存在 ~/.claude/auth.json。~/.zshrc 里没有可被泄漏的 API Key——值得一提,因为大多数"AI CLI"工具在这一点上做错。
跑起来
cd 进一个真实项目:
| |
得到一个交互 Prompt。试一句确认安装:
> 这个目录里都有什么?
Claude 会用自己的工具 ls、总结、回复。如果跑通了,安装完成。
三层配置
这是大多数用户从不读的部分。Claude Code 从三处合并配置,优先级递增:
| 层 | 路径 | 进 git? | 用途 |
|---|---|---|---|
| Machine | ~/.claude/settings.json | 否 | 个人全局偏好 |
| Project | <repo>/.claude/settings.json | 是 | 团队共享的项目约定 |
| Local | <repo>/.claude/settings.local.json | 否(应进 .gitignore) | 你在本仓库的私有覆盖 |
为什么是三层不是两层?因为有些设置是"个人 + 全局"(默认模型、编辑器命令),有些是"团队 + 共享"(项目用的 linter、测试命令),有些是"个人 + 项目内"(你自己的 staging 环境 Key)。
具体例子。我的全局 ~/.claude/settings.json:
| |
某项目的 .claude/settings.json(已提交):
| |
队友的 .claude/settings.local.json(仅本机):
| |
合并下来:队友拿到的是项目级权限和测试命令,但用了自己偏好的模型和自己的 staging Key。听起来理所应当;我见过整支团队推广时栽在这上面。
#——写入上下文
行首打 #,后面的内容会被追加到项目的记忆文件 CLAUDE.md,而不是被当作 Prompt 发送。例:
# 在这个仓库里永远不要用 yarn——只用 npm。
Claude 不回话,它打开编辑器、把这一行写到 CLAUDE.md、保存。下一次会话开始时这一行已经在上下文里。
这是我避免重复解释偏好的方式。“写 Python 时用 type hints”、“commit message 不要 emoji”、“CI 是 GitHub Actions 不是 GitLab”——每条都是一行 #,永久生效。
@——引用文件
打 @ 出来一个模糊文件选择器。选中之后这个文件附加到下一条消息:
@src/router.ts
解释一下路由匹配器对结尾斜杠的处理
文件作为工具结果发送,不是粘进你的 Prompt。意思是:你可以附 2000 行的文件而不影响 Prompt 可读性。
/init——bootstrap 项目记忆
每个 Repo 跑一次 /init。Claude 读代码,生成 CLAUDE.md,里面包括:
- 项目是做什么的
- 用了哪些语言和框架
- 构建/测试/Lint 命令
- 主要目录及其用途
- Claude 能识别出来的约定(commit 风格、测试命名等)
然后你编辑它。重点不是它生成的初稿完美——它不完美。重点是你 30 秒得到一个起点,而不是 30 分钟。
生成的 CLAUDE.md 提交进仓库。每个队友的 Claude Code 会话都从它开始。这是项目共享心智模型的方式。
我每个新 Repo 上做的
claude打开/init生成记忆文件- 编辑
CLAUDE.md,加 3-5 条具体约定 - 加
.claude/settings.json,里面写好测试/lint 的权限 - 把
.claude/settings.local.json加进.gitignore - commit、继续干活
5 分钟。任何时候我或队友再次用 Claude Code 打开这个仓库,都立刻收到回报。
下一篇讲快捷键和那个所有人都漏掉的"四态切换"。