因为 Claude Code 本身并不支持 Windows 的文件系统,而 Windows 要运行 Claude Code 稍微复杂一些,需要借助在 WSL 上运行。
下面将教你学会如何在 Windows 上安装和部署 Claude Code 工具。
什么是WSL?
WSL(Windows Subsyetem for Linux,适用于 Linux 的 Windows 子系统),是 Microsoft 公司于 2016 年在 Windows 10 平台发布的一项功能,其使得用户可以在 Windows 操作系统上运行 ELF 格式的 Linux 可执行文件。
Claude Code 在 WSL 上部署
安装WSL,必须满足以下要求:
- Windows 11 或 Windows 10 21H2以上,专业版/工作站版/企业版(非家庭版,需支持Hyper-V)
- CPU 需支持且已在 BIOS/UEFI 中启用虚拟化
(1)按照以下步骤安装WSL:
安装之前需要打开虚拟化,否则过程会出现未知的错误。
打开路径:控制面板 -> 程序与功能 -> 打开或关闭 Windows 功能
启动以下功能:
- Virtual Machine Platform(虚拟机平台)
- Windows Subsystem for Linux Support(WSL1)
下载和安装对应版本的 WSL, 选择您的系统版本,复制到浏览器进行下载 WSL 安装包:
- 64-Bit WSL-2.5.9.0 [推荐]
https://vip.123pan.cn/1831946356/links/wsl.2.5.9.0.x64.msi
- ARM64 WSL-2.5.9.0
https://vip.123pan.cn/1831946356/links/wsl.2.5.9.0.arm64.msi
- ARM64_MicrosoftStore WSL-2.5.9.0
https://vip.123pan.cn/1831946356/links/Microsoft.WSL_2.5.9.0_x64_ARM64.msixbundle
你也可以不用上面的安装包,直接访问 GitHub 安装最新的版本:
https://github.com/microsoft/WSL/releases
(2)安装虚拟机:
安装完WSL之后,你可以在微软应用商店中安装最新的Ubuntu 24.04 LTS 或者 通过以下命令安装:
wsl --install -d Ubuntu-24.04
你也可通过 wsl -l -o
命令选择其他系统版本。
安装完 Ubuntu 之后,你可以在终端(或PowerShell)输入wsl访问安装的操作系统:
- 首次用需要设置用户名和密码:
如果您通过开始菜单的应用访问一次,直接关闭窗口而不输入用户名和密码,下次访问将使用root用户
- Windows将安装的操作系统虚拟机视作一个应用,如Ubuntu 24.04 LTS 会出现在你的开始菜单
(3)Claude Code 安装
Claude Code 是用 Node.js
开发的,所以依赖 Node.js
环境,可以通过以下方式安装对应的环境(Node.js 18+):
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -
sudo apt-get install -y nodejs
node --version
npm --version
确保你的npm与 Node.js可用后,通过以下命令安装Claude Code。
Claude Code 包 二选一:
A. 全局安装 Claude Code (这个是官⽅的), 你有官⽅Claude Pro 账号就⽤这个指令
cd ~
npm install -g @anthropic-ai/claude-code
B. 全局安装 Claude Code (这个是镜像中转站的), 如果是中转站⽤户,选这个!
cd ~
npm install -g https://gaccode.com/claudecode/install --registry=https://registry.npmmirror.com
如果 GAC Claude Code 中转站用户,有安装了官方的Claude Code 包的话,还需要卸载掉,两者有冲突。
npm uninstall -g @anthropic-ai/claude-code
安装完之后,你就可以访问你的项目文件夹,并在该目录下的终端输入以下命令直接运行 Claude Code:
mkdir claude-test-demo
cd claude-test-demo
claude
使用Claude Code镜像中转站的用户
没有 Claude Pro 或者 Max 账号的伙伴,在国内可以直接使用中转站。无需魔法,直接可用。
Claude Code镜像使用指南:https://h5ma.cn/bxa
Claude Code镜像权限获取:http://h5ma.cn/gaccode
安装过程出现的问题,都可以在发送任意邮件到ClaudeCode@163.com获取帮助,实时更新。
对 WSL 使用的一些说明
如果你是首次使用 WSL,可以在弹出的 “欢迎使用WSL” 页面了解帮助,你也可以在 【WSL设置】 中找到入口。
WSL 不只是命令行版本的Linux操作系统,它是有对应的桌面环境的!
如果你使用的IDE编程工具是VSCode、Cursor之类的,可以使用VSCode的WSL插件,链接并使用你的WSL。
安装完插件之后,使用 code .
启动VSCode,这样启动可以使用 Claude Code IDE 插件。
灵活使用方法有很多种,你也可以单独直接在IDE上开启终端,执行你的 Claude Code 都行!
恭喜您!您已经完成了 Claude Code的安装与部署 🎉🎉🎉
最后我们该如何使用Claude Code
⭐ 开始新的对话
如果有一件事我希望你从中学到,那就是你绝对应该更频繁地调用/clear。
关键要点:
●AI代理在对话时间越长时往往变得更不可预测
●当你问不同的问题时尤其如此
●即使这意味着重复一些指令,创建一个新的提示通常更有效
●一旦我开始更积极地这样做,我的结果显著改善了
📝 创建精确的提示
我觉得这不言而喻,但当你与一个健忘的新毕业生一起工作时(我喜欢这样想Claude),重要的是你要写出你脑中拥有的所有上下文。
提示编写要点:
●这很困难,坦率地说,我认为我自己还不是很擅长
●你能给Claude提供的上下文越多,它就会越有效
●如果你想到一些边缘情况,绝对要告诉Claude
●如果你记得"在这个代码库中我们过去为这类问题使用过类似的模式",写下来!
●提示越精确,Claude做得就越好
●读心术技术还没有到那里
隐含上下文的重要性:
●考虑任何隐含的上下文
●例如:如果你要求Claude创建一个现代设计,它可能完全不知道你指的现代是什么
●最好给出例子:创建一个Linear风格的应用UI设计
🔄 让Claude Code使用Claude Code
你知道吗,你可以将Claude Code的工具用作MCP服务器(claude mcp serve)?
Task工具的强大功能:
●当我发现这一点时,我查看了它暴露的工具,并注意到一个叫做Task的工具
●这个工具的前提是启动一个子代理
●子代理将拥有与你的主代理相同的工具访问权限(除了它不能生成另一个子任务)
●子代理会报告结果
使用场景:
●知道这个功能可用在你有一个需要监督的更复杂问题时非常方便
●以下是我最近如何使用此功能对同一问题进行四种不同角色深入分析的例子:
这很壮观而且可以并行完成。这是保持主任务上下文窗口有序并让Claude保持专注的绝佳方式。
🧠 告诉Claude思考
就像我们这些血肉之躯的老人类一样,Claude默认是懒惰的。
Claude的懒惰特性:
●当你告诉Claude做某事时,它会选择阻力最小的路径
●如果你告诉它做至少三件事,我敢打赌它不会多做一件事
解决方案:
●同样的道理也适用于使用扩展思维能力
●为了获得更好的结果,特别是在规划过程中
●我建议告诉Claude进行超级思考
✏️ 编辑以前的消息
使用技巧:
●每当你太急于点击发送或只是觉得之前的消息可以更精确以获得更好的结果时
●你可以按两次Escape跳转到之前的消息并分叉对话
●我一直使用这个功能来优化提示或简单地让Claude重试
恢复功能:
●如果你想以某种方式回到之前的状态
●你可以使用--resume标志启动Claude来列出所有先前的线程
🚀 Yolo模式
这对我来说可能是极其不负责任的,但我现在主要使用--dangerously-skip-permissions运行Claude(感谢Peter成为坏影响)。
使用场景:
●这不是所有事情都必要的
●但如果我让Claude处理一些长期运行的任务
●我真的不想每分钟都必须切换焦点回到它,因为它使用新的终端命令
配置方法:我在我的zsh配置文件中设置了这个:
副作用:有趣的是,现在Claude可以做任何它想做的事,我也更频繁地遇到速率限制配额警告。
🔌 MCP服务器
个人观点:我个人对MCP服务器不是很兴奋,因为没有一个真正为我带来任何价值。
问题分析:
●在大多数情况下,我发现它们只是用我大部分时间不需要的东西消耗宝贵的tokens
●Claude Code中的内置工具对我来说足够了(特别是当按照我这里概述的方式使用时)
Playwright MCP经验:
●过去,我使用过Playwright MCP
●虽然看到Claude启动浏览器、点击按钮和截图非常迷人
●但我发现它主要是很快填满上下文窗口而没有真正带来更好的结果
🛠️ Claude SDK
SDK特性:
●Claude有一个SDK
●它非常强大,特别是如果你乐意处理stream-json输出格式
●但即使对于小事情,能够直接向claude传递提示并让它打印回复也为创建快捷方式提供了很好的机会
实用示例 - 自动Git提交:例如,我在我的路径中有一个gcauto可执行文件,它执行以下操作:
使用方法:所以每当我现在提交东西时,我只是暂存它们并运行gcauto。
规划模式
Claude Code有一个内置的规划模式,当你按两次Shift+Tab时触发。在这种模式下,Claude不会写入你的文件系统。
不过我个人喜欢用另一个模型进行规划,只是为了增加一些变化。在过去几周里,我一直在Google AI Studio中直接使用Gemini 2.5 Pro。我真的不知道这怎么可能,但我不认为我甚至需要为此付费?
📚 让Claude RTFM(阅读文档)
新手错误:我在开始时犯的一个新手错误是告诉Claude用框架x建立一个新项目。
问题分析:
●当然,这是可行的
●但我注意到Claude经常使用过时的设置和项目结构
●特别是对于快速发展的前端框架!
解决方案:我现在做的是要求Claude先阅读手册。这可以通过不同的方式完成:
方法 | 描述 |
文档链接 | 粘贴文档链接并要求Claude先阅读它 |
技术调研 | 要求Claude找出最先进的技术 |
深入研究 | 使用Task工具并让Claude对特定主题进行深入研究 |
深入研究任务的例子可能看起来像这样:
语音输入
像Superwhisper这样的应用程序使得口述提示变得非常容易。我发现当我想写一个更长的提示时这非常有效,因为它会更快地将想法从我的脑袋中取出。
这对任何LLM输入字段都非常有效,因为LLM通常可以弄清楚你的意思,即使转录很差并且充满错误。
💾 早暂存,常暂存
遇到的问题:
●我在Claude Code中缺少的一个功能是能够制作自动文件系统快照
●我经常遇到Claude变得有点太激进并开始在我不想要的时候进行大量更改的情况
●如果这发生在我得到一些好的更改之后,这可能会严重搞乱工作目录
解决策略:为了规避这个问题,我开始早期和经常暂存(即git add)更改。
具体做法:
●如果我在一轮后很满意,我通常会暂存所有内容
●这样我知道我可以稍后轻松恢复到它
🌳 Git Worktrees
为什么使用Worktrees:
●我对Claude Code如此着迷,以至于我现在在我的机器上为我工作的每个主要项目至少有两个工作树
●这允许我让Claude在同一个仓库中处理两个不同的问题
设置方法:设置也很容易!这就像创建一个分支,但代码将在不同的目录中。
具体步骤:在你的git仓库内,运行:
结果:瞧,你现在有另一个工作目录供Claude Code在其中完全放飞自我。
🧪 一次性工作实验
AI时代的新机遇:有了AI,代码变得真的很便宜。这意味着你现在可以构建你只使用一次的东西而不会感到内疚。任何你希望能让你当前任务更容易的东西都可以凭空创建。
实际案例展示:以下是我最近构建的一些在编码代理之前永远不值得我花时间的例子:
工具类型 | 具体项目 | 用途 |
仪表板 | 迁移进度可视化 | 可视化我在工作中大规模迁移期间的当前进度 |
浏览器扩展 | Tailwind版本检测器 | 显示网站使用的是哪个版本的Tailwind CSS |
CLI工具 | 转录分享系统 | 上传Claude Code转录以供公开分享 |
成本分析 | API费用统计 | 汇总我的Claude Code API成本,看看我从Max计划中获得了多少价值 |
桌面应用 | Git GUI集成 | 在git GUI内实验Claude Code的Electron应用程序 |
如果可能,不要尝试一次性完成
我目前专注于一个大规模的变更,需要我在过程中触及许多Tailwind Plus组件。我天真的第一个想法是创建一个令人惊叹的、深思熟虑的提示,包含大量细节,肯定可以让AI一次性完成所有这些工作...这肯定是可能的,对吧?
嗯,剧透警告,但我在这种方法上惨败了。它不仅没有首先做我想要的事情,还让我无法审查更改或进行任何有意义的更改。我必须重新开始。
这次我首先向Claude Code询问了有关问题的问题。我们在编写任何代码之前讨论了可能的更改。只有当我确信它知道我想要什么时,我才让它更改一个组件。经过一些测试和反馈后,我让它再做两个。然后再做五个,直到我最终让它扇出并完成剩余的工作。
虽然这显然不如创建完美提示那么壮观,但它让我更快地达到最终结果,并且有更紧密的反馈循环和监督。与手工在数百个不同组件中进行这种更改相比,我仍然能够节省大量时间。
这很可能是我使用方法错误的问题。我看到很多其他人声称在大型一次性任务上很成功(其中一些说Claude连续工作数小时)。然而,根据我自己的经验,错误很快复合,LLM经常在上下文窗口增长时失去线索(即使有广泛的子代理调用,甚至尝试Gemini 2.5 Pro)。我很希望有人能与我分享他们的秘密!
自主反馈还是人在回路中?
与上述问题相关,这也是我仍在努力解决的一个领域。每当我看到人们赞扬AI代理时,他们都提到一些自主反馈循环的重要性,这样LLM可以自己改进结果。
然而,我还没有能够有效地做到这一点。当我尝试设置单元测试或linter反馈时,Claude会阅读它,然后建议一切都正常工作,而实际上仍有许多问题/警告。当我设置它可以导航到页面并截图时,上下文窗口很快就充满了tokens。可以肯定地说,对我来说体验并不好。
我喜欢做的是自己运行开发服务器。每当Claude回到我这里时,我自己看一看,要么原样复制粘贴任何最终的堆栈跟踪,要么给出一些关于我想要不同做法的提示。我个人发现这种方法更可能让我得到我想要的。
早中断,常中断
每当我看到出现问题时,我通常立即按Escape中断Claude,并要求它撤销最新的更改,然后引导它更多地朝我想要的方向前进。当然,这只有在你保持关注时才有效,而我坦率地说经常没有做到这一点。
配置你的终端
Claude Code有一个隐藏的/terminal-setup命令,它会查看你当前的终端设置并进行一些更改,比如使得可以使用Shift+Enter添加换行符或注册正确的铃声类型。虽然我无法在Warp中弄清楚换行符的事情,但我的终端现在在Claude再次需要人工输入时会发出哔哔声。
连接你的IDE
另一个相对较新的功能是你可以连接Claude来查看你在IDE中打开的文件并读取linter警告等。这是通过从IDE的终端内运行claude或运行/ide命令来设置的。如果你想告诉Claude"修复我的linter问题",这很方便。
自定义命令
你可以在Claude Code中创建自定义斜杠命令。如果你发现自己不止一次写类似的提示,这可能是你节省更多时间的机会。
我设置了一些东西来清理Claude非常热衷于创建的临时脚本或辅助文件,无论好坏。
向Claude粘贴图像
你可以向Claude Code粘贴图像。只需直接复制图像或将文件拖到你的终端中,它就会作为附件添加到你的下一条消息中。当我想进行小的视觉更改时,我有时会使用这个功能。
📋 核心技巧总结
技巧类别 | 关键要点 | 实用性评级 |
对话管理 | 频繁使用/clear开始新对话 | ⭐⭐⭐⭐⭐ |
提示工程 | 提供充分上下文和具体指令 | ⭐⭐⭐⭐⭐ |
并行处理 | 使用Task工具进行子任务分析 | ⭐⭐⭐⭐ |
迭代开发 | 避免一次性完成大任务 | ⭐⭐⭐⭐⭐ |
版本控制 | 早暂存、常暂存,使用worktrees | ⭐⭐⭐⭐ |
工具集成 | 利用SDK创建自动化脚本 | ⭐⭐⭐ |
🎯 结论
根本性改变:Claude Code从根本上改变了我处理许多编程任务的方式。
现实评估:
●虽然它并不完美,需要调整你的工作流程
●但生产力的提升是真实的
●关键是在自动化和人工监督之间找到正确的平衡
●并愿意尝试不同的方法
未来展望:
●随着AI编码助手的继续发展,我期望这些模式中的许多会发生变化
●但现在,这些技术使我的日常编码生活显著更有生产力,我敢说,更有趣