Claude Code FAQ:入门指南

10 分钟阅读

相关FAQ导航

概念与定位

claude code 是什么?与 Claude Chat 或 Claude Desktop 有何区别?

Claude Code 是由 Anthropic 提供的命令行 AI 辅助编码工具,它直接在本地终端运行,帮助开发者自动生成和修改代码[1]。与基于浏览器或桌面应用的 Claude Chat 不同,Claude Code 完全集成在您的开发环境中(终端/IDE),"在您已有的工具链中工作,而不是增加另一个界面"[2]。它可直接执行命令、编辑文件并提交更改,实现深度的代码协作。Claude Desktop 通常指桌面版的聊天应用,而 Claude Code 则专注于终端里的编程工作流[3][2]

claude code 的核心能力有哪些?

Claude Code 专为代码任务优化,具备以下核心能力:

  • 理解和导航整个代码库:它保持对项目结构的全面"意识",可在百万行级别的仓库中进行快速智能搜索,无需手动提供上下文[4][5]
  • 自动化代码生成与重构:输入自然语言需求后,Claude Code 会制定计划、编写代码并确保其可运行,支持跨文件协调修改[4][6]
  • 调试和修复缺陷:描述错误或提供报错信息,Claude Code 能定位问题并提供修复建议和代码修正。
  • 运行命令和集成工具:它可以在会话中执行终端命令(如运行测试、构建项目、推送提交等),与 CI/CD 系统和版本控制无缝集成[7][8]
  • 自动化繁琐任务:例如代码审查、合并冲突解决、编写发布说明等,都可在一次交互中完成,从而"按下开发者机器上的单一命令"达到自动化目标[9]

如何在本地终端执行并展示结果?

安装完成后,在项目根目录打开终端,输入 claude 命令即可启动交互式会话(或使用 claude "你的问题" 直接发送初始提示)[10]。Claude Code 会在终端打印 AI 的回复和操作建议,并在需要时提示您确认运行命令或应用代码更改。比如在 VS Code/JetBrains 集成环境中,还可以在 IDE 的差异查看器中查看文件修改[11]。总之,Claude Code 就像一个 CLI 应用,它把所有 AI 响应直接输出在终端或 IDE 窗口中,便于阅读和操作。

claude code 是否收集、训练或保留我的数据与日志?

Anthropic 明确表示,默认情况下不会使用您通过 Claude Code 发送的代码或对话来训练其生成式模型[12]。您的会话和代码会被发送到 Anthropic 服务器进行实时处理(以 TLS 加密传输)[13],但不会被用于模型训练(除非您显式加入《开发者合作伙伴计划》并允许使用数据)[12][14]。会话记录通常不会长时间保留:如果您使用具有"零数据保留"协议的组织 API 密钥,Claude Code 服务端不会保存任何会话历史,本地客户端则默认保留最近会话记录最长 30 天以便恢复[15]。另外,Claude Code 会收集基础的性能遥测(通过 Statsig)和错误日志(通过 Sentry),但这不会包含您的代码内容或文件路径[16][17]。只有在您使用 /bug 命令报告问题时,全会话(包括代码)才会发送给 Anthropic 以调试,并可选地创建公开的 GitHub 问题[17]。总的来说,除非您主动发送反馈,否则不会主动训练您的私有代码或长期保存会话日志。

claude code 是否保存会话或提供备份与恢复?

Claude Code 支持会话的本地持久化:客户端会将当前会话临时保存在本地,最多保留约 30 天,以便您可以使用命令(如 claude --resume <会话ID>claude -c 继续最近的会话)恢复之前的对话[18][15]。这些会话数据默认只存储在本地机器上,不会自动上传到云端。要明确恢复特定会话,可以在启动时使用 claude -r <会话ID> "继续对话"[19]。目前没有自动云备份功能,建议您自行在需要时导出关键信息。如果需要回滚操作,也可利用版本控制系统配合 Claude 生成的提交记录来恢复。

claude code 如何理解并处理大型代码库?

Claude Code 采用"agentic 搜索"技术,能在无需显式指定文件或上下文的情况下探索整个代码仓库[4]。它保持对项目结构的全局认识,并使用高达数百万 token 的上下文窗口(团队版最高 20 万 token)来理解大型代码库[5][4]。简单来说,您不必手动复制粘贴代码内容;Claude Code 会自动查找相关代码并提取要点。当上下文接近上限时,它还会自动进行对话压缩(摘要)以腾出空间[20]。因此,无论仓库有多大,Claude Code 都可以智能地定位相关部分并进行修改。您也可以使用 /add-dir 等命令手动添加额外的目录到上下文中,或使用 CLAUDE.md 指南文件(详见记忆管理)帮助 Claude 理解项目结构。

