Linux环境下使用Claude Code的实战指南

 更新时间:2026年05月21日 08:32:35   作者:vortex5  
本文记录我在 Linux 环境下使用 Claude Code 的实践,涵盖 ClawGod 运行时补丁 的安装原理、cc-switch-cli 多供应商 API 管理,以及 Linux 虚拟机无限制模式 的开启方法,需要的朋友可以参考下

一、ClawGod:让 Claude Code 进入"上帝模式"

1.1 它是什么?

ClawGod 不是第三方 Claude Code 客户端,而是一个运行时补丁(Runtime Patch),直接作用在官方 Claude Code 之上。

它的核心设计哲学是:兼容任何版本。当 Claude Code 官方升级后,ClawGod 会在下次启动时自动从新版本中重新抽取并重新打补丁,无需手动维护。

1.2 安装原理:用户目录 Hook 机制

ClawGod 的安装过程本质上是一次 “中间人注入”,在用户目录下构建一套独立的运行时环境,劫持官方 claude 命令的执行链路。

安装流程拆解

第一步:定位官方二进制

ClawGod 首先通过 which claude 检测用户系统中已安装的 Claude Code 位置,支持 npm/pnpm/yarn 全局安装或官方独立二进制安装。

第二步:提取嵌入的 cli.js 源码

自 Claude Code v2.1.113 起,npm 包不再直接分发 cli.js,而是作为一个轻量加载器,将请求分发给平台特定的 Bun standalone 二进制文件。这些二进制文件位于:

~/.local/share/claude/versions/   # macOS/Linux

ClawGod 从这些 Bun 二进制文件中提取嵌入的 cli.js 源码(从 __BUN 段中解析 Mach-O / ELF / PE 格式),以及嵌入的原生模块(audio-captureimage-processorcomputer-use-*url-handler)。

第三步:在用户目录构建独立运行时

所有提取的文件被放置到用户目录下的 ~/.clawgod/ 中:

~/.clawgod/
├── cli.original.js          # 提取出的原始 cli.js(备份)
├── cli.js                   # 打过补丁的版本
├── patch.js                 # 补丁器脚本
├── vendor/                  # 提取的原生模块
│   ├── audio-capture.node
│   ├── image-processor.node
│   ├── computer-use-*.node
│   └── url-handler.node
├── features.json            # 功能开关配置
├── provider.json            # API 供应商配置
└── .source-version          # 记录补丁来源版本

第四步:应用 23 个正则补丁

ClawGod 使用版本无关的正则表达式cli.js 进行 20+ 处修改,这些补丁不依赖具体版本号,因此跨版本兼容:

补丁类别具体修改效果
功能解锁USER_TYPE → ant开启内部用户模式,解锁 24+ 隐藏命令(/share/teleport/issue/bughunter 等)
GrowthBook 环境/配置覆盖可通过 features.json 覆盖任意功能开关
Agent Teams 强制启用多 Agent 协作无需额外权限
Computer Use 订阅绕过macOS 屏幕控制无需 Max/Pro 订阅
Auto-mode 解锁第三方 API 用户也能使用自动模式
Ultraplan / Ultrareview多 Agent 规划与自动化 Bug 狩猎
限制移除CYBER_RISK_INSTRUCTION移除安全测试拒绝(渗透测试、C2、漏洞利用不再被拒绝)
URL 生成限制移除"绝不生成或猜测 URL"的指令
Cautious Actions移除破坏性操作前的强制确认
Login Notice移除未登录启动提醒
视觉标识Logo/品牌色 → 绿色一眼识别是否已打补丁
消息过滤器显示对非 Anthropic 用户隐藏的内容
可靠性1h Prompt Cache强制 1 小时缓存 TTL(原为 5 分钟)
第三方 Cache 修复非 Anthropic 域名时自动关闭 x-anthropic-billing-header,避免第三方代理的 prompt-cache 命中率归零
Auto Re-patch检测到官方二进制升级后自动重新打补丁

第五步:创建启动器劫持原命令

安装脚本会:

  1. 将原始 claude 命令重命名为 claude.orig
  2. 创建新的 claude 启动器(shell 脚本 / cmd 文件)
  3. 启动器调用 bun 运行打过补丁的 cli.js,并指向提取的原生模块
# 安装后的命令映射
claude           # → 运行 ClawGod 补丁版(绿色 Logo)
claude.orig      # → 运行官方原版(橙色 Logo)
clawgod          # → 别名,同 claude

自动重补丁机制

