【终端增强工具】这次,我把Terminal(终端)也接入ChatGPT了...

大家好,我是萌新程序员豆小匠。
为terminal(终端)增加自定义命令这个想法从开始学编程的时候就有了,但是一直没有付诸行动。
这次,终于抽时间完成了,且代码开源!

实现的功能

先说下实现的功能,目前只实现了几个简单的基础命令:
查看帮助信息:bot -h
查看版本:bot -v
关机:bot -shutdown
接入ChatGPT:bot -c "your question"
在这里插入图片描述
bot -shutdown这个命令就不尝试啦~

重点介绍下接入ChatGPT的操作:
这里其实就是用了ChatGPT的接口,通过SSE(Server-Sent Events,服务器推送事件),不断往terminal上打印返回的文字,视频效果如下:

【终端增强工具】这次,我把Terminal也接入了ChatGPT…

简单使用

  1. 准备好golang环境
  2. 下载&运行项目
git clone https://github.com/anjude/terminalx.git
cd terminalx
go mod tidy
go build -o bot.exe main.go
  1. 把生成bot.exe(mac、linux没有.exe扩展名)文件的目录放到环境变量下
  2. 修改config.yaml文件,需要设置自己的api-key,按需设置代理端口,然后放到~/.terminal/config.yaml~是用户目录,如C:\Users\aboy0
  3. 在终端运行bot -h查看帮助

在这里插入图片描述

开发拓展

  1. 在handler目录新增一个自定义目录,可以参考version目录和version_handler.go文件
  2. 新增的handler实现base.IHandler接口
  3. 在handler/option_map.go文件定义命令和handler的关联
  4. 重新编译文件(go build -o bot.exe main.go)即可
type IHandler interface {
  // GetCommand 获取handler的命令
  GetCommand() (command string)
  // GetDesc 获取该命令的详情
  GetDesc() (desc string)
  // GetArgs 获取该命令需要的参数
  GetArgs(args []string) (curArgs []string, nextArgs []string)
  // Handle 该命令的具体执行逻辑
  Handle(args []string)
}

传送门:GitHub地址
觉得有意思别忘了点个赞哦~

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
非常好的问题!基于 xterm.js 实现 Vue 版本终端 terminal 连接服务器的方法如下: 1. 安装 xterm.js 使用 npm 安装 xterm.js: ``` npm install xterm ``` 2. 创建 Vue 组件 在 Vue 组件中引入 xterm.js 并创建终端: ``` <template> <div ref="terminal"></div> </template> <script> import { Terminal } from 'xterm'; export default { mounted() { this.terminal = new Terminal({ cursorStyle: 'bar', rows: 30, cols: 100, theme: { background: '#1e1e1e', foreground: '#d4d4d4' } }); this.terminal.open(this.$refs.terminal); } } </script> ``` 3. 使用 SSH 连接服务器 使用 ssh2 库连接服务器: ``` <template> <div ref="terminal"></div> </template> <script> import { Terminal } from 'xterm'; import { Client } from 'ssh2'; export default { mounted() { this.terminal = new Terminal({ cursorStyle: 'bar', rows: 30, cols: 100, theme: { background: '#1e1e1e', foreground: '#d4d4d4' } }); this.terminal.open(this.$refs.terminal); const conn = new Client(); conn.on('ready', () => { conn.shell((err, stream) => { if (err) throw err; this.terminal.attach(stream); this.terminal._initialized = true; this.terminal.prompt(); }); }).connect({ host: 'example.com', port: 22, username: 'username', password: 'password' }); } } </script> ``` 这里使用 ssh2 库连接服务器,当连接成功后使用 `shell` 方法创建一个 shell 进程,并将进程的输入输出流与终端进行绑定。当用户在终端中输入命令时,命令将会发送给服务器执行。 以上就是基于 xterm.js 实现 Vue 版本终端 terminal 连接服务器的方法,希望能够帮到你!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值