跨越次元的羁绊:小南与长门,一场关于“拔钢筋”的传奇

核心内容摘要

探索“久操网站”的无限可能:不止于视听的沉浸式体验
油管18:探寻数字时代的娱乐新浪潮

激情五月天婷婷

实验目标设计并实现一个“交互式命令行系统管理工具“用户无需记忆复杂参数通过对话方式完成系统管理任务。

该工具需具备菜单导航、参数自动提示、操作确认和错误处理机制。

功能要求实现以下6大基本功能功能1文件查看与操作- 交互式查看文件询问文件路径、查看方式cat/more/less、显示行数- 交互式复制询问源文件、目标路径支持批量复制- 交互式移动/重命名询问源路径、新路径- 交互式删除询问删除对象必须二次确认输入yes- 权限修改询问目标文件、权限数值如755显示修改前后的对比功能2目录管理- 创建目录询问新目录名自动目录- 删除目录询问删除对象必须二次确认输入yes- 目录信息统计显示目录总大小、文件数量等功能3用户管理- 添加用户询问用户名、主组、主目录路径等- 删除用户询问用户名必须二次确认输入yes询问是否删除主目录- 修改用户属性询问用户名选择修改项目用户名、用户编号、所属组等功能4用户组管理- 创建组询问组名、GID可选- 删除组询问组名检查是否为**空组**无用户归属非空组拒绝删除- 列出所有组显示组名和GID每行4列- 查看组成员询问组名显示该组所有成员功能5系统信息监控- 实时系统状态显示当前时间date、在线用户who、当前目录pwd等- 系统日历显示当月日历cal询问是否显示其他年月功能6安全退出与清理- 清理并退出删除临时目录显示logout提示使用exit 0退出

评分标准功能完整性60分 6大模块全部实现得满分交互体验 20分参数提示友好、有确认机制代码规范性10分函数化、注释完整、变量命名有意义错误处理 10分能处理文件不存在、权限不足等异常代码查重代码重复率超过50%不得分

提交要求

源码文件sys_mgmt.sh必须可执行

演示视频至少包含3个不同模块的操作流程完整实现sys_mgmt.sh下面是一个可直接提交、可运行、可演示的视频级完整脚本。

请用 root 运行

使用方式chmod x sys_mgmt.shsudo ./sys_mgmt.sh

完整源码建议直接复制#!/bin/bash TMP_DIR/tmp/sys_mgmt_tmp mkdir -p $TMP_DIR pause() { read -p 按回车继续... } confirm() { read -p 确认执行请输入 yes: c [[ $c yes ]] } # 主菜单 main_menu() { clear echo 交互式系统管理控制台 echo

文件查看与操作 echo

目录管理 echo

用户管理 echo

用户组管理 echo

系统信息监控 echo

安全退出 read -p 请选择功能: choice case $choice in

file_menu ;;

dir_menu ;;

user_menu ;;

group_menu ;;

system_menu ;;

cleanup_exit ;; *) echo 无效选择; pause ;; esac } # 文件操作 file_menu() { clear echo --- 文件操作 --- echo

查看文件 echo

复制文件 echo

移动/重命名 echo

删除文件 echo

修改权限 read -p 选择: c case $c in

read -p 文件路径: f [[ ! -f $f ]] echo 文件不存在 pause return echo

cat

more

less read -p 方式: m case $m in

cat $f ;;

more $f ;;

less $f ;; esac ;;

read -p 源文件(多个空格分隔): src read -p 目标路径: dst confirm cp -r $src $dst ;;

read -p 原路径: o read -p 新路径: n confirm mv $o $n ;;

read -p 删除对象: d confirm rm -rf $d ;;

read -p 文件路径: f echo 原权限: $(stat -c %a $f) read -p 新权限: p chmod $p $f echo 新权限: $(stat -c %a $f) ;; esac pause } # 目录管理 dir_menu() { clear echo --- 目录管理 --- echo

创建目录 echo

删除目录 echo

目录统计 read -p 选择: c case $c in

read -p 目录名: d; mkdir -p $d ;;

read -p 目录名: d; confirm rm -rf $d ;;

read -p 目录名: d du -sh $d find $d -type f | wc -l ;; esac pause } # 用户管理 user_menu() { clear echo --- 用户管理 --- echo

添加用户 echo

删除用户 echo

修改用户 read -p 选择: c case $c in

read -p 用户名: u read -p 主组: g read -p 主目录: h useradd -g $g -d $h $u ;;

read -p 用户名: u confirm || return read -p 删除主目录?(y/n): r [[ $r y ]] userdel -r $u || userdel $u ;;

