dmesg、查文件、分析串口日志、編譯 Buildroot/Yocto、臨時寫腳本,這些事都在終端里完成。命令用多了以后,有些參數能記住;但也有一些命令,隔一段時間不用就忘。例如:
find 找出某類文件;grep 從日志里過濾錯誤;
這時候我們通常會打開瀏覽器搜索。ShellGPT 解決的就是這個小問題:把大模型接到終端里,讓我們直接在命令行里描述需求,讓它先生成命令、代碼片段,或者給出一段日志分析。
注意,這里說的是先生成草稿。ShellGPT 不是替代我們理解 Linux,更不是讓我們閉著眼睛執行命令。最終要不要執行,還是要自己判斷。
ShellGPT 是一個 Python 寫的命令行工具,命令名叫 sgpt。
GitHub 倉庫:https://github.com/TheR1D/shell_gpt
PyPI 項目頁:https://pypi.org/project/shell-gpt

它的基本用法:
sgpt "你的問題"
生成 Shell 命令:
sgpt --shell "find all json files in current folder"
--shell 也可以寫成 -s。上面這個例子通常會生成:
find . -type f -name "*.json"
Shell 模式下不會直接悄悄執行,而是會提示:
[E]xecute, [M]odify, [D]escribe, [A]bort:
這幾個選項很好理解:
E:執行;M:修改;D:解釋;A:放棄。剛開始使用時,建議多選 D 看解釋。涉及 rm、dd、mkfs、燒錄、權限修改這類命令,更不能直接回車。
ShellGPT 的整體鏈路如下:

ShellGPT 本身不是大模型。它只是命令行客戶端,真正生成內容的是后端模型。
當前倉庫的 pyproject.toml 要求:
Python >= 3.10
安裝命令:
pip install shell-gpt

如果你的環境里 pip 不確定對應哪個 Python,可以寫成:
python3 -m pip install shell-gpt
查看版本:
sgpt --version

安裝完成后,先簡單測試:
sgpt "hello"

ShellGPT 的后端選擇可以先看這張圖:

如果第一次運行時沒有 API Key,ShellGPT 會提示輸入,并寫入:
~/.config/shell_gpt/.sgptrc
后面不管接 OpenAI、DeepSeek,還是本地 Ollama,主要都是改這個配置文件。
ShellGPT 默認使用 OpenAI 兼容接口。這里的“OpenAI 兼容”不等于只能使用 OpenAI 官方服務。只要平臺提供 OpenAI Chat Completions 兼容接口,一般就可以通過下面三個配置接入:
OPENAI_API_KEY=你的API Key
API_BASE_URL=接口地址
DEFAULT_MODEL=模型名
這幾個配置的含義是:
OPENAI_API_KEY:平臺的 API Key;API_BASE_URL:平臺提供的 OpenAI 兼容接口地址;DEFAULT_MODEL:要調用的模型名。這里有個容易誤會的地方:配置項名字叫 OPENAI_API_KEY,但不代表只能填 OpenAI 官方 Key。接 DeepSeek 時,這里填 DeepSeek API Key 即可。
DeepSeek API 支持 OpenAI 兼容格式,所以 ShellGPT 不需要改代碼,只需要改配置。
DeepSeek API 文檔:https://api-docs.deepseek.com/zh-cn/
編輯配置文件:
vim ~/.config/shell_gpt/.sgptrc
寫入或修改:
OPENAI_API_KEY=你的DeepSeek API Key
API_BASE_URL=https://api.deepseek.com
DEFAULT_MODEL=deepseek-v4-pro