claude code 与 Sonnet、Opus 等模型是什么关系?

Claude Code 基于 Claude 系列的大型语言模型运行,其中 Sonnet(Claude 3.5)和 Opus(Claude 4)是两种主要型号。不同订阅级别可以访问不同模型:Pro 计划用户只能使用 Sonnet 4,无法在 Code 中调用 Opus 4[21];Max 计划用户则可在代码会话中自由切换 Sonnet 和 Opus(通过 /model sonnet/model opus 命令)[22]。一般而言,Opus 4(比如最新的 Opus 4.1)提供更强的理解和生成能力,适合复杂的大规模代码任务[8][22];Sonnet 4 在小型仓库或基本任务中表现良好并且消耗较少配额[21]。Claude Code 会默认使用当前订阅允许的最高模型——对 Max 用户即 Opus,对 Pro 用户即 Sonnet。当然,您可以在会话中手动切换模型,或在启动时用 claude --model 参数指定具体版本[23][21]

claude code 的主要技术栈是什么?

Claude Code 本质上是一个基于 Node.js 的命令行应用(可通过 npm 安装或使用原生安装脚本)[10][13]。它作为客户端运行在本地,与 Anthropic 云端 API 进行交互以调用 AI 模型[13]。在开发上,它使用常见的 JS/TS 库,网络通信通过 TLS 加密,遥测上则采用 Statsig(性能指标)和 Sentry(错误日志)服务[16]。此外,Claude Code 的配置和扩展(如 IDE 插件、Hooks、MCP)也基于现代开发工具(如 VS Code 插件、Markdown 文档等)构建。总的来说,它是一个轻量的 Node 应用,聚焦于代码理解和自动化,与您的现有开发工具链(Git、构建工具、包管理等)深度整合。

安装 / 卸载 / 更新

如何下载并安装 claude code?

官方推荐的安装方法是:确保已安装 Node.js(v18+),然后在终端运行:npm install -g @anthropic-ai/claude-code[10]。也可以使用原生安装脚本(对于 macOS/Linux/WSL):curl -fsSL https://claude.ai/install.sh | bash[24]。在 macOS 上,您还可以使用 Homebrew Cask:brew install --cask claude-code[25]。安装完成后,使用 claude doctor 检查安装是否成功。

如何在 Windows 原生环境安装 claude code?

Windows 支持使用 PowerShell 原生安装包。以管理员身份打开 PowerShell,执行:irm https://claude.ai/install.ps1 | iex[26]。这会下载并安装适合您系统的版本。Windows 安装通常会在用户目录下创建 ~\.claude\local\bin\claude 的可执行文件。安装后,也可直接在 PowerShell 中运行 claude 检查版本。注意:如果使用 WSL,请在 WSL 内安装 Linux 版本(见下文),不要混用 Windows 与 Linux 的 Node.js。

如何在 macOS(含 Homebrew)安装 claude code?

在 macOS 上,最简单的方法是通过 Homebrew:brew install --cask claude-code[25]。这个安装包会放置一个 claude 可执行在 /usr/local/bin/opt/homebrew/bin(取决于芯片)之外,工具会默认自带自动更新。安装后,第一次运行前建议运行 claude doctor 以查看安装信息。如果您希望使用 npm 安装,也可在终端执行与 Linux 相同的 npm install -g @anthropic-ai/claude-code 或运行官方脚本。

如何在 Linux 或 WSL 安装 claude code?

在 Linux 发行版或 WSL(Windows 子系统)中,可以使用 npm 方式安装:npm install -g @anthropic-ai/claude-code[10]。请确保 Node.js 是 Linux 环境下的版本(避免 WSL 将 Windows Node 路径导入)。若安装时报错(如"node: not found"),请使用 Linux 版 Node 或调整 PATH[27]。替代方案是使用原生安装脚本:curl -fsSL https://claude.ai/install.sh | bash[24]。安装后,可以在任何 shell(Bash、Zsh、Fish 等)中直接运行 claude。如果使用 WSL 2,建议使用 Linux 发行版自带的 Ubuntu/Debian 包管理安装 Node.js,并按照[19†L105-L113]中的建议修复 PATH,以避免调用 Windows 版 Node。

如何检查当前已安装的 claude code 版本?

安装完成后,可运行内置的诊断命令:claude doctor[28]。该命令会输出当前版本号、安装类型、操作系统信息等。您还可以通过 claude --version 或检查安装目录(例如 ~/.local/bin/claude --version)来获取版本号。若通过 Homebrew 安装,也可用 brew list --versions claude-code 查看当前版本。

如何更新到最新版本的 claude code?

