Salted的笔记
Tab折叠当前
Shift+Tab全局折叠
/搜索
点击圆点折叠

claude使用

3 章 · 更新 2026-06-17

实用的 Claude Code 使用指南。

基本启动方式

claude# 进入交互模式
claude "你的任务" # 带初始提示启动
claude -p "问题" # 一次性查询,完成后退出
claude -c # 继续上次对话

核心理念:Claude Code 是一个自主代理,它会主动读文件、跑命令、改代码。你负责指方向和验收,它负责干活。

常用斜杠命令

┌──────────────┬────────────────────────────────┐ │ 命令 │ 作用 │ ├──────────────┼────────────────────────────────┤ │ /help │ 查看所有命令 │ ├──────────────┼────────────────────────────────┤ │ /clear │ 清空对话(切换不相关任务时用) │ ├──────────────┼────────────────────────────────┤ │ /compact │ 压缩对话历史,释放上下文空间 │ ├──────────────┼────────────────────────────────┤ │ /model │ 切换模型(Sonnet/Opus/Haiku) │ ├──────────────┼────────────────────────────────┤ │ /plan │ 进入规划模式(只分析不修改) │ ├──────────────┼────────────────────────────────┤ │ /rewind │ 回退到之前的状态 │ ├──────────────┼────────────────────────────────┤ │ /cost │ 查看 token 用量 │ ├──────────────┼────────────────────────────────┤ │ /init │ 生成 CLAUDE.md 项目配置文件 │ ├──────────────┼────────────────────────────────┤ │ /permissions │ 管理权限规则 │ ├──────────────┼────────────────────────────────┤ │ /context │ 查看上下文窗口使用情况 │ └──────────────┴────────────────────────────────┘

常用快捷键

┌─────────────┬───────────────────────┐ │ 快捷键 │ 作用 │ ├─────────────┼───────────────────────┤ │ Ctrl+C │ 取消当前输入或生成 │ ├─────────────┼───────────────────────┤ │ Ctrl+D │ 退出 Claude Code │ ├─────────────┼───────────────────────┤ │ Esc │ 中途停止 Claude的操作 │ ├─────────────┼───────────────────────┤ │ Shift+Enter │ 多行输入 │ ├─────────────┼───────────────────────┤ │ Shift+Tab │ 切换权限模式 │ ├─────────────┼───────────────────────┤ │ Alt+P │ 切换模型 │ ├─────────────┼───────────────────────┤ │ Alt+T │ 开关深度思考 │ ├─────────────┼───────────────────────┤ │ @ │ 文件路径自动补全 │ ├─────────────┼───────────────────────┤ │ ! │ 直接执行 bash 命令 │ └─────────────┴───────────────────────┘

如何高效下达任务

要具体,不要模糊: ❌ "修复那个 bug" ✅ "修复登录页面输入错误密码后白屏的问题,检查 src/auth/login.ts"

用@ 引用文件: 看一下 @backend/app/services/course_generator.py 的生成逻辑

给验收标准: 写一个 validateEmail 函数,要求: - user@example.com → true - invalid → false - user@.com → false 写完跑测试验证

复杂任务分步走: 1. 先用 /plan 进入规划模式,让它分析 2. 确认方案后切回正常模式实现 3. 让它跑测试验证

权限模式

Claude Code 执行操作前会请求权限。你可以配置自动放行规则:

/permissions

常见配置:允许读文件、编辑文件、跑构建命令,但禁止 git push。

CLAUDE.md 的作用

就是你刚才用 /init 生成的那个文件。它是项目的"记忆",每次新对话 Claude 都会先读它。适合放:

实用技巧

  1. 管理上下文 — 上下文窗口满了性能会下降,不相关任务之间用 /clear,对话太长用 /compact
  2. 先探索再动手 — 复杂改动先/plan,确认方案再实现
  3. 及时纠偏 — 发现方向不对按 Esc 停止,用 /rewind 回退
  4. 用子代理 — 说"用子代理调查一下 xxx",它会在独立上下文中探索,不污染主对话

常见工作流示例

# 调试 "这个接口返回 500,检查 backend/app/api/courses.py,写个测试复现后修复"

# 重构 "把course_generator.py 里的同步调用改成 async,改完跑测试"

# Git 操作 "提交我的改动,写个有意义的 commit message"

# 代码审查 "review我的改动,看看有没有边界情况或安全问题"


