Skip to content

migao-java/PurePython_OS_v1.0

Repository files navigation

PurePython OS v1.0 使用手册 & API 开发文档

PurePython OS 使用手册 & API 开发文档

版本:v3.0+ 开发语言:纯 Python 核心特性:自研 Shell、仿 Linux 命令、内置 Vi 编辑器、开机动画、账号登录、本地持久化文件存储


目录

  1. 环境与部署

  2. 快速上手

  3. 命令使用详解(用户篇)

  4. 文件存储说明

  5. 内置 Vi 编辑器使用

  6. 开发 API 文档(二次开发篇)

  7. 常见问题与故障排查


一、环境与部署

1. 运行要求

  • 运行环境:Python 3.6 及以上

  • 支持平台:Linux /macOS/ Windows

  • 外部依赖:psutil(用于硬件、进程、网络信息采集)

2. 部署步骤

  1. 将主程序文件命名为 pure\_python\_os\.py

  2. 安装依赖库

    pip install psutil
  3. 启动系统

    python3 pure_python_os.py

补充:程序首次运行会自动检测并安装依赖,无需手动干预。

3. 默认登录账号

  • 用户名:admin

  • 密码:123456


二、快速上手

1. 启动流程

  1. 执行启动命令 → 加载开机动画(进度条 + 系统初始化提示)

  2. 进入账号密码登录界面,输入账号密码

  3. 验证通过,进入交互式 Shell 终端,提示符格式:

    [admin@主机名 /当前路径]>
    

2. 入门操作示例

help          # 查看全部可用命令
ls            # 查看当前目录文件
touch a.txt   # 创建空白文件
vi a.txt      # 编辑文件
sysinfo       # 查看整机硬件信息
exit          # 退出系统

三、命令使用详解(用户篇)

3.1 帮助命令

help

  • 功能:展示所有内置命令、用法说明

  • 语法:help

  • 示例:

    [admin@xxx /home]> help

3.2 文件管理命令

所有文件操作持久化存储,数据保存在本机真实磁盘。

命令 语法格式 功能说明 示例
ls ls 列出当前目录下所有文件 / 文件夹,文件夹标识 📁,文件标识 📄 ls
pwd pwd 输出当前所在目录的绝对路径 pwd
cd cd \[目录名\] 切换工作目录;无参数时返回用户家目录 cd Documentscd \.\.
mkdir mkdir \[文件夹名\] 创建空文件夹 mkdir mydir
touch touch \[文件名\] 创建空白文本文件 touch note\.txt
rm rm \[目标名\] 删除文件或整个文件夹 rm note\.txtrm mydir
cp cp 源 目标 复制文件 / 文件夹到指定位置 cp a\.txt b\.txt
mv mv 源 目标 移动文件 / 文件夹,也可用于重命名 mv a\.txt new\_a\.txt

3.3 文本编辑命令

vi

  • 功能:纯 Python 自研简易文本编辑器

  • 语法:vi \[文件名\]

  • 进入编辑器后,直接输入内容即可编辑。

编辑器专属指令(末尾输入)

指令 作用
:w 保存当前文件,不退出编辑器
:q 直接退出编辑器,不保存修改
:wq 保存文件并退出编辑器

示例:

vi note.txt   # 打开/创建 note.txt
# 输入内容后执行 :wq 保存退出

3.4 系统信息命令

命令 功能说明 示例
sysinfo 查看完整系统信息:系统版本、内核、CPU、内存、磁盘、运行时间 sysinfo
ip 查看本机主机名、局域网 IP 地址 ip
ps 遍历系统所有进程,展示 PID 和进程名称 ps
time 输出当前系统日期与时间 time
whoami 显示当前登录的用户名 whoami

3.5 系统控制命令

命令 功能说明
clear 清空终端屏幕内容
reboot 重启系统:重新执行开机动画 + 登录流程
shutdown 关闭系统,直接退出程序
exit 退出当前 Shell 系统

