首页 › tutorials › 零基础装通Claude Code造文件整理器

零基础装通 Claude Code:30 分钟造出你的第一个文件整理助手

概述

本教程面向从未用过任何 AI 编程工具的零基础读者。你将从安装、登录、配置一路走到亲手交付一个真正能跑的命令行项目——一个文件整理助手:输入一条命令,它自动把凌乱文件夹里的图片、文档、视频、压缩包按类型归位到对应子目录,并打印一份整理报告。学完你将掌握 Claude Code 的安装、认证、会话、Plan 模式、CLAUDE.md 项目记忆,以及"给需求 → 审计划 → 改代码 → 跑验证"的完整迭代闭环。预计耗时 30 分钟。

前置条件

你不需要任何编程经验,但需要先备齐这几样东西:

项目 说明 检查方式
终端 macOS 终端、Linux 终端、或 Windows 下的 WSL(Ubuntu) 打开能输入命令的窗口即可
代码编辑器 推荐VS Code,可实时看文件变化 非必需,但强烈建议
Claude 账号 Pro / Max / Team / Enterprise 订阅,或 Console 账号,或 API Key 登录 claude.ai 查看订阅状态
网络 安装与首次认证需要联网 能访问 claude.ai
Git(建议) 作为"撤销"安全网,开始前先 git init git --version

没有订阅?Claude Code 也支持用 API Key 按量计费;Max 套餐(每月 $100–$200)提供更高的速率额度。本教程演示的命令在两种方式下完全一致。

第一步:安装 Claude Code(三种方式,任选其一)

Anthropic 官方文档目前推荐原生安装脚本(不再强制依赖 npm)。下面三种都来自官方 Quickstart,选你顺手的一种。

方式 A:原生安装脚本(官方推荐)

macOS / Linux / WSL:

curl -fsSL https://claude.ai/install.sh | bash

Windows PowerShell:

irm https://claude.ai/install.ps1 | iex

Windows CMD:

curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

若在 CMD 里看到 The token '&&' is not a valid statement separator,说明你其实处在 PowerShell 里——切到方式 A 的 PowerShell 那行即可。

方式 B:包管理器

# macOS(已装 Homebrew)
brew install --cask claude-code

# Windows(已装 WinGet)
winget install Anthropic.ClaudeCode

方式 C:npm 全局安装(经典方式,需 Node.js 18+)

# 先确认 Node 版本 >= 18
node --version

# 没有 Node?用 nvm 装一份长期支持版
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm install --lts

# 安装 Claude Code
npm install -g @anthropic-ai/claude-code

预期结果:任一方式完成后,终端输入下面命令能看到版本号,即代表安装成功。

claude --version
# 例如输出:1.0.x (Claude Code)

常见问题与解决:

现象 原因 解决
command not found: claude PATH 没刷新 关闭重开终端;或手动把安装目录加入 PATH,再 source ~/.zshrc
npm 方式报权限错误 EACCES 全局目录无写权限 用 nvm 管理 Node;或 sudo 仅作下策(不推荐)
irm 命令不识别 你其实在 CMD 里 用 CMD 那条命令,或改用 WinGet
公司网络拦截 claude.ai 代理/防火墙 配置 HTTPS_PROXY 环境变量后再装

第二步:登录认证

安装好之后第一次运行 claude,需要完成身份认证。有两条路:

路线 1:用浏览器登录(订阅用户最省事)

claude

回车后会弹出引导,按提示在浏览器里用你的 Claude 账号授权,回到终端即完成登录。也可显式触发:

claude login

路线 2:用 API Key(无订阅、或想按量计费)

# 注意等号两边不要有空格
export ANTHROPIC_API_KEY="sk-ant-你的密钥"
claude

想把 Key 固化下来?把上面那行 export 加进 ~/.zshrc 或 ~/.bashrc,再 source 一次即可。

预期结果:终端出现交互式对话界面,显示当前目录和输入提示符,说明你已成功进入会话。

自检命令(装完/改配置后强烈建议跑一次):

claude doctor

它会体检安装路径、Node 版本、网络连通性、登录状态,有问题会逐条标红告诉你。

常见问题:

现象 解决
浏览器没自动打开 复制终端里那串 URL,手动粘到浏览器
claude doctor 报 401 未授权 Key 失效或额度用尽,去 Console 重新生成 / 续费
认证成功但提示速率受限 个人额度到了上限;升级到 Max 或换 API Key 计费

