Mods 是一个能让你在终端里与大语言模型(LLM)轻松交互的工具。除了直接问答,它强大的管道特性和灵活的参数配置,使其能够与Shell脚本深度融合,创造出高效的自动化工作流。

本文将分享我个人的一些mods使用实践,通过几个自定义的Shell函数和别名,将AI能力无缝集成到日常的命令行操作中。

1. 交互式翻译工具

我经常需要翻译一些英文技术词汇或句子,因此我创建了两个工具:一个简单的别名trans用于快速翻译,以及一个transloop函数用于进入连续翻译模式。

查看 trans 和 transloop 脚本
# 别名:trans
# 用法: trans "要翻译的英文"
alias trans="mods -q --no-cache '/nothink将下面英文文本翻译成中文,输出格式是: - 英文:\n - 中文:\n - 例句:\n.需要翻译的内容是:'"

# 函数:transloop
# 用法: transloop
function transloop() {
    echo "翻译模式启动,输入quit退出"
    echo "------------------------------------"
    while true; do
        printf "英文:"
        read user_input
        if [[ "$user_input" == "quit" ]]; then
            break
        fi
        if [[ -z "$user_input" ]]; then
            continue
        fi
        # 调用mods进行翻译
        mods -q --no-cache "/nothink将下面英文文本翻译成中文,输出格式是: - 英文:\n - 中文:\n - 例句:\n.需要翻译的内容是:'$user_input'"
    done
    echo "------------------------------------"
    echo "翻译模式已退出"
}

Info

通过--no-cache可以不保存对话内容,-q参数则让输出更干净。我通过精心设计的Prompt,让AI返回固定格式的翻译结果,包括英文原文、中文翻译和例句,非常清晰。

2. 代码/命令解释器

当我遇到不熟悉的Shell命令或代码片段时,explain别名可以快速获得解释。

查看 explain 脚本
# 别名:explain
# 用法: cat file.sh | explain 或 explain "ls -l"
alias explain="mods -q --no-cache '/nothink作为一个资深程序员和系统管理员,请用中文清晰的解释以下代码或命令的功能、逻辑和关键部分。内容是:'"

Tip

这个别名将mods的AI设定为一个“资深程序员和系统管理员”,这样得到的解释更专业、更深入。它可以方便地通过管道接收文件内容或直接接收字符串参数。

3. 智能命令生成器

这是我最喜欢的功能:让AI根据我的需求直接生成Linux命令。我创建了cmd别名和cmdx函数。cmdx在生成命令后,会先征求用户同意再生效,大大提高了安全性。

查看 cmd 和 cmdx 脚本
# 别名:cmd (直接输出命令)
# 用法: cmd "查找所有后缀为.md的文件"
alias cmd="mods -q --no-cache '/nothink你是一个Linux命令行专家,当前的系统是ubuntu24.04。请根据我的需求,生成一个单一、可执行的shell命令。请只输出命令本身,不要包含任何解释、注释或markdown的标记。我的需求是:'"

# 函数:cmdx (生成命令并请求确认后执行)
# 用法: cmdx "查找所有后缀为.md的文件并删除"
cmdx(){
    local cmd_str
    # 请求mods生成命令,并过滤掉思考过程的标签
    cmd_str=$(mods -q --no-cache "/nothink你是一个Linux命令行专家,当前的系统是ubuntu24.04。请根据我的需求,生成一个单一、可执行的shell命令。请只输出命令本身,不要包含任何解释、注释或markdown的标记。我的需求是:'$@'" | grep -v -E '^$|<think>|</think>');
    
    # 征求用户意见
    printf "Execute '%s'? [y/n] " "$cmd_str";
    read REPLY;
    
    # 如果用户输入'y'或'Y',则执行命令
    [[ "$REPLY" =~ ^[Yy]$ ]] && eval "$cmd_str"
}

Warning

cmdx函数是cmd的安全升级版。它通过grep过滤掉了mods输出的额外信息,然后使用readeval与用户交互,避免了直接执行AI生成的高风险命令(如 rm -rf /)。在执行AI生成的任何命令前,请务必仔细检查。

通过这些简单的脚本,mods已经成为我终端环境里不可或缺的一部分,极大地提升了我的工作效率。