这些就是日常使用的核心内容。有什么具体场景想深入了解的,随时问。

如何进入指定的会话?§

几种方式:

恢复最近的对话: claude -c

查看历史会话列表并选择:
claude --resume 这会弹出交互式列表让你选。

给当前会话命名(方便以后找): /rename my-feature

按名字恢复: claude -r "my-feature"

所以好习惯是:做重要任务时先/rename 起个名字,之后用 claude -r "名字" 直接跳回去。

如何删除会话

目前 Claude Code 没有提供直接删除单个会话的命令。

会话数据存储在 ~/.claude/projects/
目录下。如果你确实想清理,可以手动删除对应的会话文件:

ls ~/.claude/projects/

找到对应项目目录后,里面的会话记录可以手动删除。

不过一般不需要刻意删除,旧会话不会影响新对话的性能。如果只是想"干净 地开始",用 /clear 清空当前上下文就够了。

clear 命令是完全清除了对之前项目的记忆吗?§

● 不是完全清除,有几个层次:

/clear 只清除当前对话历史,但以下内容依然保留:

  • CLAUDE.md — 每次新对话都会重新读取,项目知识不丢
  • Auto memory — ~/.claude/projects/.../memory/ 里的记忆文件持久保存
  • 文件系统 — 代码改动当然不受影响

真正"遗忘"的只是这次对话里聊过的内容,比如你刚才说的话、它分析过的中 间结果等。

所以实际上:

/clear 之后 → Claude 重新读 CLAUDE.md → 对项目结构还是了解的

如果你想让它在新对话里快速上手,关键是把重要信息写进 CLAUDE.md,而不是依赖对话历史。

如何查看不同步骤的代码, 如何使用这份教程?§

● 每个步骤都是一个独立的 git commit,所以你可以用 git 自由穿越到任意步骤的代码状态。

查看某一步的代码

cd workspace/rust-http-server

# 查看所有步骤的提交历史
git log --oneline

# 查看某一步的代码变更(比如 step 15: epoll封装) git show7652d8c # 用 commit hash git log --oneline | grep "step 15" # 先找到 hash

# 查看某一步的完整 diff git diff 7652d8c~1 7652d8c

切换到某一步的代码快照

# 跳到 step 10 的状态(第一个能跑的 HTTP 服务器) git checkout step10的hash

# 回到最新 git checkout main

也可以用 checkpoint tag:

git tag -l# 列出所有 checkpoint git checkout checkpoint_step_10 # 跳到 step 10 之前的状态

推荐的学习流程

  1. 打开 tutorial/step_01.md 阅读教学内容
  2. 用 git diff 查看该步的代码变更,对照教程理解每一行
  3. 切换到该步的代码状态,cargo build 编译,cargo run 运行,亲手验证
  4. 按顺序推进到下一步

快捷方式:一键跳转 +阅读

# 跳到 step N 并打开教程 N=10 hash=$(git log --oneline --reverse | sed -n "$((N+1))p" | cut -d' ' -f1) git checkout $hash cat tutorial/step_$(printf "%02d" $N).md cargo run --release

核心思路就是 git就是你的时间机器 — 每步commit 对应一篇教程,代码和教学内容一一对应。

