极简 · 干净 · 零依赖 · 本地运维脚本菜单框架,
把你日常写的几十上百个小运维脚本(查看信息、换源、优化、压测、改主机名……)全部收进一个统一菜单,几秒启动,用完自动清理,永不留痕。
| 特性 | 说明 |
|---|---|
| 极简到极致 | 核心只有 4 个文件,总代码 < 300 行 |
| 完全本地运行 | 不联网、不上传数据、退出自动清理 |
| 智能多系统兼容 | 一份脚本支持 Ubuntu、Debian、CentOS、Rocky……只需改第 3 行标签 |
| 自动生成分类菜单 | 脚本第 2 行写分类,第 4 行写描述,菜单全自动生成 |
| 实时系统状态栏 | 每次打开菜单都实时刷新时间、IP、负载、内存等信息 |
| 统一 q 退出体验 | 一级菜单 q → 彻底清理退出 二级菜单 q → 返回主菜单 |
| 运行时临时目录 | 脚本复制到 ./Ubuntu_24.04/ 等目录,退出自动 rm -rf |
| 职责分离清晰 | main.sh → 拷贝 → 菜单 → 系统信息,各自独立,改起来丝滑 |
linux-tools-framework/
├── main.sh # 一键启动入口
├── Lib/
│ ├── copy_template.sh # 按规则拷贝脚本到临时目录
│ └── menu_engine.sh # 纯菜单引擎(一级+二级)
├── SysInfo/
│ └── show.sh # 美化实时系统信息
└── Template/ # 所有功能脚本都扔这里
├── OS_info.sh
├── 一键换源.sh
├── 系统优化.sh
└── ...#!/bin/bash
# 系统工具 # ← 第2行:分类名 → 决定一级菜单显示的分类
# default # ← 第3行:兼容标签
# # 写 default → 全部系统可用
# # 写 Ubuntu_24.04 → 也可以写Centos
# 一键查看详细系统信息 # ← 第4行:菜单描述 → 二级菜单里显示的文字
# ──────────────────────────────────────────────────────────────
# ↓ 从这里开始写你原来的任意脚本内容,随便怎么写都行
clear
echo "=============== 系统详细信息 ==============="
hostnamectl || cat /etc/os-release
echo -e "\n内存使用情况:"
free -h
echo -e "\n磁盘使用情况:"
df -h
echo "============================================"
read -n1 -p "按任意键返回..."| 脚本文件 | 作用与完整执行流程 |
|---|---|
main.sh |
框架总入口(极简初始化) 1. 获取框架所在目录 $DIR2. 开场调用 SysInfo/show.sh 显示欢迎信息3. 读取 /etc/os-release 自动识别系统 → 生成 SYS_DIR=Ubuntu_24.04 等4. 创建并清理临时目录 ./$SYS_DIR/(如 ./Ubuntu_24.04/)5. 检查 Template/ 是否为空6. source Lib/copy_template.sh 执行脚本过滤复制7. source Lib/menu_engine.sh 并进入无限循环调用 show_main_menu |
Lib/copy_template.sh |
核心兼容性过滤与复制模块 1. 遍历 Template/*.sh2. 读取第2行 → 分类名 3. 读取第3行 → 兼容标签(自动 trim) 4. 仅当标签为 default 或 完全等于 $SYS_DIR 时才复制5. 按分类创建目录并复制 → 生成 ./Ubuntu_24.04/系统工具/OS_info.sh 结构 |
Lib/menu_engine.sh |
纯菜单引擎(所有交互逻辑) 一级菜单 • 清屏 + 标题 + 实时调用 SysInfo/show.sh• 扫描临时目录子文件夹 → 生成分类列表并编号 • 输入数字进入分类 • 输入 q → 删除临时目录并彻底退出二级菜单 • 显示分类标题 • 列出该分类下所有脚本(已排序) • 第4行注释作为菜单描述,无则显示文件名 • 输入数字 → 执行脚本 • 输入 q → 返回一级菜单(不删除临时目录)• 执行完自动暂停等待按键 |
SysInfo/show.sh |
实时美化系统信息(每次菜单刷新都调用) 1. 读取 /etc/os-release 获取系统信息2. 输出带黄色边框的艺术标题 3. 显示:时间、主机名、系统、内核、架构、主IP、用户、框架路径 4. 被 main.sh 和 menu_engine.sh 多次调用,保证信息永远最新 |
Template/任意脚本.sh |
用户功能脚本(只需遵守前四行规范)bash<br>#!/bin/bash<br># 分类名 # 第2行 → 一级菜单分类<br># default # 第3行 → default=全系统可用,或写具体如 Ubuntu_24.04<br># 菜单显示的文字 # 第4行 → 二级菜单描述<br>第5行开始随意编写,框架只负责复制执行 |
启动 → main.sh
↓
显示欢迎信息 (show.sh)
↓
识别系统 → 创建 ./Ubuntu_24.04/
↓
copy_template.sh → 过滤并复制符合条件的脚本
↓
menu_engine.sh → 进入主循环
├─→ 每次循环:show.sh(实时信息)→ 显示一级分类 → 等待输入
│ ↓ 选择分类
│ → 显示二级脚本 → 等待输入
│ ↓ 选择脚本 → 执行 → 暂停 → 返回二级菜单
│ ↓ 输入 q → 返回一级菜单
↓ 一级菜单输入 q → rm -rf ./Ubuntu_24.04/ → 程序结束
══════════════ devops ══════════════
╔══════════════════════════════════════╗
║ 当前系统环境信息 ║
╚══════════════════════════════════════╝
执行时间 : 2025-12-02 23:18:45
主机名 : vps-bobby
系统 : Ubuntu 24.04.1 LTS
内核 : 6.8.0-52-generic
架构 : x86_64
主IP : 172.16.8.88
当前用户 : root
框架目录 : /root/linux-tools-framework
============================================
1. 系统工具
2. 网络诊断
3. 性能优化
4. 安全加固
5. 一键维护
============================================
请选择分类(q 退出并清理): 1