前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >将命令行工具转为 Web 页面?

将命令行工具转为 Web 页面?

作者头像
lucifer210
发布2021-07-15 14:45:24
1K0
发布2021-07-15 14:45:24
举报
文章被收录于专栏:脑洞前端脑洞前端

这是个什么东西

作为程序员不可避免的会与命令行打交道。我们会用很多的命令行工具,甚至自己开发一些命令行工具。那么如何将一个命令行工具转成 web 页面,变成一个「云端应用」,方便地与队友共享呢?

比如我做了一个可以将命令行转为 web 页面的工具叫 ttw(terminal to web),此时我想将 vi 变成一个 web 页面。

首先,可以执行如下命令:

代码语言:javascript
复制
ttw  vi

然后就返回一个 web 页面地址,比如是 https://lucifer.ren/ttw/dsuh8643&8934 打开后会发现就是 vim 的页面,然后你可以像本地命令行一样去进行操作,并得到实时的返回效果。

至此,我们就完成了将命令行工具转化为 web 页面的功能。

如何实现

我们可以将命令行工具看成是「从标准输入或者命令行参数读取输入,然后做一些处理,最后做出响应(包括读写文件,输出等)」

而做成 web 页面后,除了输出其实都是还是在本地的电脑上进行就好了。因此我们要做的其实就是将「输出部分转到」 web 上而已。

基于此,我们只需要:

  1. 代理命令行的输入和输出。
  2. 将输出通过 web socket 同步到 web 页面。

❝显然,我们可以将同步到多个客户端。 ❞

整个架构可以分为三个部分,命令行客户端,web socket 客户端 和 server 端。

命名行客户端负责解析输入,并 fork 子进程调用真实的命令行工具,同时将代理的输入传递给它。接下来开启一个服务端的监听,同时将真实命令行的输出通过 web socket 同步到 web socket 客户端。

这里我们甚至可以做一些权限控制,比如哪些人可以做编辑,哪些人不可以等等。

有什么用

我们可以做一些在线的控制台。比如阿里云的控制台,可以直接在 web 上操作远程的主机。

比如我本地使用命令行报错了(比如 npm run dev 报错),就可以通过这个工具实现「远程投屏」效果,给别人最最精准的信息,甚至可以用它来报 bug 也行。

更多用处,等你来探索。

相关工具推荐

原理差不多讲完了,那有没有现成的工具可以做到呢?

当然有了,以下这两款工具都可以将你的命令行转化为 web 页面。

  • gotty[1]
  • termpair[2]

Reference

[1]

gotty: https://github.com/sorenisanerd/gotty

[2]

termpair: https://github.com/cs01/termpair

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 脑洞前端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 这是个什么东西
  • 如何实现
  • 有什么用
  • 相关工具推荐
    • Reference
    相关产品与服务
    命令行工具
    腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档