快轉到主要內容

iSH Shell: 在iOS上執行Linux終端機指令的APP

分類   智慧型手機 ISH Shell教學
標籤   ISH Shell IOS Linux Alpine Linux
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

不越獄的話,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初始設定
#

  1. 進入就是一個終端機的畫面,螢幕鍵盤有整合一些快捷鍵,從左到右分別是Ctrl、Shift、ESC、上下左右鍵。

  2. Alpine Linux採用APK當套件管理器(跟Android APK是不同的東西),請閱讀 Wiki了解用法。

  3. 我們先安裝一些基本開發工具吧

apk update
apk add openssh vim curl wget bash sudo openrc tmux git
  1. 要安裝Pyhton與Pip也行,至於Anaconda就…
apk add python3 py3-pip
  1. 執行指令,例如tmux會把終端機畫面分二半,使用效果如圖。

  2. 若要讓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設定開機服務
#

  1. Alpine使用的是OpenRC管理系統服務
apk add openrc
  1. 如果要開啟APP自動啟動ssh server,輸入:
rc-update add sshd
rc-service sshd start

4. iSH安裝圖形環境
#

參見 iSH Shell X11安裝教學

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系統吧。

相關文章

Termux終端機使用教學:Android手機跑Linux指令
分類   智慧型手機 Termux教學
標籤   Linux Termux
如何在手機上跑Linux系統?你有這幾個方法可以嘗試
分類   智慧型手機 真Linux手機
標籤   Termux ISH Shell UTM PostmarketOS Ubuntu Touch
在小米Poco F1安裝Linux與Android雙系統,達成多重開機
分類   智慧型手機 真Linux手機
標籤   PostmarketOS Linux Android

留言板

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

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

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