如果更關注速度和成本,也可以改成:
DEFAULT_MODEL=deepseek-v4-flash
DeepSeek 舊模型名 deepseek-chat、deepseek-reasoner 已于北京時間 2026-07-24 23:59 棄用。新配置建議直接使用 deepseek-v4-pro 或 deepseek-v4-flash。
配置完成后,先用低風險問題測試:
sgpt "用一句話解釋什么是設備樹"
再測試命令生成:
sgpt -s "查看當前目錄下最大的10個文件"
DeepSeek 仍然是云端接口。日志、代碼、Token、IP、客戶信息等敏感內容,發送前最好先脫敏。模型名、價格和計費規則也可能變化,實際使用時以 DeepSeek 控制臺和官方文檔為準。
如果不想每次都調用云端 API,也可以讓 ShellGPT 連接本地模型。常見做法是使用 Ollama。
Ollama 官網:https://ollama.com/
本地模型一般不需要按云端 API 計費,日志和代碼通常也不需要發到云端。但數據是否離開本機,仍然取決于你的部署方式和配置。
配置思路如下:
API_BASE_URL=http://localhost:11434/v1
DEFAULT_MODEL=<你的模型名>
USE_LITELLM=true
這里重點是 USE_LITELLM=true。當前 ShellGPT 源碼里,只有打開這個配置,才會通過 LiteLLM 調用本地模型。
本地模型效果不一定穩定。命令能不能寫準,和模型能力、提示詞、問題描述都有關系。
嵌入式 Linux 開發中,比較適合先用 ShellGPT 起草的場景如下:

例如查找大文件:
sgpt -s "查找大于500M的文件"
可能得到:
find / -type f -size +500M 2>/dev/null

這類命令短、容易檢查,比較適合讓 ShellGPT 先生成。
看內核日志時,可以先過濾再交給 ShellGPT:
dmesg | grep -i i2c | sgpt "找出這里面可能的錯誤,并說明原因"
串口日志也類似:
cat uart.log | sgpt "分析這些串口日志,看看有沒有通信異常"
這里要注意:日志分析只能作為線索。真正定位問題,還要結合原理圖、驅動代碼、設備手冊和實際波形。
sgpt --code "寫一個bash腳本,批量把當前目錄下所有.c文件重命名為.cpp"
--code 會盡量只輸出代碼。涉及批量重命名、批量刪除、批量修改文件內容時,建議先在測試目錄里跑一遍。
git diff | sgpt "Generate git commit message for my changes"
這個用法適合生成草稿。最終 commit message 還是要自己確認是否準確。
ShellGPT 還有 Shell 集成、Chat/REPL、Roles、Function calling 等功能。關系可以先看這張圖:

sgpt --install-integration
當前源碼里只支持 Bash 和 Zsh。安裝后會往 .bashrc 或 .zshrc 追加配置,默認快捷鍵是 Ctrl+l。
普通 sgpt 每次問答沒有連續上下文。如果想保留上下文,可以使用:
sgpt --chat debug_i2c "我在調試一個I2C設備,設備地址是0x3C"
sgpt --chat debug_i2c "幫我整理一下接下來可以檢查哪些地方"
也可以進入連續交互模式:
sgpt --repl temp
Roles 可以理解為預設輸出要求:
sgpt --create-role json_generator
sgpt --role json_generator "random: user, password, email"
sgpt --install-functions
這個功能風險更高,因為模型可能調用本機函數甚至執行命令。剛開始使用 ShellGPT 時,不建議急著開啟。
最重要的注意事項放在一張圖里:

簡單說就是三句話:
第一,不要執行自己看不懂的命令。
第二,涉及刪除、格式化、燒錄、權限修改的命令要格外小心。
第三,云端模型不要隨便上傳敏感日志、代碼和客戶信息。
ShellGPT 本質上是一個把大模型接入終端的工具。它能幫我們生成命令、解釋命令、寫代碼片段、分析文本、保存連續對話。
對嵌入式 Linux 開發者來說,很多問題也都和命令、日志、腳本有關。把這些問題直接在終端里問出來,有時候確實能少切幾次瀏覽器,也能更快得到一個排查方向。

END
作來源:嵌入式大雜燴