第三步:准备项目"安全网"

新手最怕 AI 乱改文件。开工前先建目录 + 初始化 Git,这样任何不满意都能一键回退。这是所有高质量教程都强调的第一守则。

mkdir my-file-organizer && cd my-file-organizer
git init
touch README.md        # 给一个非空起点,Claude Code 工作得更稳

预期结果:当前目录变成一个 Git 仓库,且不再是空文件夹。

第四步:启动会话与基本姿势

在项目目录里启动 Claude Code:

claude

一定要从项目目录内启动。若在主目录里跑,它读不到你的项目文件。

进入后先熟悉几条核心命令:

命令 / 快捷键 作用
/help 列出全部命令
/clear 清空当前对话上下文(不删文件)
@文件名 把某个文件作为上下文喂给它,如 @README.md
Shift + Tab 切换 Plan 模式(只规划、先不动手)
/quit 或 Ctrl + C 退出会话

Plan 模式是新手的安全起手式:按 Shift+Tab 切到 Plan,再提需求,Claude Code 会先给你一份"我打算怎么做"的计划,你审核通过后才真正写文件。强烈建议第一次操作就开着它。

第五步:写 CLAUDE.md——项目记忆文件

这是 Claude Code 从"还行"变"真好用"的关键。在项目根目录建一个 CLAUDE.md,写清项目约定,Claude Code 会在每次会话开始自动读取它,省得你反复交代背景。

你可以直接让 Claude Code 帮你建:

在项目根目录创建一个 CLAUDE.md,说明这是一个 Node.js 写的命令行文件整理工具,
技术栈:纯 Node.js 标准库、不依赖第三方包;命令用 npm start 运行。

它生成的内容大致长这样(你可自行微调):

# 项目:文件整理助手(file-organizer)

一个纯 Node.js 实现的命令行工具,按扩展名把凌乱目录里的文件归类到子文件夹。

## 技术栈
- Node.js 18+,仅用标准库(fs / path),不引入第三方依赖

## 常用命令
- `node organize.js [目录] [--dry-run]` —— 整理指定目录;--dry-run 为预演模式
- `npm start -- ./messy --dry-run` —— 通过 npm 调用

## 规则
- 所有新函数都写注释
- 处理文件时优先考虑安全性:重名自动加序号,绝不覆盖
- 错误信息要中文、可读

没写够别担心,CLAUDE.md 是"活文档"——用到哪儿发现新约定就往里加,越用越懂你。

第六步:用一句话下需求

切到 Plan 模式(Shift+Tab),把需求说清楚——越具体,产出越可用。"给我写个整理文件的工具"是差提示;下面这种带行为约束的才是好提示:

用 Node.js 标准库写一个文件整理脚本 organize.js:
1. 接收一个目标目录(默认当前目录)作为参数;
2. 扫描该目录下的文件(不递归子目录),按扩展名分类:
   图片/文档/视频/音频/压缩包/代码/其他;
3. 把每类文件移动到同名的子文件夹里;
4. 文件名冲突时自动加 _1、_2 序号,绝不覆盖;
5. 最后打印一份"整理报告",显示每类移动了多少个;
6. 加一个 --dry-run 预演模式,只打印将要做什么、不真正移动文件。

预期结果:Claude Code 会先列出计划(创建哪些文件、分几个函数、怎么分类)。审一遍没问题,批准后它直接写盘。下面是它产出的完整代码(依赖为零,可直接跑):

#!/usr/bin/env node
// 文件整理助手 organize.js —— 按扩展名把凌乱目录归类到子文件夹
const fs = require('fs');
const path = require('path');

// 分类规则:分类名 -> 包含的扩展名
const RULES = {
  '图片':   ['.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp', '.svg'],
  '文档':   ['.pdf', '.doc', '.docx', '.txt', '.md', '.xls', '.xlsx', '.ppt', '.pptx', '.csv'],
  '视频':   ['.mp4', '.mov', '.avi', '.mkv', '.flv'],
  '音频':   ['.mp3', '.wav', '.flac', '.aac', '.m4a'],
  '压缩包': ['.zip', '.rar', '.7z', '.tar', '.gz'],
  '代码':   ['.js', '.ts', '.py', '.java', '.c', '.cpp', '.go', '.rs', '.html', '.css', '.json'],
};

