javascript - 网页中的 shell 是真 shell 还是其他?
Jun 06, 2016 pm 08:44 PM
我看到一些网站比如 Docker
官网的 Try it,里面的 Terminal
是真的把命令发给服务器执行把结果返回还是怎么做的?
PS:
我尝试用 PHP 写了一个,前端把获取到的命令,提交, PHP 用 exec()
之类的函数执行,把打印出来的返回给前端。但这样虽然能执行一些简单的命令,但可以说完全达不到人家的那种效果。首先是不安全,其次是无法运行像 iPython
之类的交互环境。
回复内容:
我看到一些网站比如 Docker
官网的 Try it,里面的 Terminal
是真的把命令发给服务器执行把结果返回还是怎么做的?
PS:
我尝试用 PHP 写了一个,前端把获取到的命令,提交, PHP 用 exec()
之类的函数执行,把打印出来的返回给前端。但这样虽然能执行一些简单的命令,但可以说完全达不到人家的那种效果。首先是不安全,其次是无法运行像 iPython
之类的交互环境。
- 首先,是发给服务器而不是 js 执行,这个很清楚。
- 个人猜测,是一个模拟器的概率不大,因为要重新实现几乎所有的 docker 命令。比较大的可能是先过滤程序名(例如只允许 help、docker 之类的命令),然后调用 exec 函数。
- 安全起见,可以在执行程序之前切换为受限用户。
我看到过一个类似的jslinux,应该是js模拟出来的shell(不是很确定)
http://bellard.org/jslinux/
但是VPS里面也有类似的网页版的Terminal,那个似乎是真的shell
https://github.com/jcubic/jquery.terminal 这个可以是真的
假的就好办了。
wssh解决你想要的问题【nodejs这方面做的很好
Docker输入ls -l后会提示你:
<code>This is an emulator, not a shell. Try following the instructions. </code>

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

DeepSeek 웹 버전 입구 DeepSeek 공식 웹 사이트 입구

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법