Claude Code 支持自动和手动更新两种方式。默认情况下,每次启动时会检查新版本并在后台下载[29]。您可以在 /config 中禁用自动更新(或设置环境变量 DISABLE_AUTOUPDATER=1),然后使用 Homebrew 等工具更新。手动更新最简单的方法是运行:claude update[30],它会替换为最新版本。如果您使用 Homebrew 安装,则应该先禁用 auto-update,然后执行 brew upgrade --cask claude-code[31]来升级。

如何安装旧版本的 claude code?

若需要特定旧版本,可在原生安装脚本中指定版本号。例如:curl -fsSL https://claude.ai/install.sh | bash -s 1.0.58[32]。对于 npm 安装,则使用对应版本号:npm install -g @anthropic-ai/[email protected]。安装脚本和 npm 都允许指定版本号参数,从而安装旧版本的工具。

如何卸载或重装 claude code?

如果您通过 npm 安装,可使用命令:npm uninstall -g @anthropic-ai/claude-code。同时,删除配置目录(通常为 ~/.claude/)以及可能的本地 symlink(如 ~/.local/bin/claude)。如果使用 Homebrew 安装,执行 brew uninstall --cask claude-code 即可。此外,如果曾运行过原生安装脚本,可以在 macOS/Linux 下通过再次运行脚本并传入 --uninstall 参数来卸载(脚本支持该选项)。重装只需重新执行上面安装步骤即可。重装前最好先清除旧版的缓存或配置,以避免冲突。

如何在 Docker 或无界面环境运行 claude code?

由于 Claude Code 目前设计为交互式终端应用,它依赖于运行时与用户的交互(例如权限确认)。在纯无头环境(如 Docker 容器、CI/CD 环境)中直接运行可能会遇到限制。目前官方未提供专门的无头模式支持。一种可行的方案是在容器中安装 Node.js 并执行 claude -p "..."(打印模式)来让 Claude 执行特定查询,但需要注意工具权限和网络访问。如果要在 CI 中自动使用 Claude Code,建议使用官方 GitHub Actions(Anthropic 发布的)或未来的 SDK/API 集成。有关详细经验,可以参考社区讨论(目前有用户反馈在纯无头环境运行存在问题[33])。

安装失败时如何排查问题?

常见的安装问题包括 Node 版本和 PATH 冲突、权限问题等。建议检查:

  • Node 环境:确保 nodenpm 指向正确的路径。在 WSL 中避免使用 Windows 版的 Node;如果遇到"exec: node: not found",请安装 Linux 版 Node 并修正 PATH[27]
  • 权限:npm 全局安装时不要使用 sudo,若出现权限错误,可考虑使用原生安装脚本(不依赖全局目录)[34]
  • WSL 问题:如果 WSL 导入了 Windows 的 PATH,可能造成版本冲突,请按照[27]的建议调整 .bashrc 或使用 appendWindowsPath=false
  • 诊断工具:安装后运行 claude doctor 可诊断安装类型和版本[28]。如果报错未安装,请确认 ~/.local/bin 已加入系统 PATH。
  • 其他环境:在 macOS/Linux 上,如果 claude 命令未找到,检查是否需要重启终端或手动将 ~/.local/bin 添加到 PATH。对于 Windows,建议重新启动 PowerShell 确保环境变量更新。

如果以上方法仍无法解决,可查看官方文档的故障排查[35]或在社区论坛寻求帮助。及时提供错误信息(尤其是 claude doctor 输出)有助于定位问题。

入门与基础操作(终端)

如何创建并启动新的 claude code 会话?

在您的代码项目目录中打开终端,然后运行命令 claude 即可启动新的交互式会话[10]。如果您想直接从提示开始,则可使用 claude "您的问题"。默认情况下,claude 会话与您当前目录关联,一个会话对应一个项目环境。也可使用 /init 命令自动初始化一个新的 CLAUDE.md 项目记忆(帮助后续对话保持一致性)[47]。若之前已有会话,命令 claude -c 会继续当前目录下最近一次的会话[19]

如何在 claude code 终端中运行命令?

Claude Code 会话中默认包含多个内部工具,如 Bash(运行 Shell 命令)、Edit(修改文件)等。在对话中,您可以描述要执行的命令,Claude 会生成相应的工具请求。例如,它可能输出一条回复以 Bash: 开头,表示建议运行的命令。执行此类命令时,Claude 会提示您是否允许它进行操作。在确认后,Claude Code 会在后台执行该 shell 命令,并将结果返回给您。您也可以手动在提示中使用斜杠命令,例如 !ls -la(前缀 ! 表示直接执行命令)或 claude --disallowedTools 设定以修改默认权限[48]。总之,您不需离开 Claude 会话,命令执行和结果读取都在终端内完成。