// 扩展名 -> 分类名 的反向索引,O(1) 查表
const EXT_TO_CATEGORY = {};
for (const [cat, exts] of Object.entries(RULES)) {
  for (const e of exts) EXT_TO_CATEGORY[e] = cat;
}

function classify(filename) {
  const ext = path.extname(filename).toLowerCase();
  return EXT_TO_CATEGORY[ext] || '其他';
}

function main() {
  const target = path.resolve(process.argv[2] || '.');      // 第一个参数:目录
  const dryRun = process.argv.includes('--dry-run');          // 预演开关

  if (!fs.existsSync(target) || !fs.statSync(target).isDirectory()) {
    console.error(`✗ 目标不是有效目录: ${target}`);
    process.exit(1);
  }

  console.log(`▶ 整理目录: ${target}  ${dryRun ? '(预演模式,不真正移动)' : ''}\n`);

  const moved = {};            // 分类 -> 移动数量
  const skipped = [];          // 未分类文件名
  const entries = fs.readdirSync(target, { withFileTypes: true });

  for (const ent of entries) {
    if (!ent.isFile()) continue;                              // 跳过子目录
    if (ent.name === path.basename(__filename)) continue;     // 跳过脚本自身

    const category = classify(ent.name);
    if (category === '其他') { skipped.push(ent.name); continue; }

    const destDir = path.join(target, category);
    const src = path.join(target, ent.name);

    moved[category] = (moved[category] || 0) + 1;

    if (dryRun) { console.log(`  [预演] ${ent.name} -> ${category}/`); continue; }

    if (!fs.existsSync(destDir)) fs.mkdirSync(destDir);

    // 重名自动加序号:a.png 存在则改为 a_1.png,再存在则 a_2.png……
    let final = path.join(destDir, ent.name), i = 1;
    while (fs.existsSync(final)) {
      const base = path.basename(ent.name, path.extname(ent.name));
      final = path.join(destDir, `${base}_${i}${path.extname(ent.name)}`);
      i++;
    }
    fs.renameSync(src, final);
    console.log(`  ✓ ${ent.name} -> ${category}/`);
  }

  console.log('\n── 整理报告 ────────────────');
  for (const [cat, n] of Object.entries(moved)) console.log(`  ${cat}: ${n} 个`);
  console.log(`  其他(未分类): ${skipped.length} 个`);
  console.log('────────────────────────────');
}

main();

别担心记不住这些——你只要把上面那段需求说给 Claude Code,它会替你写出来。贴在这里是为了让你能对照、能读懂、能在它基础上继续改。

实战案例:从零跑通文件整理助手

1. 造一堆"乱文件"用来测试

# 回到项目根目录,建一个测试用的凌乱文件夹
mkdir -p messy
cd messy
touch photo.jpg avatar.png report.pdf notes.txt song.mp3 clip.mp4 \
      backup.zip hello.js data.json weirdfile.xyz
cd ..

2. 先预演,看看会发生什么

node organize.js ./messy --dry-run

预期输出:

▶ 整理目录: /.../my-file-organizer/messy  (预演模式,不真正移动)

  [预演] photo.jpg -> 图片/
  [预演] avatar.png -> 图片/
  [预演] report.pdf -> 文档/
  [预演] notes.txt -> 文档/
  [预演] song.mp3 -> 音频/
  [预演] clip.mp4 -> 视频/
  [预演] backup.zip -> 压缩包/
  [预演] hello.js -> 代码/
  [预演] data.json -> 代码/

── 整理报告 ────────────────
  图片: 2 个
  文档: 2 个
  音频: 1 个
  视频: 1 个
  压缩包: 1 个
  代码: 2 个
  其他(未分类): 1 个
────────────────────────────

注意 weirdfile.xyz 因为扩展名不在规则里,被归到"其他",不会被移动——这正是 --dry-run 的价值:先确认无误,再动手。

3. 真正整理一次

node organize.js ./messy

messy/ 目录现在变成:

messy/
├── 图片/   avatar.png, photo.jpg
├── 文档/   notes.txt, report.pdf
├── 音频/   song.mp3
├── 视频/   clip.mp4
├── 压缩包/ backup.zip
├── 代码/   data.json, hello.js
└── weirdfile.xyz          ← 未分类,原地保留

4. 让 Claude Code 继续增强(演示迭代闭环)

