安装配置与 CLI 核心工作流
High Contrast
Dark Mode
Light Mode
Sepia
Forest
2 min read328 words

安装配置与 CLI 核心工作流

Claude Code 不是另一个 Copilot——它是能理解整个代码库、执行多步骤任务、调用外部工具的终端原生 AI 工程师。

Claude Code 工作流架构

graph TD TERMINAL[终端入口] --> CLAUDE_CODE[Claude Code CLI] CLAUDE_CODE --> CONTEXT[代码库上下文感知] CLAUDE_CODE --> TOOLS[工具调用] CLAUDE_CODE --> SKILLS[自定义 Skills] CONTEXT --> C1[读取项目文件] CONTEXT --> C2[理解 Git 历史] CONTEXT --> C3[感知依赖关系] TOOLS --> T1[文件读写] TOOLS --> T2[命令执行] TOOLS --> T3[MCP 服务器] SKILLS --> S1[/review-pr] SKILLS --> S2[/deploy] SKILLS --> S3[自定义命令] style CLAUDE_CODE fill:#c8e6c9,stroke:#388e3c,stroke-width:2px style TOOLS fill:#e3f2fd,stroke:#1565c0,stroke-width:2px

安装与配置脚本

"""
Claude Code 安装配置向导与工作流验证
"""
import subprocess
import os
import json
from dataclasses import dataclass
from pathlib import Path
@dataclass
class CLIConfig:
"""Claude Code 配置项"""
api_key: str
default_model: str = "claude-sonnet-4-5-20251001"
max_tokens: int = 8192
permission_mode: str = "default"   # default / acceptEdits / bypassPermissions
mcp_servers: dict = None
def __post_init__(self):
if self.mcp_servers is None:
self.mcp_servers = {}
class ClaudeCodeSetup:
"""Claude Code 安装与配置管理"""
CONFIG_DIR = Path.home() / ".claude"
CONFIG_FILE = Path.home() / ".claude" / "settings.json"
@staticmethod
def install():
"""安装 Claude Code"""
print("📦 安装 Claude Code...")
cmds = [
"npm install -g @anthropic-ai/claude-code",
]
for cmd in cmds:
result = subprocess.run(cmd.split(), capture_output=True, text=True)
if result.returncode == 0:
print(f"  ✅ {cmd}")
else:
print(f"  ❌ {cmd}\n  错误: {result.stderr[:200]}")
@classmethod
def configure(cls, config: CLIConfig):
"""写入配置文件"""
cls.CONFIG_DIR.mkdir(parents=True, exist_ok=True)
settings = {
"apiKey": config.api_key,
"model": config.default_model,
"maxTokens": config.max_tokens,
"permissions": {
"mode": config.permission_mode,
},
}
if config.mcp_servers:
settings["mcpServers"] = config.mcp_servers
cls.CONFIG_FILE.write_text(json.dumps(settings, indent=2))
print(f"✅ 配置已写入 {cls.CONFIG_FILE}")
@staticmethod
def verify():
"""验证安装"""
checks = {
"claude CLI 可执行": ["claude", "--version"],
"Node.js 版本": ["node", "--version"],
"npm 版本": ["npm", "--version"],
}
print("\n=== Claude Code 安装验证 ===")
all_ok = True
for name, cmd in checks.items():
try:
result = subprocess.run(cmd, capture_output=True, text=True, timeout=5)
if result.returncode == 0:
ver = result.stdout.strip().split("\n")[0]
print(f"  ✅ {name}: {ver}")
else:
print(f"  ❌ {name}: 执行失败")
all_ok = False
except FileNotFoundError:
print(f"  ❌ {name}: 未找到命令")
all_ok = False
api_key = os.environ.get("ANTHROPIC_API_KEY", "")
if api_key.startswith("sk-ant-"):
print(f"  ✅ ANTHROPIC_API_KEY: 已配置 ({api_key[:12]}...)")
else:
print(f"  ❌ ANTHROPIC_API_KEY: 未设置或格式错误")
all_ok = False
if all_ok:
print("\n🎉 Claude Code 配置完整,可以开始使用!")
return all_ok
class WorkflowExamples:
"""Claude Code 核心工作流示例"""
WORKFLOWS = {
"代码理解": {
"命令": "claude '解释这个项目的整体架构,重点说明数据流向'",
"说明": "在项目根目录运行,Claude 自动读取所有文件",
"技巧": "加上 --files src/ 限制只读取源码目录",
},
"功能实现": {
"命令": "claude '在 user.py 中添加密码重置功能,遵循现有代码风格'",
"说明": "Claude 读取现有代码,保持一致的风格和模式",
"技巧": "告诉 Claude 具体文件名,减少无关上下文",
},
"Bug 修复": {
"命令": "claude '运行测试,找到失败的测试用例并修复'",
"说明": "Claude 自动执行 pytest,读取错误,定位并修复 bug",
"技巧": "加上 'don't modify test files' 防止 Claude 改测试",
},
"代码审查": {
"命令": "git diff HEAD~1 | claude '审查这些变更,找出潜在问题'",
"说明": "把 Git diff 通过管道传给 Claude",
"技巧": "结合 /review-pr Skill 实现标准化审查流程",
},
"文档生成": {
"命令": "claude '为所有公开函数生成 docstring,使用 Google 风格'",
"说明": "Claude 批量扫描并添加文档注释",
"技巧": "先在单个文件试验,确认风格符合要求再批量执行",
},
"重构": {
"命令": "claude '将 utils.py 中重复的数据库查询逻辑提取为独立函数'",
"说明": "Claude 识别重复代码,提取并更新所有调用点",
"技巧": "重构前先运行测试,重构后再运行测试对比",
},
}
@classmethod
def print_guide(cls):
print("=== Claude Code 核心工作流指南 ===\n")
for name, info in cls.WORKFLOWS.items():
print(f"【{name}】")
print(f"  命令: {info['命令']}")
print(f"  说明: {info['说明']}")
print(f"  技巧: {info['技巧']}\n")
# 配置示例(使用占位 key)
config = CLIConfig(
api_key="sk-ant-YOUR_KEY_HERE",
default_model="claude-sonnet-4-5-20251001",
permission_mode="default",
mcp_servers={
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"],
}
},
)
print("=== 配置示例 ===")
print(json.dumps({
"model": config.default_model,
"permissions": {"mode": config.permission_mode},
"mcpServers": config.mcp_servers,
}, indent=2))
WorkflowExamples.print_guide()

常用 CLI 参数速查

参数 作用 示例
--continue / -c 继续上次对话 claude -c '继续修复那个 bug'
--resume 从历史会话选择恢复 claude --resume
--print / -p 非交互模式输出 echo "code" \| claude -p '解释这段代码'
--model 指定模型 claude --model claude-opus-4-6
--add-dir 添加额外目录到上下文 claude --add-dir ../shared-lib
--allowedTools 限制可用工具 claude --allowedTools 'Read,Write'

行动清单

下一节02-代码生成、调试与重构实战 — 超越补全——让 Claude Code 成为真正的结对编程伙伴。