JSShell:一個基於python的互動式Shell
JSShell
本文將給大家介紹一款基於Web的多使用者互動式Shell,該工具採用Python語言編寫,伺服器端使用的是Flask框架,而客戶端當然就是JavaScript和HTML組成的了。我當初在開發JSShell的時候只是想在測試和研究的過程中用它來遠端除錯瀏覽器的網路通訊和資訊處理等活動,但是我現在意識到了這款工具的作用遠遠不止於此,所以請各位不要將其用於惡意目的,作者Daniel Abeles對此一概不負責。
工具安裝
話不多說,先上GitHub傳送門【點我】。
我們建議使用虛擬環境來安裝JSShell,作者使用的是Python3.6,但JSShell也支援3.6之前的Python版本。
Pyenv
pyenv virtualenv -p python3.6 venv pyenv activate venv virtualenv virtualenv -p python3.6 venv source venv/bin/activate
一鍵配置環境
pip install -r requirements.txt
JSShell的特點
-支援多客戶端;
-支援迴圈DOM物件;
-預生成指令碼;
-命令佇列;
工具執行
建立資料庫:
python db_handler.py create
開啟伺服器(後臺):
python run.py
通過瀏覽器訪問伺服器地址:
如果你的伺服器在本地,那麼你可以直接用瀏覽器訪問http://localhost:5000(埠可能會不同)
開啟互動式Shell:
python shell.py
可選項:預生成指令碼
每當新的客戶端進行註冊時,這些指令碼都將會執行,不過你也可以根據你的需要來進行修改,一切都取決於你自己:)
工具使用
這個Shell介面給我們提供了多種可用的操作指令,你可以使用‘help’命令來檢視所有命令,終端介面如下所示:
你可以使用命令佇列來申請執行多個命令,客戶端將會一個一個執行這些命令。所有的命令都會在相同的環境(context)中執行,所以你可以一次性執行多個相關命令。
如果你想檢視傳送給客戶端的命令,首先你需要選擇一個客戶端:
>> select 1
然後使用‘coms’命令來檢視所有傳送給該客戶端的命令:
(Client 1) >> coms
檢視所有的命令以及相應的輸出結果:
(Client 1) >> com 1
工作流程
當所有的安裝和配置都已完成之後,JSShell的工作流程如下:
1. 客戶端訪問主頁http://localhost:5000/;
2. 然後向伺服器端傳送一個‘register’請求;
3. 等待使用者輸入命令;
4. 與此同時,你可以使用shell.py指令碼並在伺服器端執行命令;
5. 客戶端從伺服器端獲取命令,當其得到了新的命令之後,會立刻將其加入佇列並依次執行;
6. 命令執行完成之後,會將執行結果返回給伺服器端;
7. 現在,我們可以使用‘coms’命令來檢視輸出結果了;
資料庫管理
我們在這裡給大家提供了一個名為db.handler.py的指令碼,這個指令碼包含多種資料庫管理功能,你可以用它來管理和測試你的資料庫。
相關文章
- ShutIt:一個基於 Python 的 shell 自動化框架Python框架
- 用Python基於Google Bard做一個互動式的聊天機器人PythonGo機器人
- 使用互動式 shell 來增強你的 PythonPython
- 基於Python實現互動式資料視覺化的工具(用於Web)Python視覺化Web
- Scapy 2.4.0 釋出,基於 Python 的互動式資料包處理庫Python
- shell oracle互動Oracle
- 基於 ResponderChain 的物件互動方式AI物件
- 基於ResponderChain的物件互動方式AI物件
- 基於聲網互動白板實現一個多人數獨遊戲遊戲
- 基於 Yeoman 定製的互動式命令列腳手架命令列
- Linux Shell互動式自動化運維程式Linux運維
- 如何互動式地建立一個Docker容器Docker
- Git,互動式變基,合併多個commitGitMIT
- 基於 Canvas 的 HTML5 互動式地鐵線路圖CanvasHTML
- 基於HTML5Canvas的互動式地鐵線路圖HTMLCanvas
- 基於PHP的超炫酷HTML5互動式圖表PHPHTML
- 建立互動式shell指令碼對話方塊指令碼
- Linux Shell自動互動Linux
- python SQL基礎與python互動PythonSQL
- (轉載)五MongoDB互動shellMongoDB
- Dry:一個命令列互動式 Docker 容器管理器命令列Docker
- 基於Redis實現一個分散式鎖Redis分散式
- linux透過shell指令碼實現ssh互動式自動化Linux指令碼
- 基於layui的省市區三級聯動(資料互動)UI
- 基於php的教學互動網站系統PHP網站
- Python|Python互動之mongoDB互動詳解PythonMongoDB
- 邊做遊戲邊划水: 基於淺水方程的水面互動、河道互動模擬方法遊戲
- shell程式設計之免互動程式設計
- linux shell 互動, read 命令Linux
- 平板遊戲互動式設計的10個規則遊戲
- 基於 HTML5 Canvas 的可互動旋鈕元件HTMLCanvas元件
- 互動式儀表板!Python輕鬆完成!⛵Python
- 人機互動安全的最後防線——基於能量函式的安全控制演算法函式演算法
- Kubernetes互動式指南——基礎篇(1)
- rtop:一個透過 SSH 監控遠端主機的互動式工具
- 基於聲網 Flutter SDK 實現互動直播Flutter
- 一個輕量級的基於RateLimiter的分散式限流實現MIT分散式
- 基於python的一個運維自動化的專案(進度更新)【已開源】Python運維