
Wussten Sie, dass Sie die Linux-Befehlszeile auf einem iOS-Gerät ausführen können? Vielleicht fragen Sie sich: „Warum sollte ich Textanwendungen auf dem iPhone verwenden?“ Eine berechtigte Frage. Aber wenn Sie Opensource.com lesen, wissen Sie wahrscheinlich die Antwort: Linux-Nutzer möchten in der Lage sein, auf jedem Gerät damit zu arbeiten und ihre eigenen Einstellungen zu verwenden.
Aber am meisten sehnen sie sich danach, komplexe Aufgaben zu lösen.
Ich habe ein sieben Jahre altes iPad 2 Mini, das immer noch gut für das Lesen von E-Books und andere Aufgaben geeignet ist. Aber ich möchte es auch verwenden, um auf die Befehlszeile von Anwendungen mit meinem Set an Programmen und Skripten zuzugreifen, ohne die ich nicht arbeiten kann. Ich benötige eine Umgebung, an die ich gewöhnt bin, sowie meine Standard-Entwicklungsumgebung. Und so habe ich das erreicht.
Tastatur anschließen
Mit der Befehlszeile für die Programmierung über die Bildschirmtastatur des Telefons oder Tablets zu arbeiten, ist ziemlich umständlich. Ich empfehle, eine externe Tastatur anzuschließen, entweder über Bluetooth oder mit einem Kameradapter, um eine kabelgebundene Tastatur anzuschließen (ich habe die zweite Option gewählt). Wenn man die geteilte Kinesis Advantage-Tastatur an das iPhone 6 anschließt, entsteht ein seltsames Gerät, das an aus einem klassischen Shadowrun.
Shell für iOS installieren
Um ein vollwertiges Linux-System auf iOS auszuführen, gibt es zwei Optionen:
- Secure Shell (SSH), verbunden mit einem Linux-Computer
- Ausführung eines virtuellen Systems mit Alpine Linux über iSH, das Open Source ist, aber über die proprietäre TestFlight-App von Apple installiert werden muss.
Alternativ gibt es zwei Terminal-Emulatoranwendungen in Open Source, die die Nutzung von Open-Source-Tools in einer eingeschränkten Umgebung ermöglichen. Dies ist die am stärksten eingeschränkte Option – tatsächlich führen Sie nicht Linux, sondern Linux-Tools aus. Bei der Nutzung dieser Anwendungen treten strenge Einschränkungen auf, aber Sie erhalten eine teilweise Funktionalität der Befehlszeile.
Bevor ich zu komplexeren Lösungen übergehe, werde ich die einfachste Methode betrachten.
Option 1: Shell im 'Sandbox'
Einer der einfachsten Wege ist, eine iOS-App zu installieren . Es ist Eine Kommandozeile in einer 'Sandbox', die über 80 Befehle für null Dollar unterstützt. Mitgeliefert wird Python 2.7, Python 3.7, Lua, C, Clang und vieles mehr.
Eine vergleichbare Funktionalität bietet , das von den Entwicklern als 'Testbenutzeroberfläche für Plattformen mit Bildschirm-Eingabe' beschrieben wird. Der Quellcode von a-Shell ist als verfügbar, es befindet sich in aktiver Entwicklung, bietet Zugriff auf das Dateisystem und wird mit Lua, Python, Tex, Vim, JavaScript, C und C++ sowie Clang und Clang++ geliefert. Es ermöglicht sogar die Installation von Python-Paketen mithilfe von pip.
Option 2: SSH
Ein weiterer Schritt nach vorne im Vergleich zum Herunterladen einer App ist die Einrichtung eines SSH-Clients. Seit langem konnten wir jede der vielen SSH-Client-Apps für iOS nutzen, um eine Verbindung zu einem Server herzustellen, auf dem Linux oder BSD läuft. Der Vorteil der Nutzung von SSH besteht darin, dass auf dem Server jede Distribution mit jeder Software ausgeführt werden kann. Sie arbeiten remote und die Arbeitsergebnisse werden einfach an den Terminalemulator auf dem iOS-Gerät übertragen.
ist eine beliebte kostenpflichtige SSH-App in . Wenn man den kleinen Bildschirm des Geräts außer Acht lässt, ähnelt die Nutzung dieser Software der Verbindung zu einem Server über jede andere Eingabeaufforderung. Der Blink-Terminal sieht großartig aus, bietet viele vorgefertigte Designs und die Möglichkeit, eigene zu erstellen, einschließlich der Möglichkeit, neue Schriftarten hinzuzufügen und zu konfigurieren.
Option 3: Linux starten
Die Nutzung von SSH zur Verbindung mit einem Linux-Server ist eine hervorragende Möglichkeit, auf die Eingabeaufforderung zuzugreifen, erfordert jedoch einen externen Server und eine Netzwerkverbindung. Das ist kein unüberwindbares Hindernis, aber es kann nicht vollständig ignoriert werden, daher müssen Sie möglicherweise mit Linux ohne Server arbeiten.
Wenn das auf Sie zutrifft, müssen Sie einen weiteren Schritt machen. — dieser proprietäre Dienst ermöglicht die Installation von entwickelten Anwendungen, bevor sie im Apple App Store veröffentlicht werden. Die TestFlight-App kann aus dem App Store installiert werden und dann können Testanwendungen verwendet werden. Anwendungen in TestFlight erlauben es, für einen begrenzten Zeitraum mit einer begrenzten Anzahl von Beta-Testern (in der Regel bis zu 10.000) zu arbeiten. Um eine Testanwendung herunterzuladen, muss man von seinem Gerät aus auf einen Link gehen, der normalerweise auf der Website des Entwicklers der Testanwendung zu finden ist.
Alpine Linux mit iSH starten
— ist eine Open-Source-Anwendung von TestFlight, die eine virtuelle Maschine mit einer vollständigen Distribution ausführt (mit ein wenig Aufwand kann man auch andere Distributionen starten).
Wichtiges Merkmal: die Anwendung ist experimentell. Da iSH derzeit eine Testanwendung ist, sollte man keine ständige und zuverlässige Funktion erwarten. TestFlight-Anwendungen sind zeitlich begrenzt. Mein aktuelles Build wird nur 60 Tage lang funktionieren. Das bedeutet, dass ich nach 60 Tagen ausgeschlossen werde und mich erneut für die nächste Testphase von iSH anmelden muss. Darüber hinaus werde ich alle meine Dateien verlieren, wenn ich sie nicht über Dateien auf iOS exportiere oder nicht auf einen Git-Host kopiere oder . Mit anderen Worten: Hoffen Sie nicht, dass das alles weiterhin funktioniert! Legen Sie nichts Wichtiges in das System! Machen Sie Backups an einem anderen Ort!
iSH installieren
Beginnen Sie mit der Installation aus dem App Store. Installieren Sie dann iSH, von der Website der Anwendung erhalten. Es gibt einen weiteren Installationsweg mit AltStore, den ich jedoch nicht ausprobiert habe. Oder wenn Sie ein kostenpflichtiges Entwicklerkonto haben, können Sie das iSH-Repository von GitHub herunterladen und es selbst installieren.
Mit dem Link wird TestFlight die iSH-Anwendung auf Ihr Gerät installieren. Wie bei jeder anderen Anwendung wird ein Symbol auf dem Bildschirm angezeigt.
Paketverwaltung
iSH führt einen x86-Emulator mit Alpine Linux aus. Alpine ist eine winzige Distribution mit weniger als 5 MB. Ich habe zum ersten Mal mit Alpine gearbeitet, also dachte ich, dass dieser Minimalismus störend sein würde, aber tatsächlich hat er mir sehr gut gefallen.

