前言

在日常Linux运维、开发工作中,很多小伙伴经常遇到记不住Shell命令、不会编写脚本、不懂代码逻辑、排查问题无思路等痛点。传统方式需要频繁翻阅文档、搜索引擎检索,极大降低工作效率。而ShellGPT作为一款基于大语言模型(LLM)的命令行AI工具,完美解决了这类问题。

ShellGPT支持全平台操作系统与多种Shell环境,可直接在服务器命令行中实现智能问答、自动生成Shell运维命令、批量编写代码脚本、持续上下文对话、交互式调试等功能。无需切换网页、无需打开客户端,全程终端操作,极大提升运维、开发、故障排查的工作效率。本文将从零开始,详细讲解ShellGPT的完整安装、个性化配置、全场景实战用法,新手可直接上手落地使用。

一、ShellGPT工具简介

ShellGPT 是一个基于 AI 大型语言模型(LLM)的命令行工具,它通过 AI 技术帮助用户快速生成 shell 命令、代码片段和技术文档。它适配性极强,支持 Linux、macOS、Windows 全平台操作系统,同时兼容 PowerShell、CMD、Bash、Zsh 等主流 shell 环境,是运维、开发人员的终端AI辅助神器。

二、ShellGPT的安装与配置

2.1 安装Python和pip(环境依赖)

ShellGPT基于Python开发,要求Python版本≥3.8,首先检查服务器Python版本:

python3 --version

若服务器未安装pip工具,根据Linux系统版本执行对应安装命令:

1、Debian/Ubuntu 系 Linux:

sudo apt update && sudo apt install python3-pip

2、RedHat/Rocky/CentOS 系 Linux:

yum install python3 python3-pip -y

2.2 安装ShellGPT工具

可直接通过pip官方安装,国内用户推荐清华源加速安装,避免下载超时、速度过慢问题:

1、官方源安装

pip3 install shell-gpt

2、清华镜像源加速安装(推荐)

pip3 install shell-gpt -i https://pypi.tuna.tsinghua.edu.cn/simple

2.3 配置API密钥与个性化参数

首次安装完成后,终端执行 shell-gpt 命令,会自动提示输入API-key,输入密钥后,系统会自动生成配置文件 ~/.config/shell_gpt/.sgptrc,所有个性化配置均在此文件中修改。

核心必须配置三个参数,其余参数可根据需求自定义:

  • OPENAI_API_KEY:大模型API访问密钥,用于身份验证与计费,无默认值,必须手动配置

  • API_BASE_URL:大模型API请求地址,支持自定义代理、私有化模型服务

  • DEFAULT_MODEL:默认调用的大语言模型,决定生成内容的质量、速度,默认gpt-3.5-turbo

完整配置文件参数详解(生产推荐配置):

CHAT_CACHE_PATH=/tmp/chat_cache  # 聊天缓存存储路径
CACHE_PATH=/tmp/cache              # 通用缓存路径
CHAT_CACHE_LENGTH=100              # 聊天缓存最大数量
CACHE_LENGTH=100                   # 通用缓存最大数量
REQUEST_TIMEOUT=60                 # 接口请求超时时间
DEFAULT_MODEL=qwen-max-latest      # 默认调用模型(本文使用通义千问)
DEFAULT_COLOR=magenta              # 终端输出文字颜色
ROLE_STORAGE_PATH=/root/.config/shell_gpt/roles  # 自定义角色存储路径
DEFAULT_EXECUTE_SHELL_CMD=false    # 关闭自动执行命令(人工审核更安全)
DISABLE_STREAMING=false            # 开启流式响应输出
CODE_THEME=dracula                 # 代码高亮主题
OPENAI_FUNCTIONS_PATH=/root/.config/shell_gpt/functions  # 函数调用存储路径
OPENAI_USE_FUNCTIONS=true          # 开启AI函数调用能力
SHOW_FUNCTIONS_OUTPUT=false        # 隐藏函数调用原始输出
API_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1/  # 兼容OpenAI接口地址
PRETTIFY_MARKDOWN=true             # 启用Markdown格式化输出
USE_LITELLM=false
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx  # 替换为自己的API密钥

免费密钥获取方式:可注册阿里云百炼大模型平台账号,登录控制台即可领取100万免费调用额度,完全满足日常学习、测试、轻度生产使用。

三、ShellGPT全场景实战使用教程

3.1 通用知识问答模式

基础用法:sgpt "咨询问题",可用于命令解释、技术答疑、知识点科普,适合新手学习、问题排查。

示例:解释Linux删除命令作用

[root@rockylinux9 ~]# sgpt  "请解释这条命令的作用:find . -name '*.log' -exec rm {} \;"
这条命令的作用是查找当前目录(.)及其子目录中所有扩展名为 .log 的文件,并将它们删除。具体解释如下:       
 1 find .:从当前目录开始查找。                                                               
 2 -name '*.log':匹配文件名符合 *.log 模式的文件。                                           
 3 -exec rm {} \;:对每个找到的文件执行 rm 命令,{} 是占位符,表示当前找到的文件路径,\; 表示命令结束。       
注意:此命令会直接删除文件,无法恢复,请谨慎使用。建议先用 find . -name '*.log' 查看结果,确认无误后再执行删除操作。

3.2 Shell命令自动生成与执行

使用参数 --shell,可通过自然语言描述需求,AI自动生成对应Shell命令,支持手动执行、查看解释、放弃操作,适配各类运维场景。

示例1:查找系统所有ISO文件