如何在 claude code 中以 sudo 执行命令?

Claude Code 本身会以当前用户身份运行命令。因此,如果需要使用 sudo,您可以在提示中包含 sudo 前缀,Claude 也会将其作为安全工具处理。例如,您可以请求"运行 sudo apt update"作为命令。运行时系统会提示您输入用户密码,命令将在您授权后以管理员权限执行。需要注意的是,如果您的环境禁用了密码登录或没有启用 sudo,则该方式不可用。另外,强烈建议仅在信任的安全环境中使用 sudo,并谨慎分享需要提权的操作给 AI。

如何在 claude code 执行中途停止或退出会话?

您可以使用常见的终端快捷键来控制会话:按下 Ctrl+C 可以中断当前的命令执行或 AI 响应生成(终止输出);按 Ctrl+D(EOF)可以结束整个 Claude 会话(等效于 /logout[49]。此外,使用 /clear 命令可以清空当前对话历史而不退出会话,使用 /logout 可登出并关闭会话[50]。总之,Ctrl+C 中断,Ctrl+D 退出会话。

如何让 claude code 在无人值守下连续运行任务?

Claude Code 设计为交互式工具,因此不支持完全无人值守的批处理模式。不过,您可以使用非交互式"打印模式"将其嵌入脚本:例如,claude -p "查询内容" 会输出纯文本结果,适合自动化脚本调用[51]。但是,由于一些命令需要用户确认或上下文跟踪,完全自动化运行仍然受限。目前官方尚未提供专门的无头/后台运行模式。如需在 CI/CD 中使用,建议采用官方提供的 GitHub Actions 功能或等待未来更新支持。

如何在 claude code 正确输入换行或粘贴多行文本?

终端中的多行输入有几种方式:

  • 快捷键:在任何终端中输入 \ + Enter 可以快速换行;在 macOS 上默认使用 Option+Enter 可换行(如遇快捷键冲突,可执行 /terminal-setup 命令为 iTerm2/VSCode 绑定 Shift+Enter[52]
  • 粘贴模式:当复制粘贴大段代码或文本时,可直接粘贴,Claude Code 会自动进入"粘贴模式"处理多行输入[53]
  • Vim 模式:启用 /vim 命令进入 Vim 插入模式,也可使用 Vim 风格快捷键插入换行。

这样您就可以无障碍地输入或粘贴多行内容,Claude Code 会正确将其作为一个完整的提示处理。

如何在 claude code 搜索与恢复会话历史?

Claude Code 在本地终端会话中维护命令历史,并提供多种导航手段:使用 ↑/↓ 箭头键 可浏览当前工作目录的历史输入[54];按 Ctrl+R 可进行反向搜索过去的提示文本[54];在 VS Code/JetBrains 集成环境中,还可以使用界面提供的历史记录功能来查找旧会话。您也可以使用 /history 命令查看当前会话的全部历史记录(各条记录附有编号)。如需清空会话历史,使用 /clear[55]。注意:历史记录是针对当前目录单独保存的,不同项目目录之间的历史隔离存储。

为什么 claude code 的 /export 不能导出完整对话?

当前 Claude Code 并没有内置的全会话导出命令,导致部分用户尝试 /export 时发现无法获取全部历史。这是因为 Claude Code 会话可能很长,而且默认设计并不通过单个命令导出所有内容。若需要保存对话,建议使用复制粘贴或使用 claude -p "query" 命令将重要片段输出到控制台后手动保存。未来版本中可能增加更完善的导出功能,但现阶段官方文档未提供直接的 /export 使用说明。

claude code 的"上下文剩余"与"自动压缩"是什么?

在 Claude Code 会话中,系统会追踪当前对话所使用的 token 数量和剩余上下文容量。通常,终端状态栏会显示 "Context Remaining"(剩余上下文)数值,表示在达到模型最大上下文窗口前可用的 token 额度。当对话接近上限时,Claude Code 自动压缩(auto-compact)功能会启动:它会用摘要性指令压缩对话,将早期内容总结为精简记忆,从而释放空间[56]。默认情况下,当上下文使用超过约 95% 时,系统会自动进行对话压缩[20]。您无需手动触发,Claude Code 会后台处理保持会话活跃。

如何在 claude code 启用或禁用自动压缩?

您可以通过设置关闭或开启自动压缩:在会话中运行 /config,然后找到 "Auto-compact enabled" 选项即可切换自动压缩的状态[20]。如果希望手动控制压缩,可以将其禁用,然后在需要时运行 /compact 命令来手动进行对话压缩。还可以在 CLAUDE.md 中添加压缩相关的指南(比如注释 "Focus on code changes")以影响压缩策略[57]