不越獄的話,iPhone是否有像是 NewTerm的終端機呢?
有的,iSH Shell就是你的選擇。
iSH Shell是一款開源的終端機APP,基於32位元Alpine Linux開發,可以免越獄執行SSH和各種Linux指令。
iSH可以做些什麼呢?因為他是一個模擬的x86系統,你可以SSH到遠端主機、 在iOS跑SSH伺服器、iOS上寫Python/Java/NodeJS程式、執行Docker、跑Linux桌面環境等等…這樣iPad也多了一個「生產力」的應用程式了。
1. 安裝iSH Shell#
iSH Shell為自由軟體,原始碼放在 Github, Wiki有一些安裝常見軟體的教學文章。
iSH現已上架 App Store。
你也可以從 AltStore側載IPA,方便啟用JIT加速。
2. iSH初始設定#
進入就是一個終端機的畫面,螢幕鍵盤有整合一些快捷鍵,從左到右分別是Ctrl、Shift、ESC、上下左右鍵。
Alpine Linux採用APK當套件管理器(跟Android APK是不同的東西),請閱讀 Wiki了解用法。
我們先安裝一些基本開發工具吧
apk update
apk add openssh vim curl wget bash sudo openrc tmux git
- 要安裝Pyhton與Pip也行,至於Anaconda就…
apk add python3 py3-pip
執行指令,例如
tmux
會把終端機畫面分二半,使用效果如圖。若要讓iSH保持在背景執行,執行以下指令,允許iSH Shell存取位置資訊。回到桌面後iSH會持續執行。
cat /dev/location > /dev/null &
2. 用iSH Shell管理iOS檔案#
iSH Shell畢竟是普通APP,沒有越獄功能,所以只能看到自己的檔案系統,以及部份iOS APP所分享的資料夾。
iSH安裝之後,開啟「檔案」App可看到iSH內部的Linux檔案系統。你可以把其他APP的檔案複製到/root/
資料夾給iSH Shell存取。
如果APP有支援檔案分享功能,那麼你可以用mount -t ios 掛載點名稱 /mnt
指令,將APP分享的資料夾掛載給iSH Shell讀取。比如掛載VLC的資料夾,讀取影片檔:
iSH亦能在設定中匯入/匯出檔案系統,如果搞壞系統可以從壓縮檔還原而不用重裝APP。
3. iSH設定開機服務#
- Alpine使用的是OpenRC管理系統服務
apk add openrc
- 如果要開啟APP自動啟動ssh server,輸入:
rc-update add sshd
rc-service sshd start
4. iSH安裝圖形環境#
5. iSH Shell與UTM的比較#
跟同樣為虛擬機軟體的 UTM比起來,iSH Shell僅提供了一個最小化的終端機環境,執行所需資源較低,適合命令行愛好者使用。
iSH Shell跟UTM一樣,都是模擬Linux系統,不是原生執行的程式,所以一定會有效能損失。部份情況下可以啟用JIT加速轉譯。
iSH Shell虛擬系統只提供純文字介面,執行所需資源非常少,在老舊的iOS裝置也可以執行。但是,開發者選擇以32位元的Alpine Linux作為基底,會造成一些問題。首先Alpine Linux不是主流發行版,它的套件已經偏少了,再加上32位元架構,致使能裝的軟體會越來越少。還有,iSH Shell的轉譯器沒有實作所有System Call,執行部份程式會出現Bad System Call
錯誤。
如果你需要64位元的完整Linux環境,請還是用UTM搞個Alpine或Ubuntu系統吧。