快轉到主要內容

iPad終端機APP「a-Shell」使用教學,支援Python Jupyter Notebook

分類   智慧型手機 iOS玩機與越獄
標籤   IOS Python
🗓️ 民國113年 甲辰年
✍ 切換正體/簡體字
目錄

a-Shell為一款開源的iOS終端機APP,由Nicolas Holzschuch開發,用途十分豐富,內建多種常用命令行工具,例如vim、git、ssh、sftp、unrar、wakeonlan、ffmpeg、ImageMagick、texlive、json2csv、nslookup。由於a-Shell支援iOS捷徑,這些指令可以寫成一連串自動化操作。

此外a-Shell還內建各種程式語言的工具,包括C/C++(編譯後透過wasm執行)、Perl 、Lua、JavaScript、Python,甚至還可以在iOS執行網頁版的Jupyter Notebook伺服器,用圖形界面寫Python程式。

a-Shell設計上有點像Android的 Termux,套件都是針對iOS原生編譯的,而非 iSH Shell那樣模擬Linux環境再轉譯成iOS system call,所以執行速度比較快。

但相對的,a-Shell能裝的套件比較少,得要作者自行提供,不像iSH Shell有Alpine Linux的上游套件庫能用。pip能裝的套件也得是純Python寫成的,無法任意安裝其他C語言寫成的Python函式庫。

1. a-shell基本用法
#

  1. a-Shell的原始碼位於 Github,無須越獄就可以使用。請至 App Store下載a-Shell。

  2. 開啟後會直接進入終端機,預設是白底黑字。如果要調整外觀,執行config指令:

# 黑底白字
config -b #000000 -f #FFFFFF

# 儲存變更
config -gp
  1. a-Shell的預設殼層為dash,而非bash或zsh。a-Shell的指令跟Linux類似,使用ls指令列出檔案;mv指令移動檔案;cp指令複製檔案;rm指令刪除檔案。

  2. 要查看可用指令,輸入help -l

  3. 若要安裝更多套件,輸入pkg search列出線上套件(跟內建的指令不同,這裡的套件都是用wasm編譯的)

  4. 再用pkg install <套件名稱>安裝,例如裝git就是:pkg install git

2. 尋找a-shell的檔案
#

a-Shell的「家目錄」就是~/Documents,每次a-shell開啟的時候都會自動定位到這裡。由於iOS的限制,在此之上的其他目錄無法寫入。

你可以在iOS的檔案APP → 我的iPhone→ a-shell的資料夾找到家目錄下全部的檔案

3. a-Shell與iOS互動的指令
#

a-Shell內建了一些工具指令:

pickFolder:暫時掛載其他APP資料夾的檔案,不會複製過來

downloadFiledownloadFolder:如果掛載的是iCloud資料夾,此指令會強迫iCloud將檔案立即下載到本機。

open <檔案路徑>:開啟檔案分享視窗,將該檔案分享給其他APP使用

view <檔案路徑>:預覽PDF或HTML檔案。

play <檔案路徑>:播放影音檔案

internalbrowser <網址>:開啟瀏覽器

newWindow:開啟新視窗

4.a-Shell使用例
#

搭配iOS捷徑使用
#

在iOS的捷徑APP,可以呼叫a-Shell執行指令,例如執行一個Python程式指令稿,或者輸入/輸出檔案。

這裡有個不錯的範本,整合了yt-dlp與gallery-dl的功能,透過a-Shell執行指令下載影片或圖片。

SW-DLT. A Shortcuts front end for yt-dlp and gallery-dl

安裝pip套件
#

  1. 我們嘗試用a-Shell內建的pip裝yt-dlp套件吧,這工具可以用來下載Youtube影片
pip install yt-dlp
  1. 嘗試下載一部影片,之後可以用檔案APP取出來。
yt-dlp "https://www.youtube.com/watch?v=IZ8-K3YPVN0"

跑Jupyter Notebook
#

  1. 不需用pip安裝,這個指令已經內建。執行以下指令啟動伺服器
jupyter-notebook
  1. 接著開啟其他瀏覽器APP(為防止iOS殺背景程式,建議用滑動置前或幕前調度叫出來),輸入螢幕上顯示的https://localhost:8888/tree?=開頭的網址,開啟網頁界面

編譯執行C語言程式
#

a-Shell僅提供Clang,沒有GCC。C語言程式得編譯成WebAssembly(wasm)格式才能執行。

  1. 安裝LLVM
pkg install llvm
  1. 用vim新增範本檔案
vim helloworld.c
  1. 填入以下內容
#include <stdio.h>

int main(void) {
    printf("Hello! World!");
    return 0;
}
  1. 利用Clang編譯成wasm
clang helloworld.c -o testc
  1. 之後執行,看看有無輸出結果
./helloworld

參考資料
#

相關文章

palera1n越獄教學,以iPhone SE 第一代 iOS 15.8.1為例
分類   智慧型手機 iOS玩機與越獄
標籤   Checkm8 IOS
iOS安裝第三方APP,Linux版AltStore + AltServer使用教學
分類   智慧型手機 iOS玩機與越獄
標籤   AltStore Linux IOS
「Dopamine」iOS 15/iOS 16免電腦越獄APP使用教學
分類   智慧型手機 iOS玩機與越獄
標籤   KFD Exploit Jailbreak IOS

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。