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的指令碼,這個指令碼包含多種資料庫管理功能,你可以用它來管理和測試你的資料庫。
相關文章
- 用Python基於Google Bard做一個互動式的聊天機器人PythonGo機器人
- 使用互動式 shell 來增強你的 PythonPython
- 基於Python實現互動式資料視覺化的工具(用於Web)Python視覺化Web
- Scapy 2.4.0 釋出,基於 Python 的互動式資料包處理庫Python
- Linux Shell互動式自動化運維程式Linux運維
- Git,互動式變基,合併多個commitGitMIT
- 基於ResponderChain的物件互動方式AI物件
- 基於 ResponderChain 的物件互動方式AI物件
- 建立互動式shell指令碼對話方塊指令碼
- python SQL基礎與python互動PythonSQL
- 基於 Canvas 的 HTML5 互動式地鐵線路圖CanvasHTML
- 基於HTML5Canvas的互動式地鐵線路圖HTMLCanvas
- 基於聲網互動白板實現一個多人數獨遊戲遊戲
- shell指令碼-免互動指令碼
- linux透過shell指令碼實現ssh互動式自動化Linux指令碼
- 基於Redis實現一個分散式鎖Redis分散式
- Dry:一個命令列互動式 Docker 容器管理器命令列Docker
- Python|Python互動之mongoDB互動詳解PythonMongoDB
- 基於layui的省市區三級聯動(資料互動)UI
- shell程式設計之免互動程式設計
- 基於php的教學互動網站系統PHP網站
- 互動式儀表板!Python輕鬆完成!⛵Python
- 實現一鍵式自動化操作(快速建立 Python 與 Shell 檔案)Python
- 基於python使用qqbot接入qq做一個簡單的文字訊息自動回覆Python
- 人機互動安全的最後防線——基於能量函式的安全控制演算法函式演算法
- 一個輕量級的基於RateLimiter的分散式限流實現MIT分散式
- 互動式 .Net
- 基於 HTML5 Canvas 的可互動旋鈕元件HTMLCanvas元件
- shell擴充套件——免互動指令碼套件指令碼
- Streamlit 快速構建互動式頁面的python庫Python
- python互動式專案例項 外星人入侵Python
- 邊做遊戲邊划水: 基於淺水方程的水面互動、河道互動模擬方法遊戲
- 教你一招:基於Redis實現一個分散式鎖Redis分散式
- 基於聲網 Flutter SDK 實現互動直播Flutter
- 『忘了再學』Shell基礎 — 24、Shell正規表示式的使用
- 關於一個前端開發常見shell命令的操作前端
- 【分散式架構】(10)---基於Redis元件的特性,實現一個分散式限流分散式架構Redis元件
- 基於 Agora SDK 實現 Windows 端的多人視訊互動(基於3.6.2版本)GoWindows
- 手把手教你實現一個基於Redis的分散式鎖Redis分散式