本教程是 Claude Code 训练营的入门第一课,面向完全零基础的读者:从未用过命令行 AI 编码助手、甚至没怎么写过代码的人,也能跟着一步步走完。学完之后你将能够:在自己的电脑上把 Claude Code 装好、登录、跑通第一次会话;理解 REPL、斜杠命令、计划模式、CLAUDE.md 记忆这几块核心拼图;并用一句中文需求,驱动 Claude Code 从零生成一个可运行、可复用的命令行密码管家——既能生成强随机密码,又能用业界标准的 zxcvbn 算法给任意密码打分并给出改进建议。适用人群:想体验 AI 编程的产品经理、运维、学生、以及任何对"让 AI 帮我写工具"心动却不知从何下手的人。
在动手之前,请确认你具备以下条件(缺一不可,但门槛很低):
python3 --version,能看到版本号即可。Windows 若提示找不到命令,到 python.org 安装并勾选 "Add to PATH"。一句话门槛:能开机、能联网、有 Claude 账号。其余的,交给这堂课。
官方在 2026 年主推原生安装(Native Install),这是最推荐的方式,因为它会在后台自动更新,让你始终停留在最新版本,省去手动升级的烦恼。
macOS / Linux / WSL,打开终端粘贴执行:
curl -fsSL https://claude.ai/install.sh | bash
Windows PowerShell(注意是 PowerShell,不是老的 CMD):
irm https://claude.ai/install.ps1 | iex
常见坑:如果你在 PowerShell 里看到
'irm' is not recognized,说明你其实在 CMD 窗口里;反之在 CMD 里看到The token '&&' is not valid,说明你其实在 PowerShell 里。看提示符就能区分——PowerShell 是PS C:\>,CMD 是C:\>。
如果你更习惯包管理器,也可以:
# macOS(Homebrew)
brew install --cask claude-code
# Windows(WinGet)
winget install Anthropic.ClaudeCode
预期结果:安装完成后,在终端输入 claude --version,会打印出一行版本号,例如 2.x.x。看到版本号就说明二进制已经进入你的 PATH,随时可调用。
常见问题:
403 或 syntax error near unexpected token '<':多半是网络代理或 curl 被拦截,换个网络环境或在企业网内放行 claude.ai 即可。装好之后,在任意目录下输入:
claude
首次运行会进入登录引导。你会看到几个选项,根据你的账号类型选择:
登录成功后,你会看到一个交互式输入框,光标在闪——这就是 Claude Code 的 REPL(交互式对话界面),类似一个"住在终端里的聊天窗口",但它能真正读你的文件、改你的代码、跑你的命令。
先打两个基础斜杠命令(slash command,以 / 开头)熟悉一下:
/help:列出所有可用命令,是你的"作弊小抄"。/clear:清空当前对话上下文。每开一个新任务前按一下,能让 Claude 不被旧话题干扰。预期结果:终端出现欢迎横幅和一个可输入的提示符,光标稳定闪烁,说明你已经"进入"了 Claude Code。
跟 AI 编程,最重要的习惯之一是给它一个明确的工作目录,而不是在你装满文件的 home 目录里乱翻。我们新建一个专门的项目文件夹:
mkdir ~/pwkeep
cd ~/pwkeep
进入目录后再启动(如果刚才 claude 还开着,先 /clear):
claude
Claude Code 启动时会感知到当前目录。从此你说"在这个项目里加个功能",它就知道边界在哪。
预期结果:REPL 顶部的状态栏会显示当前工作目录是 ~/pwkeep,里面空空如也,准备开工。
现在是见证奇迹的时刻。在 REPL 里直接用自然语言输入(不需要你懂 Python、不需要你写任何代码):
帮我用 Python 写一个命令行密码生成器,名字叫 pwkeep。要求:
1. 默认生成 16 位密码,包含大小写字母、数字、符号
2. 用 -l 指定长度,-n 指定生成几个
3. 加 --no-symbols 去掉符号
4. 安全起见用 secrets 模块而不是 random
请先告诉我你打算怎么做(计划),再动手写。
这里有个新手必学的小技巧:末尾那句"先告诉我计划再动手"。Claude Code 有一个计划模式(Plan Mode),你可以用
Shift + Tab在"直接执行 / 先规划后执行"之间切换。在计划模式下,它会先列出"我打算建哪些文件、写哪些函数",等你点头再真正改文件。对零基础者,这等于多了一道"确认"保险,避免它一上来就大刀阔斧。
Claude 大概率会回复一个简短计划,例如:
计划:
- 新建 pwkeep.py,用 argparse 解析参数
- 用 secrets.choice 从字符池随机抽取
- 保证每类字符至少出现一个
- 最后 shuffle 打乱
确认后我开始写。
你回一个"开始"或按回车确认。几秒钟后,你会看到终端里逐行"打印"出 pwkeep.py 的完整代码——这就是 Claude Code 在为你写文件,右侧往往还会提示它调用了 Write 工具。
预期结果:项目目录下出现 pwkeep.py,里面有几十行可读的 Python 代码。你不用读懂每一行,但你能在 REPL 里直接让它"解释一下第 X 行"。
常见问题:
Shift + Tab 切过去,或在需求里明确写"先给计划"。第一版只是"生成器"。一个真正的密码管家,还应该能告诉你某个密码到底有多强。这一步演示 Claude Code 最爽的体验:增量对话、越改越强,而不用每次重起炉灶。
继续在同一个 REPL 里(上下文还连着)输入:
很好。现在再加一个 --check 参数:当用户传 --check 某个密码时,
不要生成新密码,而是评估这个密码的强度,给出 0-4 分和改进建议。
请用业界标准的 zxcvbn 库来做评估(它在 PyPI 上叫 zxcvbn),
但要注意:如果用户机器上没装这个库,要优雅退化到一个简单的启发式打分,
而不是直接崩溃。
注意这段需求里的几个工程化要点,都是真实开发会遇到、而 AI 能帮你处理好的:
random 数个位数那种玩具,而是 Dropbox 开源的、基于真实密码破解模式的评估器,输出 0~4 的分数、预计破解时长和改进建议。Claude 会先把 zxcvbn 的 import 包在 try/except ImportError 里,再补一个启发式 strength() 函数。它可能还会提醒你装依赖:
pip install zxcvbn
照做即可(如果你用虚拟环境更好,零基础可暂时跳过这层)。
预期结果:现在你的 pwkeep.py 既能 python3 pwkeep.py -l 20 生成密码,也能 python3 pwkeep.py --check 'P@ssw0rd123' 给老密码体检并吐出"预计破解时长"和改进建议。
常见问题:
ModuleNotFoundError: No module named 'zxcvbn':说明你没装或装到了别的 Python 环境。用 python3 -m pip install zxcvbn 装到同一个解释器。工具写完不算完,能跑通才算完。在 REPL 里,你可以直接让 Claude 自己跑一遍验证:
跑一下这三条命令,确认输出正常:
python3 pwkeep.py
python3 pwkeep.py -l 24 -n 3
python3 pwkeep.py --check 'qwerty'
把每条的输出贴给我看。
Claude Code 会调用 Bash 工具在终端里执行这些命令,并把结果原样回贴给你。如果第一条命令因为"没有可写权限"或"shebang 缺失"而失败,它通常会自己发现错误并尝试修复,不需要你插手——这正是 Agent 模式的魅力:它在"执行→观察→修正"的循环里自洽运转。
预期结果:你看到三段输出。生成类命令每次结果都不同(因为是随机的),但都会带一个 [x/4 强度标签] 的后缀;--check qwerty 这种弱密码会被判 0 分并给出"太短、是常见键盘序列"之类的建议。
常见问题:
python3 找不到:改用 py pwkeep.py 或 python pwkeep.py。pwkeep 就能用):让 Claude "给脚本加 shebang 并教我怎么做成命令行别名 / 装到 PATH",它会给出 chmod +x、软链或 pipx install 等方案。Claude Code 有一个长期记忆机制:项目根目录下的 CLAUDE.md 文件,会被它在每次会话开始时自动读取。你可以把"这个项目是什么、有什么约定、依赖怎么装"写进去,这样下次甚至换了电脑,它也能秒懂上下文。
最快的办法是直接让 Claude 帮你生成:
帮我在项目根目录生成一个 CLAUDE.md,记录:项目用途、运行方式、
依赖(zxcvbn,可选)、未来想加的功能清单(比如批量生成并导出 CSV、
密码短语 passphrase 模式)。用简洁的中文。
你也可以直接输入 /init,Claude Code 会扫描项目并自动起草一份初始 CLAUDE.md,你再让它润色。
预期结果:项目里多出 CLAUDE.md,里面是结构化的项目说明。下次重启 claude,它会"记得"这个项目是干嘛的——这就是从"一次性问答"升级到"长期协作伙伴"的关键一步。
下面是经过上述流程打磨后的完整代码,可直接保存为 pwkeep.py 运行。它体现了"生成 + 体检 + 优雅退化"三件套,是一个能拿去真实使用、并方便继续扩展的迷你工具:
#!/usr/bin/env python3
"""pwkeep —— 命令行密码生成与强度检测工具"""
import argparse
import secrets
import string
# 尽量用业界标准的 zxcvbn;装不上则优雅退化
try:
from zxcvbn import zxcvbn
HAVE_ZXCVBN = True
except ImportError:
HAVE_ZXCVBN = False
SETS = {
"lower": string.ascii_lowercase,
"upper": string.ascii_uppercase,
"digits": string.digits,
"symbols": "!@#$%^&*-_=+?",
}
LABELS = ["极弱", "弱", "一般", "强", "极强"]
def generate(length=16, use_sets=None, exclude_similar=True):
use_sets = use_sets or list(SETS)
pool = "".join(SETS[s] for s in use_sets)
if exclude_similar: # 去掉容易混淆的 I l 1 O 0 o
for ch in "Il1O0o":
pool = pool.replace(ch, "")
if not pool:
raise ValueError("字符池为空,无法生成密码")
pwd = [secrets.choice(SETS[s]) for s in use_sets] # 每类至少一个
pwd += [secrets.choice(pool) for _ in range(length - len(pwd))]
secrets.SystemRandom().shuffle(pwd) # 安全洗牌
return "".join(pwd[:length])
def strength(password):
if not HAVE_ZXCVBN:
score = 0
if len(password) >= 12: score += 1
if len(password) >= 16: score += 1
if any(c.isupper() for c in password) and any(c.islower() for c in password): score += 1
if any(c.isdigit() for c in password): score += 1
if any(not c.isalnum() for c in password): score += 1
return {"score": min(score, 4), "suggestions": ["安装 zxcvbn 可获得更准确的评估"],
"source": "heuristic"}
res = zxcvbn(password)
return {
"score": res["score"],
"crack_time": res["crack_time_display"],
"suggestions": res["feedback"]["suggestions"],
"source": "zxcvbn",
}
def main():
p = argparse.ArgumentParser(prog="pwkeep", description="密码生成与强度检测")
p.add_argument("-l", "--length", type=int, default=16, help="密码长度,默认 16")
p.add_argument("-n", "--count", type=int, default=1, help="一次生成几个,默认 1")
p.add_argument("--no-symbols", action="store_true", help="不含符号")
p.add_argument("--no-digits", action="store_true", help="不含数字")
p.add_argument("--check", metavar="PWD", help="检测某个已有密码的强度")
args = p.parse_args()
if args.check:
info = strength(args.check)
print(f"密码强度: {info['score']}/4 ({LABELS[info['score']]}) [{info['source']}]")
if "crack_time" in info:
print(f"预计破解时长: {info['crack_time']}")
for s in info.get("suggestions", []):
print(f" 建议: {s}")
return
use = [s for s in SETS
if not (s == "symbols" and args.no_symbols)
and not (s == "digits" and args.no_digits)]
for _ in range(args.count):
pw = generate(args.length, use)
info = strength(pw)
print(f"{pw} [{info['score']}/4 {LABELS[info['score']]}]")
if __name__ == "__main__":
main()
跑起来是这样的:
$ python3 pwkeep.py -l 20 -n 2
7tGq#mK2vR-pXb9LwzF@ [4/4 极强]
cY3$fN8kP&hJvT2xQwL_ [4/4 极强]
$ python3 pwkeep.py --check 'qwerty'
密码强度: 0/4 (极弱) [zxcvbn]
预计破解时长: 即刻
建议: 增加 3 个及以上字符;避免键盘序列等常见模式
下面这张图还原了你从安装到产出工具的完整心智路径,也是本课的"地图":
flowchart TD
A[第1步 安装 Claude Code<br/>原生脚本 / Homebrew / WinGet] --> B[第2步 登录账号<br/>Pro Max 订阅 或 API Key]
B --> C[第3步 建干净项目目录<br/>mkdir cd claude]
C --> D{Shift+Tab 切换<br/>计划模式?}
D -- 先看计划 --> E[REPL 里用一句中文描述需求<br/>默认16位 含大小写数字符号]
D -- 直接执行 --> E
E --> F[Claude 起草计划并写文件<br/>Write 工具生成 pwkeep.py]
F --> G[第5步 增量迭代<br/>加 --check 强度检测 + zxcvbn + 优雅退化]
G --> H[第6步 让 Claude 自跑验证<br/>Bash 工具执行并回贴结果]
H --> I{通过?}
I -- 否 --> G
I -- 是 --> J[第7步 写 CLAUDE.md<br/>沉淀项目记忆]
J --> K[可复用的密码管家 CLI]
style A fill:#e1f5ff
style K fill:#e8f5e9
style D fill:#fff3e0
/clear 吗? A:换话题时建议清,同一任务里连续对话则别清——清了上下文就断了,Claude 会"失忆"。2 选择"始终允许"某类操作来减少打扰,但零基础阶段建议逐条确认,建立对它的信任边界。/help 与 /config:进入 REPL 后亲手敲一遍,比任何教程都直观。pwkeep.py + CLAUDE.md,可带回家继续用、继续改,有成就感。[!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 等场景全覆盖。