In Alpine wird ein Paketmanager verwendet, , der einfacher ist als selbst apt oder pacman.
Wie man ein Paket installiert:
apk add packageWie man ein Paket entfernt:
apk del packageWie man andere Befehle und Informationen abfragt:
apk --helpAktualisierung des Paketmanagers:
apk update
apk upgradeInstallation des Texteditors
Der Standard-Texteditor in Alpine ist Vi, aber ich bevorzuge Vim, deshalb habe ich ihn installiert:
apk add vimBei Bedarf können Sie auch Nano oder Emacs installieren.
Shell wechseln
Ich weiß nicht, wie es Ihnen geht, aber ich benötigte eine . Andere Menschen bevorzugen oder . In Alpine wird jedoch ash verwendet! Ash ist ein Fork der Dash-Shell, die selbst ein Fork der ursprünglichen ash ist oder . Ihr Hauptaugenmerk liegt auf Geschwindigkeit. Ich habe mich entschieden, Geschwindigkeit gegen integrierte Autovervollständigung, Farben, Vim-Tastenkombinationen und Syntaxhervorhebung zu tauschen, die ich an der fish shell liebe und kenne.
Installation von fish:
apk add fishWenn Sie Bash mit ihrer Autovervollständigung und man-Seiten benötigen, installieren Sie diese:
apk add bash bash-doc bash-completionDie minimalistischen Ideale von Alpine bedeuten in der Regel, dass einige Programme, die in anderen Distributionen als ein Paket gelten, in mehrere kleinere Pakete aufgeteilt werden. Das bedeutet auch, dass Sie Ihr System genau nach Ihren Wünschen anpassen und verkleinern können.
Mehr Informationen zur Installation von Bash finden Sie in .
Standard-Shell ändern
Nach der Installation von fish können Sie temporär zu ihm wechseln, indem Sie fish eingeben und die Shell betreten. Aber ich möchte fish zur Standard-Shell machen, und der Befehl chsh, den ich in anderen Distributionen verwendet habe, funktionierte nicht.
Zuerst erfahren wir, wo fish installiert wurde:
which fishDas habe ich bekommen:
/usr/bin/fish Jetzt ändern wir die Login-Shell auf fish. Sie können jeden gewünschten Editor verwenden. Wenn Sie neu sind, installieren Sie Nano (mit dem Befehl apk add nano), um Konfigurationsdateien zu bearbeiten und diese mit CTRL+X zu speichern und zu beenden.
Aber ich habe Vim verwendet:
vim /etc/passwdMeine erste Zeile war wie folgt:
root:x:0:0:root:/root:/bin/ashUm fish zur Standard-Shell zu machen, ändern wir diese Zeile in die folgende:
root:x:0:0:root:/root:/usr/bin/fishDann speichern wir die Datei und beenden.
Ich bin mir sicher, dass es einen guten Weg gibt, den Pfad zur Shell zu ändern, damit sie sofort verwendet werden kann. Aber ich kenne ihn nicht, deshalb empfehle ich, zum App-Browser zurückzukehren, die Shell-Zwangsschließung durchzuführen und zum sicherheitshalber iPad oder iPhone auszuschalten und neu zu starten. Öffnen Sie iSH erneut und jetzt werden Sie neben der Nachricht „Willkommen in Alpine!“ und den Startinformationen von apk die standardmäßige Willkommensnachricht der fish-Anmeldung sehen: Willkommen bei fish, der freundlichen interaktiven Shell. Hurra!

