iSH bringt eine funktionierende Linux-Kommandozeile auf iPhone und iPad – ohne Jailbreak. Kostenlos, im App Store, und keine Remote-Sitzung: Shell, Dateisystem und Pakete liegen alle auf dem Gerät.
Wie es tatsächlich funktioniert
iSH ist weder eine virtuelle Maschine noch eine native Portierung. Es betreibt eine Alpine-Linux-Umgebung über x86-Emulation im User-Modus in Verbindung mit Syscall-Übersetzung: Echte x86-Linux-Binärdateien werden Befehl für Befehl interpretiert, und die Linux-Systemaufrufe, die sie absetzen, werden in etwas übersetzt, das iOS akzeptiert.
Genau dieser Entwurf erklärt, warum iSH so kompatibel und zugleich so langsam ist. Der Interpreter des Projekts nutzt Threaded Code – ein Array von Funktionszeigern statt einer einfachen switch-Anweisung – und gewinnt damit rund das 3- bis 5-Fache gegenüber dem naiven Ansatz. Der Emulationsaufschlag bleibt aber bei jeder Instruktion bestehen. Betrachten Sie iSH als Ort für Skripte und kleine Werkzeuge, nicht zum Kompilieren großer Projekte.
Eine Folge davon überrascht viele: Da der Emulator x86 ist, laufen ARM-Binärdateien, die Sie vielleicht von einem Raspberry Pi oder einem M-Series-Mac kopiert haben, hier nicht. Alles muss aus Alpines x86-Repositories kommen.
Installation und die ersten fünf Minuten
Installieren Sie iSH Shell aus dem App Store. Der Download ist klein – etwa 6 MB –, weil das Alpine-Wurzeldateisystem erst beim ersten Start geladen und entpackt wird. Für alle, die Builds vor der Store-Freigabe möchten, gibt es zusätzlich einen TestFlight-Beta-Kanal.
Der erste sinnvolle Schritt ist das Auffrischen des Paketindex:
apk update
Ein verbreiteter Irrtum lautet, iSH „unterstütze Bash, Zsh und Fish“. Mitgeliefert wird BusyBox ash, die Standard-Shell von Alpine. Bash, Zsh und Fish sind alle verfügbar, aber Sie installieren sie selbst:
apk add bash git python3 nano openssh
Paketverwaltung: apk statt apt
Wenn Ihre Linux-Gewohnheiten von Debian oder Ubuntu kommen, arbeitet das Muskelgedächtnis gegen Sie. apt-get gibt es hier nicht. Alpine verwendet apk:
apk add <Paket> zum Installieren, apk del <Paket> zum Entfernen, apk search <Begriff> zum Suchen und apk upgrade, um alles zu aktualisieren.
Alpine baut auf musl libc statt auf glibc auf. Den meisten Kommandozeilenprogrammen ist das gleichgültig, aber die eine oder andere Binärdatei oder ein Python-Wheel, das glibc voraussetzt, verweigert den Dienst. Das ist eine Grenze von Alpine, nicht von iSH.
Das hängende git clone – und die Lösung
Das mit Abstand häufigste Problem: git clone bleibt bei resolving deltas 0% stehen und bewegt sich nicht mehr. Das ist kein Netzwerkfehler, sondern ein Threading-Problem unter Emulation. Zwingen Sie git auf einen einzigen Thread:
git config --global pack.threads "1"
Danach läuft der Klon durch, bei großen Repositories allerdings langsam. Wichtig: Das behebt den Klon, nicht alles, was danach kommt. Toolchains, die viele Threads starten oder ein vollständiges glibc erwarten – Go-Builds sind das übliche Beispiel –, können auch nach einem erfolgreichen Checkout scheitern.
Grenzen, die man kennen sollte, bevor man sich darauf verlässt
iOS suspendiert Apps im Hintergrund. Wechseln Sie während eines langen Vorgangs aus iSH heraus, friert das System die App irgendwann ein oder fordert ihren Speicher zurück. Das Projekt-Wiki dokumentiert einen Workaround, der die App über den Standort-Hintergrundmodus am Leben hält, indem /dev/location nach /dev/null gelesen wird. Er funktioniert, kostet aber Akku und ist ein Behelf, kein unterstütztes Feature.
Es gibt kein JIT. Apple gewährt App-Store-Apps nicht die Berechtigung, mit der iSH Code zur Laufzeit übersetzen könnte – das deckelt, wie schnell der Emulator überhaupt je werden kann.
Sie befinden sich in der App-Sandbox. iSH kommt an den Rest von iOS nicht heran. Es ist in die Dateien-App integriert, Sie können also Daten hinein- und herausbewegen; „Zugriff auf Systemebene unter iOS“ ist das aber nicht – diese Formulierung steht in vielen Texten und sie ist falsch.
iSH oder a-Shell?
Das sind die realistischen Alternativen, und sie sind Gegensätze.
a-Shell liefert native, für iOS kompilierte Binärdateien. Schnell und schonend für den Akku, aber es ist keine Linux-Distribution: kein apk, kein apt, überhaupt keine Paketverwaltung – und keine Absicht, eine hinzuzufügen. Sie bekommen, was der Maintainer beilegt.
iSH ist ein echtes Alpine-System mit Tausenden installierbaren Paketen und bezahlt dafür mit Emulationsaufwand.
Nehmen Sie a-Shell, wenn Tempo wichtiger ist als Paketauswahl. Nehmen Sie iSH, wenn Sie wirklich eine Linux-Distribution brauchen und mit der Langsamkeit leben können. Und um eine wiederkehrende Frage zu klären: Termux wurde nie auf iOS portiert. Was im App Store als „Termux für iPhone“ auftritt, ist nicht das Android-Projekt.
Wo das Projekt 2026 steht
Hier lohnt Nüchternheit. Die App-Store-Version ist 1.3.2 vom Mai 2023 – seit über drei Jahren gab es keine Store-Veröffentlichung mehr. Die Seite trägt weiterhin 4,7 von 5 Sternen bei rund 1.200 Bewertungen, und die App läuft ab iOS 11.
Das Repository erzählt eine lebendigere Geschichte: über 20.000 Sterne, mehr als 4.000 Commits und rund 660 offene Issues. Die Entwicklung steht nicht still, aber der Strom fertiger Releases in den App Store ist zum Erliegen gekommen – und die Zahl der offenen Issues ist ein ehrliches Signal für die Kanten, auf die Sie stoßen werden.
Lohnt sich die Installation also?
Ja, mit passenden Erwartungen. Als Unix-Umgebung für die Hosentasche – Shell-Skripte schreiben und ausführen, Dateien mit vim oder nano bearbeiten, schnelles Python, SSH auf einen echten Server, git-Operationen, nachts um zwei an einer Textdatei arbeiten, weil kein Rechner in der Nähe ist – erledigt sie ihre Aufgabe, und nichts anderes unter iOS tut das so vollständig.
Als Entwicklungsmaschine wird sie Sie frustrieren. Kompilieren ist langsam, lange Vorgänge sterben, sobald die App in den Hintergrund geht, und manche Pakete spielen schlicht nicht mit. Unser früheres Fazit auf dieser Seite lautete, iSH „brauche noch einiges an Arbeit“; drei Jahre später gilt das weiterhin – nur können wir jetzt genau benennen, wo die Reibung sitzt, statt es bei einem Eindruck zu belassen.