.source-version 文件记录当前补丁对应的官方版本号。每次启动 claude 时,启动器会比对 ~/.local/share/claude/versions/ 中的最新版本与 .source-version

  • 版本一致 → 直接运行现有补丁
  • 版本更新 → 自动重新提取、打补丁、更新启动器

这意味着用户执行 claude update 时,ClawGod 已将该命令 patch 为走自己的 installer,从 npm 拉取最新 Anthropic 发布、重新提取、重新打补丁,一条龙完成。

1.3 安装命令

# macOS / Linux(一键安装)
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bash

# Windows(PowerShell)
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 | iex

前置依赖:Node.js ≥ 18、ripgrep、Bun(缺失时自动安装)、已安装的官方 Claude Code。

1.4 配置第三方 API 供应商

ClawGod 在用户目录下创建 ~/.clawgod/provider.json,用于配置非 Anthropic 官方的 API 端点:

{
  "apiKey": "sk-ant-api03-...",
  "baseURL": "https://api.anthropic.com",
  "model": "claude-sonnet-4-20250514",
  "smallModel": "claude-haiku-...",
  "timeoutMs": 3000000
}
  • 设置 apiKey 后,ClawGod 会将其注入为 ANTHROPIC_API_KEY,并隔离于 ~/.claude/settings.json
  • 非 Anthropic 的 baseURL 还会自动填充 ANTHROPIC_AUTH_TOKEN 用于网关认证
  • apiKey 留空则走 OAuth 路径,运行 claude auth login 一次即可

1.5 卸载

# macOS / Linux
curl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bash -s -- --uninstall
hash -r

# Windows
irm https://github.com/0Chencc/clawgod/releases/latest/download/install.ps1 -OutFile install.ps1; .\\install.ps1 -Uninstall

卸载会将 claude.orig 还原为 claude,并移除 clawgod 别名。

二、API 供应商管理:cc-switch-cli

当使用第三方 API 聚合平台(如 AIHubMix、小麦 API、硅基流动等)时,频繁切换 API Key 和端点非常麻烦。cc-switch-cli 是一个命令行工具,专门用于管理多个 CLI 工具的供应商配置。

2.1 核心概念

供应商(Provider) = 供应商名称 + API Base URL + API Key + 模型名称。切换供应商的本质是自动将这套配置写入对应 CLI 工具的配置文件。

2.2 安装与使用

# 快速安装(macOS / Linux)
curl -fsSL https://github.com/SaladDay/cc-switch-cli/releases/latest/download/install.sh | bash

# 交互式模式(推荐)
cc-switch

# 命令行模式
cc-switch provider list              # 列出供应商
cc-switch provider switch <id>       # 切换供应商
cc-switch provider export <id>       # 导出配置
cc-switch provider stream-check <id> # 检查供应商流健康度
cc-switch env tools                  # 检查本地 CLI 工具
cc-switch mcp sync                   # 同步 MCP 服务器

# 指定应用
cc-switch --app claude provider list    # 管理 Claude 供应商
cc-switch --app codex mcp sync          # 同步 Codex MCP
cc-switch --app gemini prompts list     # 列出 Gemini 提示词

2.3 支持的 CLI 工具

cc-switch 不仅管理 Claude Code,还支持:

  • Codex(OpenAI)
  • Gemini CLI(Google)
  • OpenCode(开源多 Provider CLI)
  • OpenClaw(兼容 OpenAI 接口的自定义工具)

三、Linux 虚拟机无限制模式

在 Linux 虚拟机或 Docker 容器中,以 root 用户运行 Claude Code 时,官方会出于安全考虑阻止 --dangerously-skip-permissions 的使用。此时需要配合环境变量:

# 在 root 用户下开启无限制模式(适用于 Docker/VM)
IS_SANDBOX=1 claude --dangerously-skip-permissions

IS_SANDBOX=1 向 Claude Code 声明当前处于沙盒环境,从而允许 root 用户使用危险模式。

3.1 危险模式的安全边界

--dangerously-skip-permissions 是 Anthropic 官方提供的"Safe YOLO Mode",让 Claude 绕过所有权限提示,完全自主执行直到任务完成。

适用场景

  • 重复性低风险的 Lint 错误修复
  • 标准代码脚手架生成
  • 自动化重构
  • CI/CD 流水线中的自动化执行
  • 沙盒和容器环境(强烈推荐)

安全实践

  • 仅在隔离环境运行:Docker 容器、VM、CI Runner
  • 避免生产环境:不要在有生产凭证、客户数据的机器上使用
  • 网络隔离:容器内限制外网访问,防止数据外泄

