版本:v3.0+ 开发语言:纯 Python 核心特性:自研 Shell、仿 Linux 命令、内置 Vi 编辑器、开机动画、账号登录、本地持久化文件存储
-
环境与部署
-
快速上手
-
命令使用详解(用户篇)
-
文件存储说明
-
内置 Vi 编辑器使用
-
开发 API 文档(二次开发篇)
-
常见问题与故障排查
-
运行环境:Python 3.6 及以上
-
支持平台:Linux /macOS/ Windows
-
外部依赖:
psutil(用于硬件、进程、网络信息采集)
-
将主程序文件命名为
pure\_python\_os\.py -
安装依赖库
pip install psutil
-
启动系统
python3 pure_python_os.py
补充:程序首次运行会自动检测并安装依赖,无需手动干预。
-
用户名:
admin -
密码:
123456
-
执行启动命令 → 加载开机动画(进度条 + 系统初始化提示)
-
进入账号密码登录界面,输入账号密码
-
验证通过,进入交互式 Shell 终端,提示符格式:
[admin@主机名 /当前路径]>
help # 查看全部可用命令
ls # 查看当前目录文件
touch a.txt # 创建空白文件
vi a.txt # 编辑文件
sysinfo # 查看整机硬件信息
exit # 退出系统-
功能:展示所有内置命令、用法说明
-
语法:
help -
示例:
[admin@xxx /home]> help
所有文件操作持久化存储,数据保存在本机真实磁盘。
| 命令 | 语法格式 | 功能说明 | 示例 |
|---|---|---|---|
ls |
ls |
列出当前目录下所有文件 / 文件夹,文件夹标识 📁,文件标识 📄 | ls |
pwd |
pwd |
输出当前所在目录的绝对路径 | pwd |
cd |
cd \[目录名\] |
切换工作目录;无参数时返回用户家目录 | cd Documents、cd \.\. |
mkdir |
mkdir \[文件夹名\] |
创建空文件夹 | mkdir mydir |
touch |
touch \[文件名\] |
创建空白文本文件 | touch note\.txt |
rm |
rm \[目标名\] |
删除文件或整个文件夹 | rm note\.txt、rm mydir |
cp |
cp 源 目标 |
复制文件 / 文件夹到指定位置 | cp a\.txt b\.txt |
mv |
mv 源 目标 |
移动文件 / 文件夹,也可用于重命名 | mv a\.txt new\_a\.txt |
-
功能:纯 Python 自研简易文本编辑器
-
语法:
vi \[文件名\] -
进入编辑器后,直接输入内容即可编辑。
编辑器专属指令(末尾输入)
| 指令 | 作用 |
|---|---|
:w |
保存当前文件,不退出编辑器 |
:q |
直接退出编辑器,不保存修改 |
:wq |
保存文件并退出编辑器 |
示例:
vi note.txt # 打开/创建 note.txt
# 输入内容后执行 :wq 保存退出| 命令 | 功能说明 | 示例 |
|---|---|---|
sysinfo |
查看完整系统信息:系统版本、内核、CPU、内存、磁盘、运行时间 | sysinfo |
ip |
查看本机主机名、局域网 IP 地址 | ip |
ps |
遍历系统所有进程,展示 PID 和进程名称 | ps |
time |
输出当前系统日期与时间 | time |
whoami |
显示当前登录的用户名 | whoami |
| 命令 | 功能说明 |
|---|---|
clear |
清空终端屏幕内容 |
reboot |
重启系统:重新执行开机动画 + 登录流程 |
shutdown |
关闭系统,直接退出程序 |
exit |
退出当前 Shell 系统 |
-
存储位置 系统内创建 / 编辑的文件,直接保存在运行脚本的真实目录中。
-
脚本路径:
/xxx/xxx/pure\_python\_os\.py -
系统默认工作目录 = 脚本所在文件夹。
-
-
数据特性
-
持久性:文件永久保存,退出程序、重启电脑数据不会丢失;
-
互通性:系统内创建的文件,可在本机普通文件管理器 / 终端中直接打开、编辑;
-
权限:遵循当前操作系统用户权限,无法读写受系统保护的核心文件。
-
-
路径规则
-
支持绝对路径、相对路径;
-
cd \~可快速跳转至当前系统用户家目录。
-
适用于需要修改、扩展系统功能的开发者,所有接口均定义在主程序中,可直接调用。
OS_NAME # 系统名称
OS_VERSION # 系统版本号
LOGIN_USER # 登录用户名
LOGIN_PWD # 登录密码
CLEAR_SCREEN # 跨平台清屏指令-
功能:加载开机动画、进度条、初始化提示
-
调用时机:系统启动 / 执行
reboot重启时 -
入参:无
-
返回值:无
-
功能:账号密码登录验证,循环校验直到输入正确
-
入参:无
-
返回值:
bool,登录成功返回True,失败持续重试
-
功能:主命令行循环,接收用户输入、分发执行对应命令
-
入参:无
-
返回值:无
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)-
功能:启动自研 Vi 编辑器
-
入参:
file\_name目标文件名 (str) -
逻辑:读取已有文件内容 → 进入编辑循环 → 支持保存 / 退出指令
show_sysinfo() # 展示全量硬件+系统信息
show_ip() # 获取并展示主机名、IP
show_process() # 遍历并展示系统进程列表-
功能:打印完整命令帮助文档
-
入参:无
-
原因:依赖库未安装
-
解决:执行
pip install psutil手动安装。
-
原因:输入的目录名错误、路径不存在;
-
解决:使用
ls查看目录名称,核对拼写。
-
原因 1:文件 / 目录不存在;
-
原因 2:当前用户无文件操作权限;
-
解决:确认目标文件存在,或切换到有权限的目录操作。
-
原因:文件所在目录无写入权限;
-
解决:切换到普通目录再编辑文件。
- 说明:本系统语法参考 Linux,Windows 仅兼容基础功能,建议在 Linux /macOS 环境使用。
-
新增自定义命令 在
main\_shell\(\)函数的命令判断分支中,新增elif逻辑,编写对应功能代码即可。 -
修改登录账号 / 系统名称 直接修改代码顶部
LOGIN\_USER、LOGIN\_PWD、OS\_NAME常量。 -
改造为虚拟文件系统 可基于字典 / JSON 模拟内存文件系统,隔离本机真实文件,实现纯虚拟 OS。
-
美化界面 增加 ANSI 颜色码,自定义提示符、文字配色。