入门必会 | 启动/退出/作用域/全局参数 | 纯新手友好
Claude Code CLI 有多种启动模式,每种模式适用于不同的使用场景:
# 在当前目录启动交互模式
claude
# 此时终端进入 Claude 交互界面
# 提示符变为:>
# 你可以输入自然语言指令
# 输入 /exit 或按 Ctrl+D 退出
交互界面说明
/ 开头的命令是斜杠命令(内置命令)! 开头可以执行本地 shell 命令(需权限允许)# 在指定目录启动
claude /path/to/your/project
# 等价于
cd /path/to/your/project && claude
# 示例:启动到 ~/my-web-app 项目
claude ~/my-web-app
# === 单次执行,输出后退出(最常用) ===
claude --print -p "列出当前目录的文件"
# 等价简写
claude -p "列出当前目录的文件"
# === 管道传入内容 ===
echo "请分析这个 JSON:{\"name\":\"test\"}" | claude -p "解析这个 JSON"
# === 从文件传入 ===
cat error.log | claude -p "分析这些日志中的错误" > analysis.txt
# === 结合 bash 变量 ===
result=$(claude -p "生成一个随机的 Python 函数名")
echo "$result"
参数释义
--print / -p:非交互模式,输出结果后退出,不进入 REPL# 在后台启动 Claude Code(使用 &)
claude --print -p "分析整个项目" &
# 使用 nohup 防止 SSH 断开时终止
nohup claude -p "分析 src/ 目录下的所有文件" > analysis.txt 2>&1 &
# 使用 screen / tmux(推荐)
screen -S claude-session
claude
# 按 Ctrl+A, D 分离会话
# screen -r claude-session 重新连接
tmux 或 screen,这样即使 SSH 断开,Claude 任务也不会中断。
# === 管道传入文件内容 ===
cat app.py | claude -p "review 这段代码,找出潜在 bug"
# === 管道传入 git diff ===
git diff HEAD~1 | claude -p "总结这些改动,生成 commit message"
# === 管道传入命令输出 ===
ps aux | claude -p "分析哪些进程占用内存最高"
# === 管道传入 + 指定输出格式 ===
cat data.json | claude -p "提取所有 email 地址,输出为 JSON 数组"
# 启动后你会看到类似以下界面:
# ┌──────────────────────────────────────────┐
# │ ✨ Claude Code v1.x.x │
# │ 📁 Project: /home/user/my-project │
# │ 🔧 Model: claude-sonnet-4-6 │
# │ │
# │ > │
# └──────────────────────────────────────────┘
# > 符号是你的输入提示符
# 直接输入自然语言指令即可
# 方法一:斜杠命令退出(最规范)
/exit
# 方法二:键盘快捷键
Ctrl+D # 发送 EOF 信号
Ctrl+C # 发送中断信号(可能需要按两次)
# 方法三:输入 quit 或 exit
exit # 在某些版本中有效
quit
/exit 正常退出。
# === 会话自动保存 ===
# Claude Code CLI 会自动保存会话历史到 ~/.claude/history.jsonl
# 正常退出时,会话状态被保存
# 下次在同一目录启动时,可以选择恢复上次会话
# === 手动检查会话历史 ===
ls -la ~/.claude/
cat ~/.claude/history.jsonl | tail -5
# === 恢复上次会话 ===
# 在交互模式中,使用 /history 查看历史
# 使用 /continue 让 Claude 继续上次未完成的任务
# === 同目录重启(自动检测上次会话) ===
claude
# Claude 会提示:Found previous session. Resume? (y/n)
# === 全新会话(跳过恢复) ===
claude --new-session
# 或
claude --fresh
Claude Code CLI 的作用域(Scope)决定了它能"看到"哪些文件、执行哪些操作。理解作用域是高效使用 CLI 的前提。
claude 时的当前目录就是项目根目录--worktree 参数时,Claude 会在隔离的 git worktree 中工作# === 实验1:验证 Claude 能看到当前目录文件 ===
mkdir -p /tmp/claude-scope-test
cd /tmp/claude-scope-test
echo "print('hello')" > test.py
echo "const x = 1;" > test.js
echo "secret_key=abc123" > .env
claude -p "列出当前目录下所有文件"
# === 实验2:验证 Claude 能看到子目录 ===
mkdir subdir
echo "console.log('in subdir')" > subdir/app.js
claude -p "查看 subdir/ 目录的内容"
# === 实验3:验证权限限制 ===
echo "top-secret" > /tmp/secret.txt
chmod 000 /tmp/secret.txt
claude -p "读取 /tmp/secret.txt 的内容"
# 预期:权限不足报错
# === .claudeignore 文件 ===
# 创建 .claudeignore 告诉 Claude 忽略某些文件
cat > .claudeignore << 'EOF'
node_modules/
dist/
build/
*.log
.env
EOF
# Claude 会尊重 .gitignore 和 .claudeignore
# 这可以减少上下文消耗,提高响应质量
| 参数 | 简写 | 用途 | 使用场景 |
|---|---|---|---|
--version | -v | 查看版本号 | 确认安装成功、排查版本兼容性 |
--help | -h | 查看帮助信息 | 查询可用参数和命令 |
--print | -p | 非交互单次执行 | 脚本化、CI/CD、管道操作 |
--worktree | - | 隔离工作树模式 | 安全审查、实验性修改 |
--model | - | 指定模型 | 切换不同的 Claude 模型 |
--no-color | - | 禁用彩色输出 | 日志文件输出、管道处理 |
--verbose | - | 详细输出模式 | 调试、查看内部执行过程 |
--continue | -c | 继续上次会话 | 恢复中断的工作 |
# 查看 Claude Code CLI 版本
claude --version
# 输出示例:1.0.37 (Claude Sonnet 4.6)
# 版本号用于:
# - 确认安装成功
# - 排查版本兼容问题
# - 向社区报告 bug 时提供版本信息
# 查看完整帮助
claude --help
# 帮助信息包含:
# - 所有可用参数
# - 参数说明
# - 使用示例
# - 环境变量列表
# === 基础用法:单次问答 ===
claude -p "什么是闭包?用 JavaScript 举例"
# === 结合管道:分析文件 ===
cat package.json | claude -p "列出所有依赖及其版本"
# === 输出重定向:保存结果到文件 ===
claude -p "生成一个 Express.js 项目的基础目录结构" > project-structure.txt
# === 结合 shell 变量 ===
commit_msg=$(git diff --staged | claude -p "生成 commit message")
echo "$commit_msg"
# === 指定模型 ===
claude -p "解释量子计算" --model claude-opus-4-8
# === 无颜色输出(适合管道) ===
claude -p "生成 JSON" --no-color | jq '.'
# === 在隔离工作树中启动 Claude ===
claude --worktree
# 适用场景:
# 1. 实验性修改:不想影响原始代码
# 2. 代码审查:安全地检查代码
# 3. 临时探索:尝试不同的实现方案
# 工作树原理:
# - 创建一个临时的 git worktree
# - 所有修改都在隔离环境中
# - 退出时会提示是否保留修改
# === 查看可用模型 ===
claude --help | grep -A 20 "model"
# === 指定特定模型 ===
claude -p "解释这段代码" --model claude-sonnet-4-6
claude -p "复杂分析任务" --model claude-opus-4-8
claude -p "快速问答" --model claude-haiku-4-5-20251001
# 模型选择建议:
# - haiku:最快最便宜,适合简单任务
# - sonnet:平衡,适合日常开发(默认)
# - opus:最强,适合复杂分析和重构
# 开启详细输出,查看内部执行过程
claude -p "hello" --verbose
# 适用于:
# - 调试工具调用问题
# - 查看 token 消耗
# - 理解 Claude 的决策过程
# === 1. 确认版本和登录状态 ===
claude --version
claude whoami
# === 2. 创建测试项目,验证基本功能 ===
mkdir ~/claude-test && cd ~/claude-test
echo '{"name": "test"}' > package.json
claude -p "读取 package.json 并告诉我项目名"
# === 3. 了解配置目录 ===
ls -la ~/.claude/
# config.json - 用户配置
# credentials.json - 认证凭证(勿手动修改)
# history.jsonl - 会话历史
# === 4. 查看当前配置 ===
cat ~/.claude/config.json
Claude Code CLI 在执行某些操作前会请求权限。你可以在 ~/.claude/settings.json 中预设权限策略。
# === 查看当前权限配置 ===
cat ~/.claude/settings.json 2>/dev/null || echo "尚未创建 settings.json"
# === 创建基础安全配置 ===
cat > ~/.claude/settings.json << 'EOF'
{
"permissions": {
"allow": [
"Read(/home/**)",
"Bash(git:status,git:diff,git:log)",
"Bash(npm:test,node:*)",
"Bash(ls:*,cat:*,find:*,grep:*)"
],
"deny": [
"Bash(rm:*,sudo:*,chmod:*)",
"Bash(curl:*,wget:*)",
"Write(**)",
"Edit(**)"
]
}
}
EOF
settings.json 中禁用 allow: ["*"]rm -rf、数据库删除等--worktree 测试# === 建议的项目目录结构 ===
my-project/
├── .claudeignore # Claude 忽略规则
├── .gitignore # Git 忽略规则
├── src/ # 源代码
├── tests/ # 测试文件
├── docs/ # 文档
├── README.md # 项目说明
└── CLAUDE.md # Claude 项目上下文(可选)
--model 切换不同模型,对比回答质量与速度git log | claude -p 生成一份项目变更摘要settings.json,设置文件读写权限策略--worktree 模式下修改文件,理解隔离机制