Einrichtung von Python und pip
Ich habe mich entschieden, es hinzuzufügen (Version 3.x), nicht nur um Code zu schreiben, sondern auch, weil ich mehrere Programme in Python benutze. Lassen Sie es uns installieren:
apk add python3Obwohl Python 2.x veraltet ist, kann man es auch installieren:
apk add pythonLassen Sie uns den Python-Paketmanager namens pip und :
python3 -m ensurepip --default-pipDie Installation und Einrichtung des Paketmanagers benötigt etwas Zeit, also warten Sie einfach.
Dann können Sie das Tool zur Dateitransfer über das Netzwerk herunterladen :
apk add curlLassen Sie uns die Handbücher lesen
Fish verwendet ein integriertes Auto-Vervollständigungssystem basierend auf man-Seiten. Wie andere Befehlszeilenbenutzer benutze ich das Handbuch man, aber in Alpine ist es nicht installiert. Daher habe ich es mit dem Terminal-Pager installiert :
apk add man man-pages less less-docZusätzlich zu man verwende ich das großartige , das vereinfachte und von der Community gepflegte man-Seiten bereitstellt.
Ich habe es mit pip installiert:
pip install tldr Team tldr verbindet sich mit dem Web, um Seiten abzurufen, wenn es mit einer Anfrage nach einer neuen Seite konfrontiert wird. Wenn Sie wissen möchten, wie man einen Befehl verwendet, können Sie etwas schreiben wie tldr curl und eine Beschreibung in einfachem Englisch sowie gute Beispielsanwendungen für den Befehl erhalten.
Natürlich kann man die gesamte Installationsarbeit mit Hilfe von oder einem Installationsskript automatisieren, aber das entspricht eigentlich nicht ganz der Ideologie von Alpine – eine minimale Installation gezielt an die eigenen Bedürfnisse anzupassen. Außerdem hat das ja so viel Zeit in Anspruch genommen, nicht wahr?
Zusätzliche Informationen
In der iSH-Wiki gibt es eine Seite "" mit Berichten über die aktuellen funktionierenden Pakete. Übrigens scheint .
Auf einer anderen Wiki-Seite wird erklärt, wie man aus der iOS-Dateien-App zugreifen kann. Das ist einer der Wege, um Dateien zu verschieben und zu kopieren.
Man kann auch Git installieren (ja! apk add git ) und seine Arbeit in ein entferntes Repository pushen oder sie über SSH auf einen Server übertragen. Und natürlich kann man beliebig viele großartige Open-Source-Projekte von GitHub herunterladen und ausführen.
Mehr über iSH erfahren Sie unter diesen Links:
Als Werbung
VDS bietet oder Windows. Wir verwenden ausschließlich , das beste seiner Art Bedienfeld für Serververwaltung, das wir selbst entwickelt haben, und einige der besten Rechenzentren in Russland und der EU. Zögern Sie nicht, zu bestellen!
Quelle: habr.com
