微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 jQuery 终端向 shell 发送命令?

如何解决如何使用 jQuery 终端向 shell 发送命令?

我想构建一个基于 Web 的终端并且我想执行一个 shell 命令。

如何使用 jQuery Terminal 库向 shell 发送命令并打印回复

解决方法

因此要执行 shell 命令,您需要有一个服务器代码。最简单的方法是使用,Apache 和 PHP。为此,您需要创建一个 PHP 脚本并使用允许执行 shell 命令的函数之一。

shell.php

<?php

if (isset($_POST['command'])) {
   echo shell_exec($_POST['command']);
}

有了这个服务器端脚本,您就可以使用 jQuery Terminal 编写 JavaScript 代码,将请求发送到该 PHP 脚本并显示结果。

$('body').terminal(function(command) {
   return fetch('shell.php').then(res => res.text());
});

您还可以做些什么来改进终端,那就是使用 unix_formatting.js 文件,该文件将显示可能由浏览器中的 shell 生成的任何 ANSI 转义代码:

<script src="https://cdn.jsdelivr.net/npm/jquery.terminal/js/unix_formatting.js"></script>

如果你想看一个更高级的例子,你可以看看:

jcubic/jsh.php 是作为单个文件创建的,PHP shell 看起来像一个真正的终端。它使用了一些技巧来使其更加用户友好,例如使用 unbuffer(GNU/Linux 上的expect 包的一部分)和其他 bash 技巧使其显示每个命令的 ANSI 转义代码。默认情况下 ls 不以颜色返回输出。

如果您想要更高级的东西,您可以查看 Leash Shell 项目,该项目旨在提供对共享主机上 shell 的访问权限。

替代方案是:

  • websocket.sh 其中有一个示例,通过编写为 shell 脚本的 Web Sockets 在 Unix shell 中使用 jQuery 终端。
  • web-console 是使用 jQuery 终端的 PHP shell。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。