[root@rockylinux9 ~]# sgpt --shell '查找当前系统中所有的iso文件,并列出来'
find / -type f -name "*.iso" 2>/dev/null && echo "ISO files listed above" || echo "No ISO files found"
[E]xecute, [D]escribe, [A]bort: E
/var/lib/rear/output/rear-rockylinux9.iso
ISO files listed above

示例2:查看服务器进程内存占用排行

[root@rockylinux9 ~]#  sgpt --shell '查看当前服务器每个进程占用的内存'
ps aux --sort=-%mem | awk '{print $2, $4, $11}' | head -n 20 && free -m
[E]xecute, [D]escribe, [A]bort: E
PID %MEM COMMAND
1296 2.9 /usr/bin/gnome-shell
1668 0.7 /usr/libexec/ibus-x11
1974 0.7 /usr/bin/python3
1335 0.6 /usr/bin/Xwayland
......

操作说明:输入 E 执行命令、输入 D 解释命令、输入 A 放弃操作。

3.3 代码/脚本自动生成模式

使用参数 --code,AI可根据需求自动生成Shell脚本、Dockerfile、Python代码等各类代码,自带详细注释,可直接落地使用。

示例1:自动生成数据备份Shell脚本

[root@rockylinux9 ~]# sgpt --code "写一个shell脚本,备份/data目录到/backups,备份完成后,校验备份完整性,并删除3天之前的备份,代码添加注释"
#!/bin/bash
# 定义源目录和备份目录
SOURCE_DIR="/data"
BACKUP_DIR="/backups"
DATE=$(date +%Y%m%d%H%M%S)  # 当前时间戳,用于生成唯一的备份文件名
BACKUP_FILE="$BACKUP_DIR/data_backup_$DATE.tar.gz"

# 创建备份目录(如果不存在)
mkdir -p "$BACKUP_DIR"

# 执行备份操作
tar -czf "$BACKUP_FILE" "$SOURCE_DIR"
if [ $? -ne 0 ]; then
    echo "备份失败,请检查错误。"
    exit 1
fi

# 校验备份完整性
tar -tzf "$BACKUP_FILE" > /dev/null
if [ $? -ne 0 ]; then
    echo "备份文件校验失败,请检查备份内容是否完整。"
    rm -f "$BACKUP_FILE"  # 删除损坏的备份文件
    exit 1
fi

# 删除3天之前的备份文件
find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +3 -exec rm -f {} \;

echo "备份完成并成功校验,旧备份已清理。"

示例2:生成Python项目Dockerfile

[root@rockylinux9 ~]# sgpt --code "创建基于 Python 3.9 的 Dockerfile,安装依赖 requirements.txt"
FROM python:3.9
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "your_script.py"]

3.4 连续上下文聊天模式

使用参数--chat 会话ID,开启持续对话模式,同一个会话ID可保留上下文记忆,实现连续问答、深度答疑,适合系统性学习、问题复盘。

# 开启会话temp_chat,连续问答
[root@rockylinux9 ~]# sgpt --chat temp_chat 'AI会取代运维吗'
AI不会完全取代运维,但会改变其工作方式。AI擅长处理重复性和自动化任务(如监控、告警和故障预测),但在复杂问题解决、架构设计、业务决策等方面仍依赖人类经验。未来主流是AIOps人机协作模式。

[root@rockylinux9 ~]# sgpt --chat temp_chat '大专学历能学云计算吗'
大专学历完全可以学习云计算,该领域更看重实操能力与项目经验,而非学历门槛...

[root@rockylinux9 ~]# sgpt --chat temp_chat '我问的第二个问题是啥'
你的第二个问题是:“大专学历能学云计算吗?”

3.5 REPL交互式实时模式

REPL(Read-Eval-Print Loop)是交互式实时环境,无需重复输入命令,可持续输入需求、实时获取结果,支持纯问答、Shell命令、代码解析三种场景,按 Ctrl+C 退出。

1、通用交互式问答

[root@rockylinux9 ~]# sgpt --repl temp
Entering REPL mode, press Ctrl+C to exit.
>>> AI会取代运维吗
AI不会完全取代运维,但会改变其工作方式。AI可以自动化处理监控、故障排查和资源优化等任务,提升效率并减少人为错误。运维的核心价值在于复杂问题决策、架构设计和安全保障,AI仅作为辅助工具。

2、Shell交互式运维(常用)

[root@rockylinux9 ~]# sgpt  --repl temp --shell
Entering shell REPL mode, type [e] to execute commands or [d] to describe the commands, press Ctrl+C to exit.
>>> 当前服务器磁盘占用率情况
df -h && du -sh /* 2>/dev/null
>>> e
# 自动执行命令并输出磁盘占用结果

3、脚本文件解析解释

# 直接加载本地脚本,AI自动解析脚本功能与逻辑
sgpt --repl temp <show-busy-java-threads.sh

四、总结

ShellGPT作为一款轻量化、高效率的终端AI工具,彻底革新了传统Linux运维、开发的工作模式,无需切换界面、无需记忆繁杂命令,通过自然语言即可完成命令生成、代码编写、问题答疑、交互式调试等全场景操作。

本文完整讲解了ShellGPT的环境部署、核心配置、五大实战用法,搭配阿里云百炼免费大模型接口,零成本即可实现服务器AI赋能。对于运维人员、后端开发者、云计算学习者而言,熟练使用ShellGPT能够大幅降低操作门槛、减少人为失误、提升工作效率,是提升个人技术生产力的必备工具。在AIOps自动化运维趋势下,掌握终端AI工具也是技术人员的核心加分技能。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