3.2 Docker 隔离方案示例

# docker-compose.yml
services:
  agent:
    image: claude-code:latest
    environment:
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      - IS_SANDBOX=1
    volumes:
      - ${WORKSPACE}:/workspace
    working_dir: /workspace
    network_mode: none  # 网络隔离
    command: claude --dangerously-skip-permissions

四、快速参考

场景命令
安装 ClawGodcurl -fsSL https://github.com/0Chencc/clawgod/releases/latest/download/install.sh | bash
运行补丁版claude(绿色 Logo)
运行原版claude.orig(橙色 Logo)
更新(自动重补丁)claude update
卸载 ClawGodbash ~/.clawgod/install.sh --uninstall
添加 API 供应商cc-switch provider add(交互式)
切换供应商cc-switch provider switch <id>
VM root 无限制模式IS_SANDBOX=1 claude --dangerously-skip-permissions

以上就是Linux环境下使用Claude Code的实战指南的详细内容,更多关于Linux使用Claude Code的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Ubuntu下安装mysql和简单操作

    详解Ubuntu下安装mysql和简单操作

    这篇文章主要介绍了详解Ubuntu下安装mysql和简单操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-12-12
  • Linux中mkdir函数与Windows中_mkdir函数的区别

    Linux中mkdir函数与Windows中_mkdir函数的区别

    这篇文章主要介绍了Linux中mkdir函数与Windows中_mkdir函数的区别的相关资料,需要的朋友可以参考下
    2016-01-01
  • 详解Mac自带apache配置

    详解Mac自带apache配置

    Mac自身带了apache,可以直接用来搭建本地web容器,配置过程基本同于windows,但有几个点需要注意一下(避免踩坑)
    2017-06-06
  • Linux卸载自带jdk并安装新jdk版本的图文教程

    Linux卸载自带jdk并安装新jdk版本的图文教程

    在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK 1.8,所以本文给大家详细介绍了Linux卸载自带jdk并安装新jdk版本的图文教程,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2025-04-04
  • apache虚拟主机配置: 二级目录访问跳转到其他根文件夹

    apache虚拟主机配置: 二级目录访问跳转到其他根文件夹

    这篇文章主要介绍了apache虚拟主机配置: 二级目录访问跳转到其他根文件夹,需要的朋友可以参考下
    2016-11-11
  • centos6.5中用yum方式安装php5.4与apache2.2的步骤

    centos6.5中用yum方式安装php5.4与apache2.2的步骤

    相信大家都知道lamp的安装配置,最麻烦的是apache和php,网上关于apache和php的安装配置有很多的相关文章,本文通过针对版本进行详细的介绍,文章主要介绍的是centos6.5中用yum方式安装php5.4与apache2.2的步骤,感兴趣的朋友们可以参考学习。
    2016-10-10
  • Apache SeaTunnel 将 CDC 数据流转换为 Append-Only 模式的详细过程

    Apache SeaTunnel 将 CDC 数据流转换为 Appen

    RowKindExtractor转换插件用于将CDC数据流转换为Append-Only模式,同时将原始的 RowKind 信息提取为一个新的字段,本文将介绍RowKindExtractor的核心功能,其在 CDC 数据同步场景下的使用方法,以及配置选项、注意事项及多种应用示例,感兴趣的朋友一起看看吧
    2025-11-11
  • Linux命令学习总结:详解shutdown命令

    Linux命令学习总结:详解shutdown命令

    本篇文章主要介绍了Linux命令学习总结:详解shutdown命令,该命令可以安全关闭或者重新启动系统。有兴趣的可以了解一下。
    2016-12-12
  • 在Linux系统中设置系统时间的操作方法

    在Linux系统中设置系统时间的操作方法

    本文介绍了在CentOS系统中设置和同步系统时间的方法,首先,通过查看系统时间和时区,发现与当地时间不一致,然后,通过设置正确的时区,将系统时间调整为北京时间,最后,通过开启NTP服务,确保系统时间与网络时间同步,避免误差,需要的朋友可以参考下
    2026-02-02
  • CentOS6.4 下安装SVN的详细教程(超详细)

    CentOS6.4 下安装SVN的详细教程(超详细)

    这篇文章主要介绍了CentOS6.4 下安装SVN的详细教程,在安装之前需要检查是否已经安装过了,然后使用yum install subversion安装,具体操作详细过程请参考本文
    2016-10-10

最新评论