前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JSShell:一个基于python的交互式Shell

JSShell:一个基于python的交互式Shell

作者头像
FB客服
发布2018-02-23 17:06:41
1.5K0
发布2018-02-23 17:06:41
举报
文章被收录于专栏:FreeBufFreeBuf

JSShell

本文将给大家介绍一款基于Web的多用户交互式Shell,该工具采用Python语言编写,服务器端使用的是Flask框架,而客户端当然就是JavaScript和HTML组成的了。我当初在开发JSShell的时候只是想在测试和研究的过程中用它来远程调试浏览器的网络通信和信息处理等活动,但是我现在意识到了这款工具的作用远远不止于此,所以请各位不要将其用于恶意目的,作者Daniel Abeles对此一概不负责。

工具安装

话不多说,先上GitHub传送门【点击文末阅读原文】。

我们建议使用虚拟环境来安装JSShell,作者使用的是Python3.6,但JSShell也支持3.6之前的Python版本。

Pyenv

代码语言:javascript
复制
pyenv virtualenv -p python3.6 venv
pyenv activate venv

virtualenv

代码语言:javascript
复制
virtualenv -p python3.6 venv
source venv/bin/activate

一键配置环境

代码语言:javascript
复制
pip install -r requirements.txt

JSShell的特点

-支持多客户端; -支持循环DOM对象; -预生成脚本; -命令队列;

工具运行

创建数据库:

代码语言:javascript
复制
python db_handler.py create

开启服务器(后台):

代码语言:javascript
复制
python run.py

通过浏览器访问服务器地址:

如果你的服务器在本地,那么你可以直接用浏览器访问http://localhost:5000(端口可能会不同)

打开交互式Shell:

代码语言:javascript
复制
python shell.py

可选项:预生成脚本

每当新的客户端进行注册时,这些脚本都将会运行,不过你也可以根据你的需要来进行修改,一切都取决于你自己:)

工具使用

这个Shell接口给我们提供了多种可用的操作指令,你可以使用‘help’命令来查看所有命令,终端界面如下所示:

你可以使用命令队列来申请执行多个命令,客户端将会一个一个执行这些命令。所有的命令都会在相同的环境(context)中执行,所以你可以一次性执行多个相关命令。

如果你想查看发送给客户端的命令,首先你需要选择一个客户端:

代码语言:javascript
复制
>> select 1

然后使用‘coms’命令来查看所有发送给该客户端的命令:

代码语言:javascript
复制
(Client 1) >> coms

查看所有的命令以及相应的输出结果:

代码语言:javascript
复制
(Client 1) >> com 1

工作流程

当所有的安装和配置都已完成之后,JSShell的工作流程如下:

1. 客户端访问主页http://localhost:5000/; 2. 然后向服务器端发送一个‘register’请求; 3. 等待用户输入命令; 4. 与此同时,你可以使用shell.py脚本并在服务器端执行命令; 5. 客户端从服务器端获取命令,当其得到了新的命令之后,会立刻将其加入队列并依次执行; 6. 命令执行完成之后,会将执行结果返回给服务器端; 7. 现在,我们可以使用‘coms’命令来查看输出结果了;

数据库管理

我们在这里给大家提供了一个名为db.handler.py的脚本,这个脚本包含多种数据库管理功能,你可以用它来管理和测试你的数据库。

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

本文分享自 FreeBuf 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JSShell
  • 工具安装
    • Pyenv
      • virtualenv
        • 一键配置环境
        • JSShell的特点
        • 工具运行
        • 工具使用
        • 工作流程
        • 数据库管理
        相关产品与服务
        数据库智能管家 DBbrain
        数据库智能管家(TencentDB for DBbrain,DBbrain)是腾讯云推出的一款为用户提供数据库性能、安全、管理等功能的数据库自治云服务。DBbrain 利用机器学习、大数据手段、专家经验引擎快速复制资深数据库管理员的成熟经验,将大量传统人工的数据库运维工作智能化,服务于云上和云下企业,有效保障数据库服务的安全、稳定及高效运行。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档