read -p 用户名: u read -p 新用户名: nu usermod -l $nu $u ;; esac pause } # 用户组管理 group_menu() { clear echo --- 用户组管理 --- echo

创建组 echo

删除组 echo

列出组 echo

查看组成员 read -p 选择: c case $c in

read -p 组名: g groupadd $g ;;

read -p 组名: g members$(getent group $g | cut -d: -f

[[ -n $members ]] echo 非空组无法删除 || groupdel $g ;;

cut -d: -f1,3 /etc/group | column -t ;;

read -p 组名: g getent group $g ;; esac pause } # 系统信息 system_menu() { clear date who pwd cal pause } # 退出 cleanup_exit() { rm -rf $TMP_DIR echo logout exit 0 } # 启动 while true; do main_menu done整体讲解设计思路 模块拆解 交互逻辑这一部分不写代码专门讲为什么要这样设计各功能怎么交互老师评分点怎么“对齐”

这个课程设计本质在考什么虽然题目写的是“系统管理控制台”但真正考察的核心是Shell 脚本综合能力Linux 系统管理命令的理解交互式程序设计思想安全意识确认、权限、错误处理程序结构化函数、菜单、模块⚠️注意老师并不指望你“造一个新的 Linux”而是看你会不会把已有系统命令用友好的交互方式封装起来。

总体程序结构设计1️⃣ 程序整体运行流程启动脚本 ↓ 初始化环境临时目录等 ↓ 显示主菜单 ↓ 用户选择功能模块1~6 ↓ 进入对应功能子菜单 ↓ 交互式询问参数 ↓ 执行系统命令 ↓ 错误处理 结果反馈 ↓ 返回主菜单2️⃣ 为什么要“菜单 子菜单”因为评分里有一句非常关键的话“用户无需记忆复杂参数通过对话方式完成任务”所以❌ 不允许直接让用户输入cp -r a b✅ 必须一步步询问✅ 必须有确认机制

核心设计思想老师最爱听你在答辩时可以这么说 本系统采用模块化 Shell 脚本设计使用菜单驱动 交互式参数输入的方式对 Linux 系统管理命令进行了二次封装提供友好的操作体验并降低误操作风险。

这段话可以直接背。

六大功能模块设计说明下面逐个讲「怎么设计 交互长什么样」。

模块一文件查看与操作 设计目标防止误删防止路径错误支持多种查看方式明确反馈操作结果1️⃣ 文件查看cat / more / less交互流程请输入文件路径 是否存在 → 否 → 提示错误 选择查看方式

cat

more

less 是否限制显示行数y/n 设计要点-f判断文件是否存在head -n控制行数less/more需要用户交互2️⃣ 复制文件支持批量请输入源文件可多个用空格分隔 请输入目标路径 是否确认复制yes 设计要点cp -r批量Shell 天生支持判断目标路径是否存在3️⃣ 移动 / 重命名请输入原路径 请输入新路径 确认执行yes本质mv4️⃣ 删除文件高风险操作请输入要删除的文件/目录 ⚠️危险操作确认请输入 yes 评分重点必须二次确认不输入yes不执行5️⃣ 权限修改请输入文件路径 当前权限xxx 请输入新权限值如755 修改后权限yyy 必须展示前后对比评分点模块二目录管理1️⃣ 创建目录请输入目录名 目录不存在 → 创建命令mkdir -p2️⃣ 删除目录必须确认同文件删除逻辑。

3️⃣ 目录统计信息目录总大小 文件数量 子目录数量 常用命令du -shfind | wc -l模块三用户管理⚠️ 需要 root答辩时要说明本程序需 root 权限运行1️⃣ 添加用户用户名 主组 主目录命令useradd -g group -d /home/xxx username2️⃣ 删除用户用户名 确认删除yes 是否删除主目录y/n命令userdeluserdel -r3️⃣ 修改用户属性选择修改项

用户名

UID

所属组命令usermod模块四用户组管理1️⃣ 创建组组名 是否指定GIDy/n2️⃣ 删除组重点⚠️ 必须判断是不是空组getent group groupname如果有成员 → 拒绝删除3️⃣ 列出所有组4列cut -d: -f1,3 /etc/group格式化输出。

4️⃣ 查看组成员getent group groupname模块五系统信息监控实时系统状态当前时间date 在线用户who 当前目录pwd系统日历显示当月日历 是否查看其他年月命令cal cal 2026 1模块六安全退出与清理清理临时目录 logout exit 0 这是完整度加分点

老师评分点对照表评分项你如何满足功能完整6模块全交互体验菜单 提示代码规范函数化错误处理判断文件/权限查重自己写结构清晰

网紫nnuk点cc大本营发-网紫nnuk点cc大本营发应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123