nfile 0.1.0

nfile a terminal system monitor written in Rust
# 🦀 Rust 终端系统监视器

一个用 `Rust` 和 `ratatui` 编写的终端系统监视器,类似 top功能

提供实时系统资源监控、文件管理器、进程管理等功能。

![演示](image/nfile.jpg)

## 功能特性

- 系统信息面板
    显示主机名、操作系统、内核版本、CPU 核心数、运行时间、系统负载平均值。
- CPU & 内存仪表
    实时进度条显示 CPU 使用率和内存占用,并显示具体数值。
- 文件管理器
  - 浏览当前目录下的文件和文件夹(支持进入目录、返回上级)
  - 支持删除文件或文件夹(带确认对话框)
  - 图标区分:📁 目录、📄 普通文件、⚙️ 可执行文件、.. 返回上级
  - 按 Enter 打开目录或预览普通文件内容(前 200 字符)
- 进程列表
  - 按 CPU 使用率排序,显示前 8 个进程(PID、名称、CPU%、内存)
  - 支持上下选择,按 k 终止选中进程
- 焦点切换
    按 Tab 在文件管理器和进程列表之间切换,当前焦点区域边框高亮。
- 交互提示
    状态栏显示帮助信息及操作结果(如目录切换、删除成功/失败、进程终止等),3 秒后自动清除。

## 安装与运行

### 环境要求

- Rust 工具链(1.70 或更高版本)
- 支持的操作系统:Linux、macOS、Windows(部分功能可能受限)

### 克隆与编译

```bash
git clone https://github.com/nasyt233/nfile.git
cd nfile
cargo build --release
```

### 运行

```bash
cargo run --release
```

## 使用方法

启动后,终端进入 TUI 界面,使用以下快捷键操作:

快捷键 功能
- Tab 在文件管理器 / 进程列表间切换焦点
- q 退出程序
- ↑ / ↓ 上下移动光标
- Enter 在文件管理器:打开目录或预览文件
- d 删除选中的文件或文件夹(弹出确认对话框)
- k 终止选中的进程(仅限进程列表焦点下)

确认删除对话框

- 按 d 后,屏幕中央弹出确认框,显示要删除的项目名称。
- 按 y 或 Y 确认删除,按 n 或 N 取消。

## 项目结构

```
src/
├── main.rs          # 主程序,包含所有逻辑
╚═Cargo.toml           # 依赖配置
```

## 依赖项

- ratatui — 终端用户界面库
- crossterm — 跨平台终端控制
- sysinfo — 系统信息获取(CPU、内存、进程等)
- chrono — 时间处理(可选,当前未使用)

## 注意事项

- 删除文件/文件夹会直接永久删除,不经过回收站,请谨慎操作。
- 终止进程需要权限,部分系统进程可能无法杀死。
- 文件预览只支持文本文件,二进制文件会提示无法读取。
- 在 Windows 下,可执行文件判断可能不准确(仅 Unix 支持)。

## 未来改进方向

- 添加 CPU 历史曲线图
- 支持网络流量监控
- 添加磁盘使用率显示
- 更丰富的文件管理器功能(重命名、复制等)
- 支持鼠标操作

## 许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

---

欢迎提交 Issue 或 Pull Request 进行改进!