新手常误以为"一次就要完美"。实际上迭代才是核心技能——通常需要 3 到 5 轮跟进。试试这些后续指令,每条都展示一种迭代方向:

# 迭代①:新增功能——把每次整理结果写成 manifest.json,支持回滚
给 organize.js 增加一个 manifest.json 记录每次移动的 原路径->新路径,
并加一个 --undo 参数,能根据 manifest.json 把文件移回原位。

# 迭代②:配置外置——分类规则搬到单独文件
把 RULES 抽到 rules.json,启动时读取,方便用户自定义扩展名归属。

# 迭代③:可观测性——加日志
每次移动写入 organize.log,格式:[时间] 文件 -> 目标。

# 迭代④:健壮性——加测试
用 Node 内置的 node:test 给 classify() 和重名加序号逻辑各写一组单测。

每次它都会给计划 → 你批准 → 它改代码 → 你 node --test 或 --dry-run 验证。不满意就用一句话告诉它怎么改,或直接 git checkout . 全部回退重来。这就是 Claude Code 的标准工作节奏。

工作流程图

flowchart TD
    A[安装 claude<br/>claude --version] --> B[登录认证<br/>claude login / API Key]
    B --> C[建目录 + git init<br/>安全网]
    C --> D[启动 claude<br/>Shift+Tab 进 Plan 模式]
    D --> E[写 CLAUDE.md<br/>项目记忆]
    E --> F[下具体需求<br/>列清行为约束]
    F --> G{审计划}
    G -->|不满意| F
    G -->|满意| H[Claude Code 写文件]
    H --> I[--dry-run 预演<br/>node --test 验证]
    I --> J{通过?}
    J -->|否| K[一句话提改进<br/>继续迭代]
    K --> I
    J -->|是| L[git commit<br/>固化成果]
    L --> M[下一轮需求]
    M --> F

给零基础者的 7 条避坑清单

  1. 先 git init,再动手。 Git 是你面对 AI 改文件的唯一"撤销键"。
  2. 第一次开 Plan 模式。 先看计划,再批准动手,避免意外改动。
  3. 需求写具体。 "整理文件"是差提示;"按扩展名分 6 类、重名加序号、带预演"才是好提示。
  4. 接受 3–5 轮迭代。 一轮没完美是常态,不是失败。
  5. 改完先 --dry-run、先跑测试。 永远在"安全模式"下先验证,再动真格。
  6. 维护好 CLAUDE.md。 把它当团队 wiki,越用越省沟通成本。
  7. 别一上来就用 --dangerously-skip-permissions。 那会跳过所有确认,新手时期请保持逐项审批。

延伸阅读

训练营适用性评估

维度 评估
适合人群 完全零基础、第一次接触 AI 编程工具的学员;转行自学编程者;想快速体验 Claude Code 价值的一线开发者
训练营类型 "Claude Code 零基础入门营""AI 编程新手破冰营""办公自动化小工具营"
建议时长 引导讲解 15 分钟 + 动手实操 30 分钟 + 迭代挑战 15 分钟,共约 60 分钟一节课
难度 ★☆☆☆☆(仅要求会开终端、能照抄命令)
衔接课程 可顺接"Skill 开发实战"(把本工具封装为斜杠命令)、"Hooks 实战"(整理前自动备份)
学员成果验收 学员能独立装通 Claude Code、跑通整理助手、并完成至少一轮功能迭代(如 manifest 回滚或 rules.json 外置)

参考来源

  1. Claude Code 官方 Quickstart — code.claude.com — 安装(原生脚本/Homebrew/WinGet)、登录、首会话、Plan 模式的权威步骤,本教程安装与认证部分以此为准
  2. Claude Code tutorial for beginners — self.md — Node.js 18+ 与 npm 安装、claude login/API Key 双路径、CLAUDE.md 模板的独立教程,补充了认证细节与记忆文件写法
  3. Claude Code for Beginners: Your First Project in 30 Minutes — LOW/CODE — 30 分钟交付首个项目的实操教程,强调 git init 安全网、Plan 模式起手、CLAUDE.md 必备、3–5 轮迭代为常态,本教程的迭代闭环与避坑清单大量参考于此
  4. @anthropic-ai/claude-code — npm — npm 全局安装方式的官方包页面与版本信息

微信公众号「字节笔记本」原创整理 · 专注 Claude Code 与 AI 编程实战,陪你从第一条命令走到第一个上线的工具。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入