老年人记不住命令?ShellGPT 是你的终端外挂
ShellGPT = 命令行 × AI。无需记忆复杂参数,一句话生成精准命令;无需手动解析输出,管道直接丢给 AI 分析。本文详解安装配置、模型选择(白嫖阿里云)、三种使用模式(简洁/交互/会话),以及 netstat、kubectl、git 等实战场景。适合所有想在终端里"偷懒"的开发者和运维。 安装非常的简单粗暴,一条命令即可 1)基于白piao的精神,选择了千问,至于原因: 阿里云百炼 ,低门槛快速入门 2)确定好平台之后,登陆选择模型,随便选一个即可,这里笔者选择了 3)点击模型查看详情,最主要的是拿到api key 4)生成api即可,将其按照下列格式准备着 1)先配置环境变量: 2)hello world 1)日常中工作中经常容易迷惑的命令:find,找出目录下1天前修改的文件?找出目录下1天内修改的文件? 这种问题使用sgpt简直不要太容易 2)我只想知道命令是什么,不想听到你bb这么多没用的消息 加上-s参数即可 还贴心的询问要不要执行,敲 这简直就是老年人记不住命令的福音啊 进入一个完全交互式的一问一答会话环境,并且上下文感知 交互模式也可以进入之前的shell模式,即交互执行模式,sgpt回答给出命令之后,可以选择立即执行 该模式最大的特点就是内容记录下来,当还需要使用该上下文的时候,可以继续询问 列出所有会话: 查看会话内容: 注:在交互--repl模式的内容也能够看到 乍一看两个模式非常相似,其实也有差别 --chat 会话模式: --repl 交互模式: 这里据一个例子让大家更加清晰的理解 1)早上日常巡检系统,看看目录下有哪些文件 2)中午的时候开始深度与sgpt交流一个关于kafka的问题 3)下午的时候想起来上午巡检的内容,还有个地方没做完:有多少文件是1天前修改的,这时候继续上午巡检的上下文 4)快要下班的时候再统计,这次为了专注下班之前完成,进入了--repl交互模式,之前会话模式的内容也能够看到 1)netstat -nlpt | sgpt '监听了那些端口,并且把进程名打印出来' 2)kubectl describe pod xxx | sgpt "解释这里的异常" 3)git diff | sgpt "帮我 review 这段改动" sgpt极大的增强了日常使用命令行的效率,并且也在重构命令行使用的方式 至此,本文结束前言
安装
pip3 install shell-gpt选择模型
![]()
Qwen3.5-Plus

export OPENAI_API_KEY="sk-***********************"
export API_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
export DEFAULT_MODEL="qwen-plus"OPENAI_API_KEY,就是刚才生成的API_BASE_URL,这是api地址,在文档中也可以找到DEFAULT_MODEL,默认使用的模型初次使用
export OPENAI_API_KEY="sk-***********************"
export API_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
export DEFAULT_MODEL="qwen-plus"> sgpt '你是谁?'
我是 ShellGPT,你的编程与系统管理助手。我专为 Linux/Debian GNU/Linux 13(代号 trixie)环境优化,熟悉 zsh
shell、包管理(apt)、服务管理(systemd)、脚本编写及常见运维任务。我能帮你调试命令、解释错误、生成安全的 Bash/Zsh 脚本、配置服务或排查网络/权限问题。所有响应力求简洁(约 100 字),并用 Markdown
增强可读性(如 code、加粗、列表等)。数据仅保留在当前对话中,不持久化。需要执行具体任务?比如:
• ✅ sudo apt update 后出错?
• ✅ 想写个自动备份脚本?
• ✅ systemctl status nginx 显示 failed?
随时告诉我 👇日常使用
> sgpt '找出当前目录下1天前修改的文件'
在当前目录下查找 1天前修改 的文件(即修改时间恰好为24小时前),可使用:
find . -maxdepth 1 -type f -mtime 1
⚠️ 注意:-mtime 1 表示“恰好 24–48 小时前”(即 24 ≤ 修改时间 < 48 小时),这是 find 的标准行为(按完整天数向下取整)。
若需精确到1天(±几分钟),用 -mmin 更准:
find . -maxdepth 1 -type f -mmin +1439 -mmin -1441
(≈24h = 1440 分钟;+1439 表示 >1439min,-1441 表示 <1441min,覆盖 ±1 分钟误差)
排除隐藏文件?加 -not -name ".*"。需要递归子目录?删掉 -maxdepth 1。> sgpt -s '找出当前目录下1天前修改的文件'
find . -type f -mtime 1
[E]xecute, [M]odify, [D]escribe, [A]bort:e立即执行,马上就将所有的1天前修改的文件列出来交互模式
> sgpt --repl temp
Entering REPL mode, press Ctrl+C to exit.
>>> 当前操作系统是什么
...
>>> 当前内核的版本是什么
...> sgpt -s --repl work-cmd
Entering shell REPL mode, type [e] to execute commands or [d] to describe the commands, press Ctrl+C to exit.
>>> 找出/data目录下超过一天的文件
find /data -type f -mtime +1
>>> e
/data/test/1
/data/test/2会话模式
> sgpt --chat find-command "找出/data下的所有的log结尾的文件"
...
> sgpt --chat find-command "再找出1天前的"> sgpt --list-chats
/tmp/chat_cache/find-command> sgpt --show-chat find-command交互模式与会话模式的区别
> sgpt --chat monday '查看/data/目录下有多少个文件'> sgpt --repl kafka-topic> sgpt --chat monday '有那些文件是1天前修改的'> sgpt --repl monday
... # 显示之前的上下文
>>> 把1天前修改的文件全部删掉
...奇技淫巧
> sudo netstat -nlpt | sgpt '监听了哪些端口,并且把进程名打印出来'
以下是监听的端口及其对应进程(去重合并 IPv4/IPv6):
• 10887/tcp → trojan
• 16067/tcp → sunloginclient
• 631/tcp & 631/tcp6 → cupsd (IPP printing service)
所有服务均绑定本地(127.0.0.1 或 ::1),除 trojan(0.0.0.0:10887)外,其余均不对外网开放。建议用 sudo ss -tulpn | grep :<PORT> 验证详情。总结
联系我

在下才疏学浅,有撒汤漏水的,请各位不吝赐教...