CodeGeeX支持三种Shell脚本生成方式:Web界面零配置适合快速验证,VS Code插件可复用上下文提升工程耦合度,YAML驱动配合Jinja2模板实现多环境批量生成,sed替换则适用于无Python依赖的轻量场景。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要为 Linux 服务器快速生成可执行的 Shell 脚本,完成日志清理、服务启停、健康检查等重复性运维任务,但手动编写容易遗漏错误处理、权限校验或路径安全判断,导致脚本在生产环境运行失败甚至引发事故。
用 CodeGeeX Web 界面零配置生成基础运维脚本
适合首次使用、无本地开发环境、需快速验证逻辑的场景。
访问 CodeGeeX 官网 → 点击「在线体验」进入代码生成界面 → 在输入框中粘贴完整提示词,包含 # language: shell 标签和明确约束。
输入以下内容(不可删减任何一行):
# language: shell
# 任务:生成一个清理 /var/log/nginx/ 下超过30天的 .log 文件的脚本;要求自动创建 /var/log/nginx/archive/ 目录;移动前检查目标目录写权限;记录每一步操作到 /var/log/clean-nginx.log;失败时退出并打印错误信息。
点击「生成」按钮 → 等待 3~5 秒 → 查看返回结果是否以 #!/bin/bash 开头,且包含 set -euo pipefail、mkdir -p、find … -mtime +30 -exec mv {} … \; 等关键结构。
【必须手动补全第一行 shebang】 若返回脚本开头缺失 #!/bin/bash,需立即在顶部插入,否则 chmod +x 后执行会报 command not found。
在 VS Code 中用 CodeGeeX 插件生成带上下文的运维脚本
该方式能复用当前项目路径、已有变量命名风格和错误处理习惯,生成脚本与工程耦合度更高。
第一步:确保已安装 CodeGeeX 官方插件(v2.8.1+),并在状态栏看到蓝色机器人图标显示「已连接」。
第二步:新建 deploy.sh → 输入 #!/bin/bash → 换行后写注释:# 检查 Redis 服务是否监听 6379 端口,若未响应则尝试重启 systemd 服务,并发送告警邮件到 admin@example.com。
第三步:将光标停在注释下方空白行 → 按 Ctrl+Enter(Windows/Linux)或 Cmd+Enter(macOS)触发 CodeGeeX 补全 → 插入生成代码。
第四步:检查生成内容是否调用 timeout 10 bash -c 'echo > /dev/tcp/localhost/6379' 2>/dev/null;若只用 nc -z localhost 6379,则在部分最小化系统中可能因 nc 未安装而失败。
通过 YAML 配置驱动批量生成多环境运维脚本
当你需要为测试、预发、生产三套环境分别生成启动/停止脚本,且端口、路径、超时时间各不相同时,YAML 驱动是最可靠的方式。
CodeGeeX 2.21.0是智谱AI推出的AI编程助手版本,对Inline Chat功能进行了重大优化,包括UI设计升级、支持流式输出以提升响应速度,并新增“查看思路”按钮以便理解代码原理。同时,该版本在编辑器中新增CodeLens控件,支持一键“解释”代码或“添加注释”。目前该工具对个人开发者免费开放。
方法一:定义配置文件 ops-config.yaml
service_name: "codegeex-api"
port: 8080
log_dir: "/data/logs/codegeex"
archive_dir: "/data/logs/codegeex/archive"
retention_days: 7
health_check_url: "http://localhost:8080/health"
方法二:运行 Python 预处理器
python3 gen_shell.py --config ops-config.yaml --template start.j2 --output start-prod.sh
方法三:验证生成结果
执行 head -n 5 start-prod.sh,确认第 3 行是否为 export CODEGEEX_PORT="8080";【若输出中 port 值仍为 PORT_PLACEHOLDER,说明 jinja2 模板未被正确解析,需检查 gen_shell.py 是否导入了 jinja2.Environment】
用 sed 替换模板生成免依赖轻量脚本
适用于 Docker 容器内、嵌入式设备等无法安装 Python 或 pip 的受限环境。
准备 template.sh,内容含占位符:# PORT_PLACEHOLDER#、# LOG_DIR_PLACEHOLDER#、# TIMEOUT_PLACEHOLDER#。
执行 sed -e "s/# PORT_PLACEHOLDER#/8080/g" -e "s/# LOG_DIR_PLACEHOLDER#//var/log/codegeex/g" -e "s/# TIMEOUT_PLACEHOLDER#/30/g" template.sh > deploy.sh
运行 grep -q "8080\|/var/log/codegeex\|30" deploy.sh && echo "替换成功" || echo "替换失败,请检查占位符拼写"
这一步操作起来很简单,直接把文件拖进去就行。

















