前言¶
在 DSH Web GUI 的开发与调试场景中,通常需要直接访问宿主机的 Shell 环境。普通的命令行工具或简单的执行器无法满足交互式调试的需求。dsh-term 插件通过在 DSH 界面中嵌入一个真实的终端面板,解决了这一痛点,让用户可以在浏览器中直接操作本地 Shell。
插件介绍¶
lijian-ui/dsh-term 是一个为 DSH Web GUI 设计的本地终端插件。它利用 node-pty 提供真实的伪终端(PTY)会话,而非仅仅运行预设的命令。插件通过 xterm.js 实现了多标签页的 UI 渲染,并采用了热插拔的架构设计,无需修改 DSH 源码即可集成。
核心功能¶
- 真实 PTY 会话:使用
node-pty库建立本地 Shell,确保交互的真实性。 - 多标签终端面板:基于
xterm.js构建,支持在同一个面板内打开多个终端标签。 - 布局集成:终端面板作为右侧的一列停靠,与文件管理器面板并列,保持界面的一致性。
- 工作区 CWD:每个新会话默认在当前工作区的根目录下启动。
- 热插拔支持:作为配置包(Profile Bundle)加载,安装和使用过程对宿主 DSH 无侵入。
安装与启用¶
通过 DSH 命令行工具安装:
dsh plugin add @lijian-ui/dsh-term
也可以手动编辑配置文件,将 @lijian-ui/dsh-term 添加到 profile 的 bundles 或 dependencies 中,并在 cordis.yml 中引用。
典型用法¶
插件默认安装后处于折叠(关闭)状态。启用时,请点击右侧面板启动器中的“终端”按钮。终端面板会自动停靠在文件管理器面板的右侧,成为最右侧的一列。
注意事项¶
- 当前版本限制:目前为 A 版本,仅支持本地用户终端。B 版本 计划增加 SSH 连接和会话级 Shell 选择功能。
- 会话管理:会话由宿主机服务管理,该服务通过仅限本地回环的 HTTP 路由和 SSE(Server-Sent Events)接口暴露给前端,前端通过
xterm.js进行渲染和交互同步。 - 权限要求:由于提供真实的本地 Shell,该插件运行在宿主机进程的权限上下文中。