在 Proot-Distro Ubuntu 容器中集成 zsh 与 cc 命令的几种方式
在使用 Termux 配合 proot-distro 运行 Ubuntu 发行版时,我们经常需要快速登录到特定用户、切换工作目录,并启动一个交互式的 zsh。更进一步,有时希望在进入 zsh 之前或之后自动执行一条命令——例如启动 cc(即 Claude Code 的缩写,一个 AI 编程助手)。本文将详细介绍如何优雅地实现这一需求。
在使用 Termux 配合 proot-distro 运行 Ubuntu 发行版时,我们经常需要快速登录到特定用户、切换工作目录,并启动一个交互式的 zsh。更进一步,有时希望在进入 zsh 之前或之后自动执行一条命令——例如启动 cc(即 Claude Code 的缩写,一个 AI 编程助手)。本文将详细介绍如何优雅地实现这一需求。
随着 AI 编程工具的爆发式增长,我们终端里跑的 CLI 工具越来越多:Claude Code、Codex、Gemini CLI、OpenCode、OpenClaw,以及即将支持的 Hermes Agent。每个工具都有自己独立的配置格式——JSON、TOML、.env 文件散落在不同的隐藏目录里。
多年来, Kaniko一直是构建镜像的首选方案,它是谷歌专为在非特权容器内构建镜像而开发的工具,无需 Docker 守护进程。然而在 2025 年 6 月,谷歌将该代码库归档,现在它已变为只读。GitLab 也已移除 Kaniko 的相关文档,并推荐使用 Buildah 或 Podman 等替代工具。
直接在termux中安装claude code会遇到下面错误:
bun -version
error: "/data/data/com.termux/files/home/.bun/bin/bun" has unexpected e_type: 2
这个错误是因为bun是为标准Linux环境(依赖glibc库)编译的,和Termux的Android环境(bionic libc)不兼容。
通过配置 Git 的凭据助手(credential helper),可以记住 HTTPS 访问时需要的用户名和 Token(作为密码),避免重复输入。
1git config --global credential.helper cache
2# 默认缓存 15 分钟,可修改超时(秒):
3git config --global credential.helper 'cache --timeout=3600'
1git config --global credential.helper store
2# 凭据会保存在 ~/.git-credentials,首次输入后永久生效
1git config --global credential.helper manager-core
2# 或旧版:git config --global credential.helper wincred
1git config --global credential.helper osxkeychain
libsecret)
1sudo apt-get install libsecret-1-0 libsecret-1-dev
2sudo make -C /usr/share/doc/git/contrib/credential/libsecret
3git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
gnome-keyring 等。1git remote set-url origin https://你的用户名:你的[email protected]/用户名/仓库.git
⚠️ Token 会明文存储在 .git/config 中,且 git remote -v 会暴露 Token。
执行git pull 输出好多编码非中文的字符:
1remote: Enumerating objects: 42, done.
2remote: Counting objects: 100% (42/42), done.
3remote: Compressing objects: 100% (18/18), done.
4remote: Total 32 (delta 9), reused 32 (delta 9), pack-reused 0 (from 0)
5Unpacking objects: 100% (32/32), 4.17 KiB | 8.00 KiB/s, done.
6From github.com:JermineHu/jerminehu.github.io
7 08d9ec6..9c5c1ec master -> origin/master
8Updating 08d9ec6..9c5c1ec
9Fast-forward
10 .../29\346\227\245/\345\205\263\344\272\216claude code\344\275\277\347\224\250.md" | 39 +++++++++++++++++++++++++++++++++++++++
11 .../30\346\227\245/\346\210\220\344\270\272\350\207\252\345\267\261.md" | 1 +
12 .../03\346\227\245/\345\205\263\344\272\216\347\235\241\347\234\240.md" | 21 +++++++++++++++++++++
13 ...203\345\271\263\350\203\275\346\204\210\344\270\211\345\215\203\347\226\276.md" | 15 +++++++++++++++
14 ...214\345\222\214\346\203\263\346\210\220\344\270\272\347\232\204\344\272\272.md" | 14 ++++++++++++++
15 .../05\346\227\245/\346\234\235\350\212\261\345\244\225\346\213\276.md" | 6 ++++++
16 6 files changed, 96 insertions(+)
17 create mode 100644 "6. \350\241\250\350\276\276/\345\215\241\347\211\207/2026\345\271\264/2\345\255\243\345\272\246/05\346\234\210/03\346\227\245/\345\205\263\344\272\216\347\235\241\347\234\240.md"
18 create mode 100644 "6. \350\241\250\350\276\276/\345\215\241\347\211\207/2026\345\271\264/2\345\255\243\345\272\246/05\346\234\210/05\346\227\245/\345\277\203\345\271\263\350\203\275\346\204\210\344\270\211\345\215\203\347\226\276.md"
19 create mode 100644 "6. \350\241\250\350\276\276/\345\215\241\347\211\207/2026\345\271\264/2\345\255\243\345\272\246/05\346\234\210/05\346\227\245/\346\210\221\344\273\254\347\273\210\345\205\266\344\270\200\347\224\237\345\257\273\346\211\276\347\232\204\357\274\214\345\272\224\350\257\245\346\230\257\350\207\252\345\267\261\345\226\234\346\254\242\347\232\204\347\224\237\346\264\273\346\226\271\345\274\217\357\274\214\345\222\214\346\203\263\346\210\220\344\270\272\347\232\204\344\272\272.md"
20 create mode 100644 "6. \350\241\250\350\276\276/\345\215\241\347\211\207/2026\345\271\264/2\345\255\243\345\272\246/05\346\234\210/05\346\227\245/\346\234\235\350\212\261\345\244\225\346\213\276.md"
遇到的问题是 Git 默认将非 ASCII 路径名(如中文)转义为 \nnn 形式的八进制编码,这是为了确保在老旧或非 UTF-8 环境中输出不会乱码。解决办法很简单:关闭路径转义。
我们在使用tensorflow+pycharm或者PyTorch写程序的时候, 有时候会在控制台终止掉正在运行的程序,但是有时候程序已经结束了,nvidia-smi也看到没有程序了,但是GPU的内存并没有释放,这是怎么回事呢?
OpenShift是红帽的云开发平台即服务(PaaS)。自由和开放源码的云计算平台使开发人员能够创建、测试和运行他们的应用程序,并且可以把它们部署到云中。Openshift广泛支持多种编程语言和框架,如Java,Ruby和PHP等。另外它还提供了多种集成开发工具如Eclipse integration,JBoss Developer Studio和 Jenkins等。OpenShift 基于一个开源生态系统为移动应用,数据库服务等,提供支持。 OpenShift Online服务构建在Red Hat Enterprise Linux上。Red Hat Enterprise Linux提供集成应用程序,运行库和一个配置可伸缩的多用户单实例的操作系统,以满足企业级应用的各种需求。
本文记录了基于docker部署最新ceph版本的多节点高可用测试详尽过程,切身体会比ceph-deploy方便得多,希望能给初次接触ceph的同学提供些许参考。