这是ShellCrash的TypeScript重写版本,保持了与原始bash版本相同的功能和接口,但使用现代的TypeScript/Node.js技术栈实现。
- 🚀 现代化技术栈: 使用TypeScript和Node.js重写
- 🔄 功能一致: 与原始bash版本保持完全的功能对等
- 📁 目录结构: 保持与原版相同的目录层级和文件组织
- 🛠️ 命令兼容: 支持所有原版命令和参数
- 🌐 跨平台: 支持Windows、Linux、macOS
- 📦 模块化: 清晰的模块化架构,易于维护和扩展
# 克隆仓库
git clone https://github.com/juewuy/ShellCrash.git
cd ShellCrash
# 安装依赖
npm install
# 构建项目
npm run build
# 全局安装
npm run install-global# 使用npm全局安装
npm install -g shellcrash-ts
# 或使用yarn
yarn global add shellcrash-ts# 显示帮助
shellcrash --help
# 安装ShellCrash
shellcrash install
# 显示主菜单
shellcrash menu
# 或简写
crash
# 启动服务
shellcrash start
# 停止服务
shellcrash start --stop
# 重启服务
shellcrash start --restart
# 任务管理
shellcrash task-
服务管理
- 启动/停止/重启代理服务
- 服务状态监控
- 自动启动配置
-
配置管理
- 导入配置文件
- 在线生成配置
- 订阅更新
- 自定义规则和策略组
-
任务调度
- 定时任务管理
- 自动更新内核和脚本
- 自定义任务执行
-
网络功能
- 透明代理
- DNS劫持
- 防火墙规则管理
- IPv6支持
src/
├── index.ts # 主入口文件
├── types/ # 类型定义
│ └── index.ts
├── utils/ # 工具类
│ ├── logger.ts # 日志工具
│ ├── system.ts # 系统工具
│ └── config.ts # 配置管理
└── core/ # 核心功能模块
├── InstallManager.ts # 安装管理器
├── MenuManager.ts # 菜单管理器
├── StartManager.ts # 服务管理器
├── TaskManager.ts # 任务管理器
└── WebgetManager.ts # 网络下载管理器
配置文件位置与原版保持一致:
- 主配置:
~/.local/share/ShellCrash/configs/ShellCrash.cfg - Clash配置:
~/.local/share/ShellCrash/yamls/config.yaml - SingBox配置:
~/.local/share/ShellCrash/jsons/config.json - 任务配置:
~/.local/share/ShellCrash/task/ - 日志文件:
/tmp/ShellCrash/ShellCrash.log
- Node.js >= 16.0.0
- TypeScript >= 5.0.0
# 安装依赖
npm install
# 开发模式运行
npm run dev
# 构建项目
npm run build
# 清理构建文件
npm run clean项目采用模块化设计:
- SystemUtils: 系统操作封装
- ConfigManager: 配置文件管理
- Logger: 日志记录和推送
- InstallManager: 安装和卸载逻辑
- StartManager: 服务启动和管理
- TaskManager: 任务调度和执行
- WebgetManager: 网络下载和配置生成
- ✅ 命令行接口完全兼容
- ✅ 配置文件格式兼容
- ✅ 目录结构兼容
- ✅ 功能特性对等
- ✅ 日志格式兼容
- ✅ Linux (Ubuntu, CentOS, Debian等)
- ✅ macOS
- ✅ Windows (WSL/Git Bash)
- ✅ OpenWrt路由器
- ✅ 各种嵌入式Linux系统
从bash版本迁移到TypeScript版本:
-
备份现有配置:
cp -r ~/.local/share/ShellCrash ~/.local/share/ShellCrash.backup
-
安装TypeScript版本:
npm install -g shellcrash-ts
-
验证功能:
crash
-
配置会自动迁移,无需手动操作
-
权限问题
# 确保有执行权限 chmod +x /usr/local/bin/shellcrash -
Node.js版本过低
# 升级Node.js到16+版本 nvm install 16 nvm use 16 -
配置文件路径
# 检查配置文件是否存在 ls -la ~/.local/share/ShellCrash/configs/
# 查看运行日志
tail -f /tmp/ShellCrash/ShellCrash.log
# 查看详细错误信息
DEBUG=1 shellcrash start欢迎提交Issue和Pull Request!
- Fork本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启Pull Request
本项目采用MIT许可证 - 查看 LICENSE 文件了解详情
- 感谢原作者 Juewuy 创建了优秀的ShellCrash项目
- 感谢所有为ShellCrash项目做出贡献的开发者们
- 感谢Clash、SingBox等优秀的代理工具
- GitHub Issues: 提交问题
- Telegram群组: t.me/ShellClash
注意: 这是ShellCrash的TypeScript重写版本,旨在提供更好的开发体验和跨平台兼容性,同时保持与原版的完全功能对等。