V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Lucups
V2EX  ›  Linux

网页中的 shell 是真 shell 还是其他?

  •  
  •   Lucups · 2014-06-24 12:40:25 +08:00 · 5537 次点击
    这是一个创建于 3787 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我看到一些网站比如 Docker 官网的 Try it ( http://www.docker.com/tryit/ ),里面的 terminal 是真的把命令发给服务器执行把结果返回还是怎么做的?

    我尝试用 PHP 写了一个,前端把获取到的命令,提交, PHP 用 exec 之类的函数执行,把打印出来的返回给前端。但这样虽然能执行一些简单的命令,但可以说完全达不到人家的那种效果。首先是不安全,其次是无法运行像 iPython 之类的交互环境。
    14 条回复    2014-06-24 21:52:42 +08:00
    ChiChou
        1
    ChiChou  
       2014-06-24 12:43:47 +08:00   ❤️ 1
    you@tutorial:~$ sudo
    sudo: command not found

    显然不是真的
    9hills
        2
    9hills  
       2014-06-24 12:44:45 +08:00   ❤️ 1
    有两种
    1. Emulator,模拟器,只是模拟几个命令罢了,很安全很简单
    2. 真正的Shell

    两个都有开源实现
    liyanbowen
        3
    liyanbowen  
       2014-06-24 12:52:21 +08:00   ❤️ 1
    you@tutorial:~$ ls
    This is an emulator, not a shell. Try following the instructions.
    Lucups
        4
    Lucups  
    OP
       2014-06-24 12:58:24 +08:00
    其实我最想问的是如何实现。。。
    @ChiChou
    @liyanbowen
    dorentus
        5
    dorentus  
       2014-06-24 13:15:05 +08:00   ❤️ 1
    @ChiChou
    这个理由不成立……
    sudo 又不是每个发行版都自带的
    dianso
        6
    dianso  
       2014-06-24 13:21:46 +08:00
    cgi调用的shell吧
    chilaoqi
        7
    chilaoqi  
       2014-06-24 13:25:12 +08:00   ❤️ 1
    这种不是web terminal么?开源实现很多。
    记得有单个js文件就可以实现的。
    ShiningRay
        8
    ShiningRay  
       2014-06-24 13:26:58 +08:00   ❤️ 1
    看具体需求吧,有些是用真的shell,但是是环境是个沙箱,经过裁剪和保护的
    chilaoqi
        9
    chilaoqi  
       2014-06-24 13:31:42 +08:00
    @ShiningRay Linux用户权限管理 很够用了吧。直接Server执行命令,STDOUT喂Queue,前端取出来就行。不安全的操作直接就拒绝了。
    fdgogogo
        10
    fdgogogo  
       2014-06-24 16:05:36 +08:00   ❤️ 2
    https://github.com/elfet/console
    这里有一个单文件的php实现, 可以参考下, top, vi之类的命令用不了

    https://code.google.com/p/shellinabox/
    这个是Linode用的Ajax Console, 功能更强大

    另外还有好些Java applet实现的就不说了
    txlty
        11
    txlty  
       2014-06-24 16:11:38 +08:00   ❤️ 1
    用js写的linux虚拟机。这是真正的linux,不是shell。
    http://bellard.org/jslinux/
    txlty
        12
    txlty  
       2014-06-24 16:25:18 +08:00   ❤️ 1
    三种。难度由易到难
    1.用js模拟几个简单命令
    2.把前端命令发给后端,再把执行结果发回前端。这可能安全吗?
    3.用js写一个虚拟机,跑定制好的linux。
    superbear
        13
    superbear  
       2014-06-24 17:09:07 +08:00
    koding.com这个网站是怎么做的?线上开发环境
    usedname
        14
    usedname  
       2014-06-24 21:52:42 +08:00
    随便敲了几个都是command not found
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3089 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:47 · PVG 21:47 · LAX 05:47 · JFK 08:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.