Claude Code 必备脚本合集:日常运维一行搞定
我是 Quentin,OpenClaw 拼车的维护者。这篇是我把自己一年多用下来沉淀的 Claude Code 实用脚本整理出来,分享给所有重度用户。
每个脚本都是从真实问题里磨出来的——某天遇到一个棘手场景,写脚本解决,下次再遇到直接跑。所有脚本都假设你在 macOS / Linux 上,Windows 用户多数也能照搬到 PowerShell。
拼车前置:脚本里多次涉及 OpenClaw 拼车的恢复链路。一行接通 Max 20× 配额:
curl -fsSL https://cp.bizq.net/setup.sh | bash -s -- claude-max-20x
一、一键清缓存:ccclear
最高频。Claude Code 跑久了 ~/.claude/ 会沉淀几个 GB 的会话记录、shell 快照、todo、statsig 缓存。
#!/bin/bash
# ccclear.sh —— 温柔清理,登录态保留
set -euo pipefail
TS=$(date "+%Y%m%d%H%M%S")
BASE=~/.claude
[ ! -d "$BASE" ] && echo "无 ~/.claude 目录" && exit 0
pkill -f "claude" 2>/dev/null || true
[ -d "$BASE/projects" ] && mv "$BASE/projects" "$BASE/projects-$TS"
[ -d "$BASE/shell-snapshots" ] && mv "$BASE/shell-snapshots" "$BASE/shell-snapshots-$TS"
[ -d "$BASE/todos" ] && mv "$BASE/todos" "$BASE/todos-$TS"
[ -d "$BASE/statsig" ] && mv "$BASE/statsig" "$BASE/statsig-$TS"
echo "归档时间戳:$TS"
ls -la "$BASE"核心思路:永远 mv 重命名,不要 rm -rf。万一发现误删,改回名字就回来了。
我每月 1 号会自动跑一次。
二、彻底重置:ccmoveconfig
清完 cache 还是有问题(登录态错乱、token 循环、模型不切换),就动核武器:
#!/bin/bash
# ccmoveconfig.sh —— 彻底归档,包括登录态
set -euo pipefail
TS=$(date "+%Y%m%d%H%M%S")
pkill -f "claude" 2>/dev/null || true
[ -d ~/.claude ] && mv ~/.claude ~/.claude-$TS
[ -f ~/.claude.json ] && mv ~/.claude.json ~/.claude.json-$TS
echo "已彻底归档,时间戳:$TS"
echo "下次启动 claude 会要求重新登录,建议直接走 OpenClaw 拼车回血:"
echo " curl -fsSL https://cp.bizq.net/setup.sh | bash -s -- claude-max-20x"跑完之后别去手动 /login 折腾,直接走拼车一键恢复。
三、用量统计:ccusage
想知道今天 / 本月用了多少 token,最简单的方式是装 ccusage:
npm i -g ccusage
ccusage # 当天用量
ccusage --month # 本月用量
ccusage --by-project # 按项目细分我把它包了一层日常摘要:
#!/bin/bash
# cc-stats.sh —— 每日用量摘要
echo "=== 今日 Claude Code 用量 ==="
ccusage --today
echo ""
echo "=== 本月累计 ==="
ccusage --month
echo ""
echo "=== Top 5 项目 ==="
ccusage --by-project --month | head -7塞进 cron 每晚 23:55 跑一次,邮件发给自己。
四、配置备份:ccbackup
CLAUDE.md、自定义 commands、agents、settings 是积累出来的资产,丢了等于重头开始。
#!/bin/bash
# ccbackup.sh —— 备份 Claude Code 配置到 git
set -euo pipefail
BACKUP_DIR=~/code/dotfiles/claude-config
mkdir -p "$BACKUP_DIR"
# 同步关键文件(注意:不备份 .claude.json,里面有 token)
rsync -av --delete \
--exclude 'projects/' \
--exclude 'shell-snapshots/' \
--exclude 'statsig/' \
--exclude 'todos/' \
--exclude '*.log' \
~/.claude/ "$BACKUP_DIR/"
# 自动 commit
cd "$BACKUP_DIR/.."
git add -A
git diff --cached --quiet || git commit -m "claude config backup $(date +%Y-%m-%d)"
git push origin main 2>/dev/null || echo "(未推送)"
echo "✅ 备份完成"要点:
- 排除掉历史会话和缓存
- 永远不备份
.claude.json——里面有 OAuth token 和 API key,进 git 风险极高 - 命令、agents、CLAUDE.md 全部进版本控制
五、跨主机同步:ccsync
家里台式机、笔记本、办公室主机三套环境,CLAUDE.md 经常想保持一致。
#!/bin/bash
# ccsync.sh —— 从 dotfiles 仓库拉最新配置
set -euo pipefail
REPO=~/code/dotfiles/claude-config
[ ! -d "$REPO" ] && git clone https://github.com/<你>/dotfiles.git ~/code/dotfiles
cd "$REPO/.."
git pull --rebase
# 双向同步(注意只同步 commands / agents / CLAUDE.md,不动 settings)
rsync -av "$REPO/commands/" ~/.claude/commands/
rsync -av "$REPO/agents/" ~/.claude/agents/
[ -f "$REPO/CLAUDE.md" ] && cp "$REPO/CLAUDE.md" ~/.claude/CLAUDE.md
echo "✅ 同步完成"新机器上跑一次拼车 setup + ccsync,就有完整的 Claude Code 工作环境。
六、批量处理:ccbatch
需要对一组文件做同样的 AI 处理(比如批量翻译、批量加注释、批量重构),手动一个个开 Claude Code 太蠢。
#!/bin/bash
# ccbatch.sh —— 批量喂文件给 Claude
# 用法:./ccbatch.sh "翻译成中文,保留代码块" docs/*.md
set -euo pipefail
PROMPT="$1"
shift
for f in "$@"; do
echo "=== 处理 $f ==="
# 用 -p (print) 模式,跑完直接输出结果
claude -p "$PROMPT" --file "$f" > "${f}.out"
mv "${f}.out" "$f"
echo "✅ $f"
done用法:
# 批量翻译 docs 下所有 markdown 到中文
./ccbatch.sh "把这个 markdown 翻译成中文,保留 frontmatter 和代码块原样" docs/*.md
# 批量给 Python 文件加 type hint
./ccbatch.sh "给这个 Python 文件补全 type hints,不改变运行时行为" src/**/*.py注意:批量处理 token 消耗会很猛,确保拼车配额够用。
七、PR 自动审查:pr-review
GitHub 项目接到 PR,先让 Claude 审一遍,过滤明显问题再人工。
#!/bin/bash
# pr-review.sh —— 用 Claude Code 审 PR
# 用法:./pr-review.sh 123
set -euo pipefail
PR_NUM="${1:?用法: ./pr-review.sh <pr-number>}"
# 拉 PR diff
gh pr checkout "$PR_NUM"
DIFF=$(gh pr diff "$PR_NUM")
# 调 Claude
claude -p "请审查这个 PR diff,重点找:
1. 真实的逻辑 bug
2. 安全漏洞(SQL 注入、XSS、命令注入、权限校验)
3. 资源泄漏(未关闭的文件 / 连接 / 订阅)
4. 性能死角(N+1 查询、阻塞 IO、不必要的循环)
不要做风格点评。每个问题用三行:
- 严重程度(🔴必修 / 🟡建议 / 🟢优化)
- 文件:行号
- 一句话说明
PR diff:
$DIFF" > "/tmp/pr-$PR_NUM-review.md"
cat "/tmp/pr-$PR_NUM-review.md"
# 可选:直接发到 GitHub
read -p "发到 GitHub PR 评论?(y/N) " yn
if [[ "$yn" == "y" ]]; then
gh pr comment "$PR_NUM" --body-file "/tmp/pr-$PR_NUM-review.md"
fi每次开会前跑一遍当天的 PR,5 分钟过完,比手动审快得多。
八、Git commit 消息生成:ccmsg
懒得写 commit message 时:
#!/bin/bash
# ccmsg.sh —— 让 Claude 生成 commit message
set -euo pipefail
DIFF=$(git diff --cached)
[ -z "$DIFF" ] && echo "暂存区为空" && exit 1
MSG=$(claude -p "根据下面的 git diff,写一条简洁的 commit message:
- 第一行:50 字以内的总结,动词开头(add / fix / refactor / chore 等)
- 空一行
- 接下来 2~3 行说明 \"为什么\",不是 \"什么\"
- 不要加 emoji
- 中英文都行
diff:
$DIFF")
echo "$MSG"
read -p "用这条消息 commit?(y/N) " yn
[[ "$yn" == "y" ]] && echo "$MSG" | git commit -F -养成 git add → ccmsg 的肌肉记忆,比手写 commit 快 5 倍。
九、紧急 dump 当前会话:ccdump
Claude Code 跑到一半遇到崩溃 / 网络挂掉,你不想丢上下文:
#!/bin/bash
# ccdump.sh —— 把最近的会话记录拷到当前目录
set -euo pipefail
PROJECT_DIR=$(pwd | sed 's|/|-|g' | sed 's|^-||')
SESSIONS=~/.claude/projects/"$PROJECT_DIR"
[ ! -d "$SESSIONS" ] && echo "未找到当前项目的会话记录" && exit 1
# 找最新的会话文件
LATEST=$(ls -t "$SESSIONS"/*.jsonl 2>/dev/null | head -1)
[ -z "$LATEST" ] && echo "无会话文件" && exit 1
cp "$LATEST" "./claude-session-$(date +%Y%m%d%H%M%S).jsonl"
echo "✅ 已 dump 到 $(pwd)"之后你可以用 jq 之类的工具解析 jsonl 提取里面的关键 prompt 和回复。
十、检查环境健康:cccheck
新机器装好之后跑一次,确认所有依赖、配置、权限都到位:
#!/bin/bash
# cccheck.sh —— Claude Code 环境健康检查
set +e
PASS=0
FAIL=0
check() {
if eval "$2" >/dev/null 2>&1; then
echo "✅ $1"
((PASS++))
else
echo "❌ $1"
((FAIL++))
fi
}
echo "=== Claude Code 环境检查 ==="
check "claude 已安装" "command -v claude"
check "node 版本 >= 18" "node -v | grep -E 'v(1[89]|[2-9][0-9])'"
check "~/.claude 目录存在" "test -d ~/.claude"
check "~/.claude.json 存在" "test -f ~/.claude.json"
check "ANTHROPIC_API_URL 已设置" "test -n \"\${ANTHROPIC_API_URL:-}\" || grep -q ANTHROPIC_API_URL ~/.claude.json"
check "MCP 配置存在" "test -s ~/.claude.json && grep -q mcpServers ~/.claude.json"
check "git 已配置" "git config user.email"
check "gh CLI 已登录" "gh auth status"
echo ""
echo "通过: $PASS / 失败: $FAIL"
if [ $FAIL -gt 0 ]; then
echo ""
echo "如需重置 / 重新配置,可一键回血:"
echo " curl -fsSL https://cp.bizq.net/setup.sh | bash -s -- claude-max-20x"
fi十一、把脚本装成命令
每次打全路径太烦,建议把上面所有脚本扔到 ~/.local/bin/ 并加进 PATH:
mkdir -p ~/.local/bin
mv ccclear.sh ~/.local/bin/ccclear
mv ccmoveconfig.sh ~/.local/bin/ccmoveconfig
mv ccbatch.sh ~/.local/bin/ccbatch
# ... 其他几个同理
chmod +x ~/.local/bin/cc*
# 加到 shell rc
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc之后随时 ccclear、ccusage、pr-review 123,肌肉记忆就建立起来了。
十二、自动化:cron 定期跑
把维护类脚本塞 cron,再也不用手动操心:
# crontab -e
# 每月 1 号凌晨清缓存
0 3 1 * * /home/<你>/.local/bin/ccclear
# 每天 23:55 备份配置
55 23 * * * /home/<你>/.local/bin/ccbackup
# 每周一早上发用量摘要邮件
0 9 * * 1 /home/<你>/.local/bin/cc-stats | mail -s "Claude Code 周报" you@example.com十三、写自己的脚本:让 Claude 写
最讽刺也最自然的事情:上面这些脚本都是 Claude Code 自己帮我写的。
下次遇到「这个流程我每周都要重复 3 次」,就直接对 Claude 说:
我每次切换项目都要:
1. cd 到目录
2. /clear
3. 把项目 README 喂给 Claude
4. 加载特定的子代理
帮我写一个 cc-switch <project> 脚本完成这个流程。它会问你脚本放哪、要不要参数补全、要不要交互式选择,然后产出一个开箱即用的 shell 脚本。
Claude Code 不只是写应用代码的工具——它也是写运维脚本、自动化流程、个人工具最好的伙伴。
十四、立即开始
把这些脚本攒成自己的工具箱,比反复手动操作快几个数量级:
curl -fsSL https://cp.bizq.net/setup.sh | bash -s -- claude-max-20x
mkdir -p ~/.local/bin
# 把上面那些脚本一个个保存进 ~/.local/bin/更多文档见 https://cp.bizq.net。
相关文章
- 如何清理本地 Claude Code 缓存和配置 —
ccclear/ccmoveconfig的完整说明 - Claude Code 高阶玩家指南 — 钩子、命令、记忆系统全玩法
- OpenClaw VPS 部署指南 — 把这套脚本搬到云服务器