首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Web页面上的命令行窗口

Web页面上的命令行窗口

作者头像
YaoQi
发布2025-07-14 19:15:32
发布2025-07-14 19:15:32
13400
代码可运行
举报
运行总次数:0
代码可运行

要通过浏览器操作Linux命令行,就需要在浏览器上实现一个文字终端环境,大部分实现这功能的工具,都是基于 xterm.js 的。

Xterm.js是一个用TypeScript编写的前端组件,它让应用程序在浏览器中为用户带来功能齐全的终端。

保存下面代码到index.html,用浏览器打开,就可以体验一下它的效果。

代码语言:javascript
代码运行次数:0
运行
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>xterm.js Example</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/xterm@5.3.0/css/xterm.min.css" />
    <style>
        body {
            margin: 0;
            padding: 0;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            background-color: #1e1e1e;
        }
        #terminal {
            width: 80%;
            height: 80%;
        }
    </style>
</head>
<body>
    <div id="terminal"></div>
    <script src="https://cdn.jsdelivr.net/npm/xterm@5.3.0/lib/xterm.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/xterm-addon-fit@0.7.0/lib/xterm-addon-fit.min.js"></script>
    <script>
        // 初始化 xterm.js
        const term = new Terminal();
        const fitAddon = new FitAddon.FitAddon();

        // 加载 fit addon
        term.loadAddon(fitAddon);

        // 将终端挂载到 DOM 元素
        term.open(document.getElementById('terminal'));

        // 调整终端大小以适应容器
        fitAddon.fit();

        // 写入欢迎信息
        term.writeln('Welcome to xterm.js!');
        term.writeln('Try typing something...');

        // 处理用户输入
        term.onData((data) => {
            term.write(data); // 将用户输入回显到终端
        });
    </script>
</body>
</html>

xterm.js 不支持 xmodem,不过有一个项目可以试试:

https://github.com/FGasper/zmodemjs

寻找基于xterm.js 的开源项目

基于xterm.js 有很多开源项目,实现了各种功能。xterm.js github页面中的列表中列出了很多,可以寻找自己需要的项目:

图片
图片

这里简单地介绍几种。

ssh虚拟终端

实现的就是类似putty等ssh客户端,用于登录Linux服务器。

比如webssh:

图片
图片

https://github.com/huashengdun/webssh

提供了用户名密码,私钥,OTP等验证方式。

通过HTTP协议登录Linux

这种工具是让用户使用浏览器登录远程主机的命令行,服务器搭建在远程主机上。

比如ttyd:

图片
图片

https://github.com/tsl0922/ttyd

支持选中即复制、zmodem(rz、sz传文件)

内网穿透,ssh代理工具

此种工具利用一台公网IP的设备做中转,代理访问私网NAT后的主机,也可以作为管理工具。

比如rtty:

图片
图片

可以代理内网的ssh终端和web服务:

使用自己的命令上传下载文件,复制粘贴只能用快捷键。

好了,就介绍到这里吧,你如果也知道什么好玩的软件,欢迎推荐给我!

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

本文分享自 漫跑的小兔 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档