四、文件存储说明

  1. 存储位置 系统内创建 / 编辑的文件,直接保存在运行脚本的真实目录中

    • 脚本路径:/xxx/xxx/pure\_python\_os\.py

    • 系统默认工作目录 = 脚本所在文件夹。

  2. 数据特性

    • 持久性:文件永久保存,退出程序、重启电脑数据不会丢失;

    • 互通性:系统内创建的文件,可在本机普通文件管理器 / 终端中直接打开、编辑;

    • 权限:遵循当前操作系统用户权限,无法读写受系统保护的核心文件。

  3. 路径规则

    • 支持绝对路径、相对路径;

    • cd \~ 可快速跳转至当前系统用户家目录。


五、API 开发文档(二次开发专用)

适用于需要修改、扩展系统功能的开发者,所有接口均定义在主程序中,可直接调用。

5.1 全局配置常量

OS_NAME        # 系统名称
OS_VERSION     # 系统版本号
LOGIN_USER     # 登录用户名
LOGIN_PWD      # 登录密码
CLEAR_SCREEN   # 跨平台清屏指令

5.2 启动与界面模块

boot\_anim\(\)

  • 功能:加载开机动画、进度条、初始化提示

  • 调用时机:系统启动 / 执行 reboot 重启时

  • 入参:无

  • 返回值:无

user\_auth\(\)

  • 功能:账号密码登录验证,循环校验直到输入正确

  • 入参:无

  • 返回值:bool,登录成功返回 True,失败持续重试

main\_shell\(\)

  • 功能:主命令行循环,接收用户输入、分发执行对应命令

  • 入参:无

  • 返回值:无

5.3 文件管理接口

cmd_ls()               # 列出当前目录文件
cmd_pwd()              # 打印当前绝对路径
cmd_cd(target_path)    # 切换目录,参数:目标路径(str)
cmd_mkdir(dir_name)    # 创建文件夹,参数:文件夹名(str)
cmd_touch(file_name)   # 创建空白文件,参数:文件名(str)
cmd_rm(target)         # 删除文件/目录,参数:目标名称(str)
cmd_cp(src, dst)       # 复制,参数:源路径、目标路径(str)
cmd_mv(src, dst)       # 移动/重命名,参数:源路径、目标路径(str)

5.4 文本编辑器接口

vi\_editor\(file\_name\)

  • 功能:启动自研 Vi 编辑器

  • 入参:file\_name 目标文件名 (str)

  • 逻辑:读取已有文件内容 → 进入编辑循环 → 支持保存 / 退出指令

5.5 系统信息接口

show_sysinfo()         # 展示全量硬件+系统信息
show_ip()              # 获取并展示主机名、IP
show_process()         # 遍历并展示系统进程列表

5.6 辅助工具接口

show\_help\(\)

  • 功能:打印完整命令帮助文档

  • 入参:无


六、常见问题与故障排查

1. 运行提示 ModuleNotFoundError: No module named \&\#39;psutil\&\#39;

  • 原因:依赖库未安装

  • 解决:执行 pip install psutil 手动安装。

2. cd 提示「目录不存在」

  • 原因:输入的目录名错误、路径不存在;

  • 解决:使用 ls 查看目录名称,核对拼写。

3. rm/cp/mv 操作失败

  • 原因 1:文件 / 目录不存在;

  • 原因 2:当前用户无文件操作权限;

  • 解决:确认目标文件存在,或切换到有权限的目录操作。

4. Vi 编辑器无法保存文件

  • 原因:文件所在目录无写入权限;

  • 解决:切换到普通目录再编辑文件。

5. Windows 下使用体验异常

  • 说明:本系统语法参考 Linux,Windows 仅兼容基础功能,建议在 Linux /macOS 环境使用。

七、扩展开发建议

  1. 新增自定义命令main\_shell\(\) 函数的命令判断分支中,新增 elif 逻辑,编写对应功能代码即可。

  2. 修改登录账号 / 系统名称 直接修改代码顶部 LOGIN\_USERLOGIN\_PWDOS\_NAME 常量。

  3. 改造为虚拟文件系统 可基于字典 / JSON 模拟内存文件系统,隔离本机真实文件,实现纯虚拟 OS。

  4. 美化界面 增加 ANSI 颜色码,自定义提示符、文字配色。

About

python shell system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors