easyshell/README.md
2025-12-26 19:57:52 +08:00

185 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🚀 EasyShell
高颜值远程 Shell 管理终端 - 一款现代化的 SSH 连接管理工具
![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-blue)
![Electron](https://img.shields.io/badge/Electron-28.0.0-47848F?logo=electron)
![React](https://img.shields.io/badge/React-18.2.0-61DAFB?logo=react)
![License](https://img.shields.io/badge/license-MIT-green)
## ✨ 特性
- 🎨 **高颜值界面** - 现代化深色主题,精心设计的 UI/UX
- 🔐 **SSH 连接管理** - 支持密码和私钥认证方式
- 💾 **双模式存储** - 本地 SQLite + 远程 MySQL 同步
- 📝 **智能命令提示** - 内置常用命令,支持搜索和使用频率排序
- 🔄 **数据同步** - 自动建库建表,一键上传/下载数据
- 📑 **多标签终端** - 同时管理多个 SSH 会话
- ⌨️ **快捷键支持** - Ctrl+K 打开命令面板
## 📸 界面预览
应用采用深色主题设计,包含:
- 可折叠侧边栏(主机列表分组显示)
- 多标签终端区域
- 命令面板Ctrl+K 快速调用)
- 主机管理弹窗
- 数据库连接设置
## 🛠️ 技术栈
- **Electron** - 跨平台桌面应用框架
- **React** - 用户界面库
- **TailwindCSS** - 原子化 CSS 框架
- **Framer Motion** - 动画库
- **XTerm.js** - 终端模拟器
- **SSH2** - SSH 连接库
- **better-sqlite3** - 本地数据库
- **mysql2** - MySQL 连接库
## 📦 安装
### 环境要求
- Node.js >= 18.0.0
- npm >= 9.0.0
- Python 3.x用于编译原生模块
- Visual Studio Build ToolsWindows/ XcodemacOS
### 安装步骤
```bash
# 克隆项目
git clone https://github.com/your-username/easyshell.git
cd easyshell
# 安装依赖
npm install
# 重新编译原生模块(如果遇到问题)
npm rebuild better-sqlite3 --build-from-source
npm rebuild ssh2 --build-from-source
# 启动开发模式
npm start
```
### 构建发布版本
```bash
# 构建生产版本
npm run dist
```
## 🚀 使用说明
### 本地模式
应用默认使用本地 SQLite 数据库存储数据,无需任何配置即可使用。
### 远程同步模式
1. 点击左下角「本地模式」或设置图标
2. 输入 MySQL 服务器信息:
- 主机地址
- 端口(默认 3306
- 用户名
- 密码
- 数据库名(默认 easyshell
3. 点击「连接数据库」
4. 系统将自动创建数据库和所需的表结构
### 添加主机
1. 点击侧边栏的 按钮或「添加主机」
2. 填写主机信息:
- 名称(显示名)
- 分组(用于分类)
- 主机地址
- 端口(默认 22
- 用户名
- 密码或 SSH 私钥
3. 可选择标识颜色
4. 点击「测试连接」验证配置
5. 点击「添加主机」保存
### 命令提示
-`Ctrl+K` 打开命令面板
- 搜索或浏览预设命令
- 使用方向键选择,回车执行
- 命令会直接发送到当前终端
## 📁 项目结构
```
easyshell/
├── main.js # Electron 主进程
├── preload.js # 预加载脚本IPC 桥接)
├── package.json # 项目配置
├── tailwind.config.js # TailwindCSS 配置
├── public/
│ └── index.html # HTML 模板
└── src/
├── index.js # React 入口
├── index.css # 全局样式
├── App.js # 主应用组件
├── components/
│ ├── TitleBar.js # 标题栏
│ ├── Sidebar.js # 侧边栏
│ ├── Terminal.js # 终端组件
│ ├── HostManager.js # 主机管理
│ ├── Settings.js # 设置面板
│ └── CommandPalette.js # 命令面板
└── services/
├── database.js # 数据库服务
└── ssh.js # SSH 服务
```
## ⌨️ 快捷键
| 快捷键 | 功能 |
|--------|------|
| `Ctrl+K` | 打开命令面板 |
| `Esc` | 关闭弹窗 |
| `↑/↓` | 命令面板中导航 |
| `Enter` | 执行选中命令 |
## 🔧 数据库结构
### hosts 表(主机信息)
| 字段 | 类型 | 说明 |
|------|------|------|
| id | INT | 主键 |
| name | VARCHAR | 主机名称 |
| host | VARCHAR | 主机地址 |
| port | INT | SSH 端口 |
| username | VARCHAR | 用户名 |
| password | TEXT | 密码(加密存储建议) |
| private_key | TEXT | SSH 私钥 |
| group_name | VARCHAR | 分组名 |
| color | VARCHAR | 标识颜色 |
| description | TEXT | 备注 |
### commands 表(命令提示)
| 字段 | 类型 | 说明 |
|------|------|------|
| id | INT | 主键 |
| command | TEXT | 命令内容 |
| description | TEXT | 命令描述 |
| category | VARCHAR | 分类 |
| usage_count | INT | 使用次数 |
## 🤝 贡献
欢迎提交 Issue 和 Pull Request
## 📄 许可证
MIT License
---
Made with ❤️ by EasyShell Team