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

4.8 KiB
Raw Blame History

🚀 EasyShell

高颜值远程 Shell 管理终端 - 一款现代化的 SSH 连接管理工具

Platform Electron React License

特性

  • 🎨 高颜值界面 - 现代化深色主题,精心设计的 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

安装步骤

# 克隆项目
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

构建发布版本

# 构建生产版本
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