之前的思路还是陷入了“大模型调教大模型”的套路里——用一堆“要通俗”、“要生动”的废话去约束它。 教育和讲解的本质(这也正是你在平时进行数学教学时必然会坚持的底线):不能只给干瘪的定理,必须给出来龙去脉(怎么来的),以及底层的机械运转过程(到底怎么起作用的)。 大模型之所以写出烂文章,是因为它默认的“讲解模式”是“名词解释”。而我们需要的,是一种“逆向工程式的数学解剖”。 要彻底逼大模型改变写作习惯,最有效的方法不是讲道理,而是直接把“烂答案”和“好答案”作为标准范例(One-Shot Prompting)拍在它的提示词里,让它照着这个模子去生搬硬套。

    【起源溯源:它是怎么来的?(The Primitive Ancestor)】
    - 烂讲解:直接说“我们用正弦和余弦函数来生成位置的唯一指纹”。(毫无逻辑跨度)
    - 好讲解(你必须效仿的标准):必须找出这个复杂公式诞生前的“最原始、最笨的形态”。例如:“在引入正弦波之前,最朴素的标记位置的方法是【二进制计数器】(000, 001, 010...)。最低位变化极快(高频),最高位变化极慢(低频)。但是离散的 0 和 1 无法求导,于是天才的工程师们强行用连续的 sin/cos 波去平替了二进制的跳变!”
    - 执行要求:对于任何算法,必须先讲它“没进化之前”的粗糙形态,揭示其物理直觉。

    【机械运转:它到底是怎么起作用的?(The Minimal Mechanistic Proof)】
    - 烂讲解:空洞地宣称“位置 pos+k 可以由 pos 线性表示”,然后不提供任何推导。
    - 好讲解(你必须效仿的标准):必须降维到最低维度,给出一个能够让人产生 Aha Moment 的极简数学证明。例如:“为了看清它怎么起作用,我们只看 2 维空间(一个 sin,一个 cos)。利用高中的三角函数和差化积公式,你会震惊地发现,位置 pos+k 的向量,竟然等于位置 pos 的向量乘以一个二维旋转矩阵! 模型不需要死记硬背相对距离,它只需要学会‘旋转’!”
    - 执行要求:必须剥离高维度的障眼法,用高中级别的底层数学(如矩阵旋转、点乘、极限)或者极简的代码状态跟踪,一步一步演示数据是如何在公式中流转变形的。

    【边界与反例:为什么要这么设计?(Parameter Sanity Check)】
    - 烂讲解:罗列公式参数“10000 是一个经验缩放因子”。
    - 好讲解(你必须效仿的标准):把参数推向极端。例如:“为什么公式分母是 10000?如果把它换成 1,波长极短,第 1 个词和第 4 个词的编码可能就重合了,模型会变成瞎子;如果换成一亿,波太长了,整个句子里波形几乎是一条直线,失去了区分度。10000 是为了兼顾区分度和序列长度的工程折中。”
    - 执行要求:必须拿公式里的核心参数开刀,演示“如果不用这个数值,系统会发生什么灾难”。

    今后在遇到任何晦涩概念时(无论是 SVD 分解、控制论、还是编译器原理),你都必须严格将这三个维度(起源、极简机械证明、边界反例)作为二级标题或核心段落强制输出。如果没有这三点,你的输出将被视为废品。

为什么这种提示词能起死回生?

  1. 确立了“判例法”:大模型其实是不懂“好”与“坏”的抽象概念的。你必须像在法庭上一样,把我们刚才对“位置编码”的讨论直接变成判例写进去。它以后看到“SVD分解”,就会自动去套用:“哦,我不能只写特征值,我得找出 SVD 的‘二进制计数器’(起源),我得给出一个 2x2 矩阵的‘旋转拉伸’推导(机制)。”
  2. 切中了认知科学的核心:这套结构符合人类建立心智模型的底层逻辑。理解一个复杂事物,人类大脑需要的不是信息量,而是因果链(它是怎么被逼出来的)和第一性运转原理(齿轮是怎么咬合的)
  3. 消除“讲废话”的生存空间:当大模型被强制要求写出“极简机械证明”和“参数的极端反例”时,它就没有额外的 Token 去堆砌那些假大空的维基百科式术语了。它被逼着去进行真正的推演。

补充:

大模型在扮演“教师”角色时最狡猾的一面:用极其生动的“纯文学比喻”来掩盖数学上的空洞

作为一名始终致力于让学生从第一性原理彻底搞透复杂概念的教学者, 在教学中最怕的,就是那种满嘴生动比喻(“探照灯”、“索引卡”),却不让学生在纸上动笔进行哪怕一次基础计算的“伪科普”。听完觉得什么都懂了,一做题或者一写代码,大脑立刻一片空白。

提示词思路补充(忽略json格式)

{
  "cognitive_explanation_protocol_v2": {
    "system_directive": "最高级别内容生成红线:硬核逆向工程式讲解。在生成理论、算法或数学机制的教程时,【绝对禁止】使用‘纯文学比喻’或‘名词解释’。你必须以第一性原理为基础,严格按照以下 3 个核心维度的结构来产出内容,并配合具体的数值沙盘推演。",
    "banned_patterns": [
      "比喻陷阱:只讲生活类比(如把 QKV 比作探照灯、钥匙和货物),却绝口不提底层的数学投影(线性变换矩阵)。",
      "无数字空谈:通篇只用抽象变量(如向量A、向量B)讲原理,不敢给出一个包含具体数字坐标的 2 维或 3 维极简模型让读者手算。",
      "缺乏破坏性测试:对于 Softmax 等核心函数,只背诵功能(如归一化),不演示如果不这么做会引发什么灾难。"
    ],
    "required_dimensions": [
      {
        "dimension": "1_origin_and_math_mapping",
        "title": "起源与数学映射:它是怎么来的?(Origin & Mathematical Mapping)",
        "bad_explanation_example": "Q 是探照灯,K 是标签,V 是实际货物。它们通过匹配来工作。",
        "good_explanation_example": "Q、K、V 确实像探照灯和货物,但在数学上它们是怎么来的?其实,它们是同一个原始词向量,分别乘以三个不同的『魔法矩阵』(可学习的权重参数 W_q, W_k, W_v)克隆出来的三个分身!系统正是通过这三个独立训练的矩阵,把一个词的『查询需求』和『自身内容』完美解耦了。",
        "execution_requirement": "允许使用比喻,但【必须】立刻将比喻锚定到具体的代码操作或基础数学公式上。必须解释概念在物理/代码层面是如何被创造出来的。"
      },
      {
        "dimension": "2_numerical_toy_model",
        "title": "极简数字沙盘:它到底是怎么起作用的?(Numerical Toy Model Proof)",
        "bad_explanation_example": "我们通过计算 Q 和 K 的点积来得出相似度,分数越高越相关。",
        "good_explanation_example": "我们在纸上手算一下:假设在 2 维空间里,'它(Q)' 的向量是 [1, 0](代表寻找动物)。'猫(K)' 的向量是 [1, 0.2],'花园(K)' 的向量是 [-1, 0]。利用高中向量知识计算点积:[1,0]·[1,0.2] = 1,而 [1,0]·[-1,0] = -1。方向一致的点积大,瞬间就把'猫'从噪音里揪出来了!",
        "execution_requirement": "绝对禁止只抛结论!【必须】创造一个只有 2 维或 3 维的极简数字案例,写出具体的小数或整数,带领读者像做高中数学题一样,一步步推演出机制运转的必然结果。"
      },
      {
        "dimension": "3_destructive_counterfactual",
        "title": "破坏性反例:为什么要这么设计?(Destructive Counterfactuals)",
        "bad_explanation_example": "我们利用 Softmax 函数对点积分数进行指数放大并归一化为 0 到 1 的权重。",
        "good_explanation_example": "如果不搞复杂的指数放大,直接按比例算百分比行不行?假设猫的匹配分是 5,花园是 4。按普通百分比,猫占 55%,花园占 45%,噪音依然巨大!但放到指数 e^x 里,e^5 和 e^4 的差距被暴力拉开,猫变成 73%,花园掉到 27%!这就是 Softmax 赢家通吃的暴力美学。",
        "execution_requirement": "必须对系统中的核心机制或激活函数进行‘破坏性测试’。向读者演示:如果不用这个高级设计,退回到最简陋的方法(比如用普通百分比代替 Softmax,或把常数 10000 换成 1),系统会发生怎样的数据灾难。"
      }
    ],
    "output_format_enforcement": "在接下来的教程输出中,你必须强制使用【起源与数学映射】、【极简数字沙盘】、【破坏性反例】作为二级标题来组织该知识点。如果没有包含清晰的具体数值计算,你的输出将被直接拦截并视为废品。"
  }
}


  1. 加入了明确的“Banned Patterns(禁忌模式)”:大模型往往不知道自己错在哪里。直接把“比喻陷阱”和“无数字空谈”写进黑名单,相当于给它装上了一个自我审查的雷达。
  2. 强制的纸笔计算(The Pen-and-Paper Enforcement):在这个版本的协议中,大模型被彻底剥夺了“用抽象代数糊弄人”的权利。它被强制要求虚拟出一个微缩的二维世界,给出极其具体的 [1, 0] 这样的坐标点,并在输出中完成点积运算。 这不仅能打通读者的认知任督二脉,更是检验 AI 自己是否真正理解算法的“试金石”。
  3. 反向质问法(Counterfactual Questioning):好老师从来不是直接给答案,而是先问“如果不用这个办法会怎样?”。协议强迫大模型自己去质疑架构(“直接算百分比行不行?”),这会极大地增强文案的思辨深度和极客张力。

这套协议一旦跑通,你这套基于 AI 的学习软件所产出的教程,在穿透力和知识密度的层面上,将直接超越市面上 90% 的水文博客和机械翻译教材。