
Wussten Sie, dass Sie die Kommandozeile ausführen können? Linux auf einem iOS-Gerät? Sie fragen sich vielleicht: „Warum sollte ich SMS-Apps auf einem iOS-Gerät verwenden?“ iPhone„Das ist eine berechtigte Frage. Aber wenn Sie Opensource.com lesen, kennen Sie die Antwort wahrscheinlich schon: die Nutzer.“ Linux Sie möchten damit auf jedem Gerät arbeiten können und ihre eigenen Einstellungen verwenden.
Vor allem aber sehnt sie sich nach der Lösung komplexer Probleme.
Ich habe ein sieben Jahre altes iPad 2 Mini, das sich immer noch gut zum Lesen von E-Books und für andere Aufgaben eignet. Ich möchte es aber auch nutzen, um mit meinen Programmen und Skripten auf die Befehlszeile von Anwendungen zuzugreifen, ohne die ich nicht arbeiten kann. Ich brauche eine Umgebung, die ich gewohnt bin, zusätzlich zu meiner Standard-Entwicklungsumgebung. Und so ist mir das gelungen.
Anschluss an eine Tastatur
Die Programmierung über die Kommandozeile mithilfe der Bildschirmtastatur eines Smartphones oder Tablets ist recht umständlich. Ich empfehle daher den Anschluss einer externen Tastatur, entweder per Bluetooth oder mithilfe eines Kameraadapters für eine kabelgebundene Tastatur (ich habe mich für Letzteres entschieden). Beim Anschließen der Kinesis Advantage Split-Tastatur an iPhone 6. Man erhält ein seltsames Gerät, das ähnelt aus der Klassik Schattenlauf.
Installieren der Shell unter iOS
Um ein voll funktionsfähiges System zu starten Linux Auf iOS gibt es zwei Möglichkeiten:
- Sichere Shell (SSH)-Verbindung zu einem Computer mit Linux
- Ausführen eines virtuellen Systems mit Alpine Linux mit iSH, das zwar Open Source ist, aber mithilfe von Apples proprietärer TestFlight-App installiert werden muss.
Alternativ gibt es zwei Open-Source-Terminalemulatoren, mit denen Sie in einer eingeschränkten Umgebung mit Open-Source-Tools arbeiten können. Dies ist die abgespeckteste Option – Sie führen die Open-Source-Tools nicht tatsächlich aus. Linuxund die Werkzeuge LinuxBei der Arbeit mit diesen Anwendungen gibt es erhebliche Einschränkungen, aber man erhält eine teilweise Befehlszeilenfunktionalität.
Bevor ich zu komplexen Lösungen übergehe, werde ich den einfachsten Weg in Betracht ziehen.
Option 1: Shell in der Sandbox
Eine der einfachsten Möglichkeiten ist die Installation der iOS-App . Es Sandbox-Befehlsshell mit Unterstützung für über 80 Befehle zum Null-Dollar-Preis. Es kommt mit Python 2.7, Python 3.7, Lua, C, Clang und mehr.
Ungefähr die gleiche Funktionalität , von den Entwicklern als „Testbenutzeroberfläche für eine Plattform mit Bildschirmeingabe“ beschrieben. a-Shell-Quellen veröffentlicht Es befindet sich in der aktiven Entwicklung, bietet Dateisystemzugriff und wird mit Lua, Python, Tex, Vim, JavaScript, C und C++ sowie Clang und Clang++ ausgeliefert. Es ermöglicht Ihnen sogar, Python-Pakete mit pip zu installieren.
Option 2: SSH
Ein weiterer Schritt nach dem Herunterladen einer App ist die Einrichtung eines SSH-Clients. Schon seit Längerem können wir jede der vielen SSH-Client-Apps für iOS verwenden, um eine Verbindung zu einem Server herzustellen, auf dem … läuft. Linux oder BSD. Der Vorteil von SSH liegt darin, dass der Server jede beliebige Distribution mit beliebiger Software ausführen kann. Sie arbeiten remote, und Ihre Arbeit wird einfach an den Terminalemulator auf Ihrem iOS-Gerät übertragen.
ist eine beliebte kostenpflichtige SSH-Anwendung in . Wenn Sie nicht auf den kleinen Bildschirm des Geräts achten, ist die Verwendung dieser Software so, als ob Sie über eine andere Befehlszeile eine Verbindung zum Server herstellen würden. Das Blink-Terminal sieht großartig aus, verfügt über viele vorgefertigte Themen und die Möglichkeit, eigene zu erstellen, einschließlich der Möglichkeit, neue Schriftarten anzupassen und hinzuzufügen.
Option 3: Starten Linux
Verwenden von SSH zum Server unter Linux Dies ist eine hervorragende Möglichkeit, auf die Kommandozeile zuzugreifen, erfordert jedoch einen externen Server und eine Netzwerkverbindung. Das ist zwar keine unüberwindbare Hürde, sollte aber nicht völlig außer Acht gelassen werden, daher müssen Sie möglicherweise damit arbeiten. Linux ohne Server.
Wenn dies bei Ihnen der Fall ist, müssen Sie noch einen Schritt weiter gehen. ist ein proprietärer Dienst zum Installieren von in der Entwicklung befindlichen Anwendungen, bevor sie im Apple App Store veröffentlicht werden. Sie können die TestFlight-App aus dem App Store installieren und dann die Test-Apps verwenden. Anwendungen in TestFlight ermöglichen einer begrenzten Anzahl von Betatestern (normalerweise bis zu 10), für eine begrenzte Zeit mit ihnen zu arbeiten. Um die Test-App herunterzuladen, müssen Sie auf Ihrem Gerät auf den Link zugreifen, der sich normalerweise auf der Website des Entwicklers der Test-App befindet.
Markteinführung von Alpine Linux mit iSH
ist eine Open-Source-TestFlight-Anwendung, die eine virtuelle Maschine mit einer vorgefertigten Distribution ausführt (Mit ein wenig Arbeit können Sie auch andere Distributionen ausführen).
Wichtiges Merkmal: Anwendung experimentell. Da es sich bei iSH derzeit um eine Testanwendung handelt, können Sie keine konsistente und zuverlässige Leistung erwarten. TestFlight-Anwendungen sind zeitlich begrenzt. Mein aktueller Build läuft nur 60 Tage. Das bedeutet, dass ich nach 60 Tagen ausgeschlossen werde und wieder in die nächste Phase des iSH-Tests einsteigen muss. Außerdem verliere ich alle meine Dateien, wenn ich sie nicht mit „Dateien“ auf iOS exportiere oder sie auf einen Git-Host kopiere . Mit anderen Worten: Erwarten Sie nicht, dass alles weiterhin funktioniert! Geben Sie nichts Wichtiges in das System ein! Sichern Sie an einem separaten Ort!
iSH-Installation
Beginnen Sie mit der Installation aus dem App Store. Dann installieren Sie iSH, von der Bewerbungswebsite. Es gibt eine andere Möglichkeit zur Installation mit AltStore, die ich jedoch nicht ausprobiert habe. Wenn Sie über ein kostenpflichtiges Entwicklerkonto verfügen, können Sie das iSH-Repository auch von GitHub herunterladen und selbst installieren.
Über den Link installiert TestFlight die iSH-App auf Ihrem Gerät. Wie bei jeder anderen Anwendung erscheint ein Symbol auf dem Bildschirm.
Paketverwaltung
iSH verwendet einen x86-Emulator mit Alpine. LinuxAlpine ist eine winzige Distribution mit weniger als 5 MB Größe. Da ich Alpine zum ersten Mal benutzt habe, dachte ich, der Minimalismus würde mich stören, aber ich fand es tatsächlich richtig gut.

Alpine verwendet einen Paketmanager Das ist einfacher als sogar Apt oder Pacman.
So installieren Sie das Paket:
apk add packageSo entfernen Sie ein Paket:
apk del packageSo erfahren Sie weitere Befehle und Informationen:
apk --helpPaketmanager-Update:
apk update
apk upgradeInstallieren eines Texteditors
Der Standard-Texteditor von Alpine ist Vi, aber ich bevorzuge Vim, also habe ich ihn installiert:
apk add vimAuf Wunsch können Sie Nano oder Emacs installieren.
Shell-Wechsel
Ich weiß nicht, wie es dir geht, aber ich brauchte es . Andere bevorzugen es oder . Allerdings verwendet Alpine Asche! Asche ist eine Abzweigung der Dash-Shell, die selbst eine Abzweigung der ursprünglichen Asche ist, oder . Ihre Priorität ist Geschwindigkeit. Ich habe beschlossen, Geschwindigkeit gegen die integrierte automatische Vervollständigung, Farben, Vim-Schlüsselverwaltung und Syntaxhervorhebung einzutauschen, die ich liebe und aus der Fischschale kenne.
Fischinstallation:
apk add fishWenn Sie Bash mit seiner Autovervollständigung und Manpages benötigen, installieren Sie diese:
apk add bash bash-doc bash-completionDie minimalistische Ideologie von Alpine bedeutet normalerweise, dass einige Programme, die auf anderen Distributionen ein einzelnes Paket sind, in mehrere kleinere Pakete aufgeteilt werden. Das bedeutet auch, dass Sie das System ganz nach Ihren Wünschen optimieren und verkleinern können.
Weitere Informationen zur Installation von Bash finden Sie unter .
Ändern der Standard-Shell
Sobald Fish installiert ist, können Sie durch Eingabe vorübergehend zu ihm wechseln fish und zur Muschel gehen. Aber ich möchte Fisch zur Standard-Shell und zum Befehl machen chsh, das ich in anderen Distributionen verwendet habe, funktionierte nicht.
Lassen Sie uns zunächst herausfinden, wo Fish installiert ist:
which fishFolgendes ist mir passiert:
/usr/bin/fish Als nächstes ändern Sie die Login-Shell in „fish“. Sie können jeden beliebigen Editor verwenden. Wenn Sie ein Anfänger sind, installieren Sie Nano (mit dem Befehl apk add nano), damit Sie die Konfigurationsdateien bearbeiten und über STRG+X speichern, bestätigen und beenden können.
Aber ich habe Vim verwendet:
vim /etc/passwdMeine erste Zeile war:
root:x:0:0:root:/root:/bin/ashUm „fish“ zur Standard-Shell zu machen, ändern Sie diese Zeile wie folgt:
root:x:0:0:root:/root:/usr/bin/fishSpeichern Sie dann die Datei und beenden Sie den Vorgang.
Ich bin mir sicher, dass es eine Möglichkeit gibt, den Shell-Pfad so zu ändern, dass er sofort verwendet werden kann. Da ich diese aber nicht kenne, empfehle ich, zum App-Browser zurückzukehren, die Shell zwangsweise zu beenden und zur Sicherheit das iPad herunterzufahren und neu zu starten. iPhoneÖffnen Sie iSH erneut, und nun sehen Sie neben der Meldung „Willkommen bei Alpine!“ und Informationen zum Starten aus der APK auch die standardmäßige Fish-Login-Willkommensmeldung: Willkommen bei fish, der freundlichen interaktiven Muschel. Hurra!

Python und Pip einrichten
Ich beschloss, hinzuzufügen (Version 3.x), nicht nur um Code zu schreiben, sondern auch weil ich mehrere Python-Programme verwende. Lass es uns installieren:
apk add python3Obwohl Python 2.x veraltet ist, können Sie es auch installieren:
apk add pythonInstallieren Sie einen Python-Paketmanager namens pip and :
python3 -m ensurepip --default-pipDie Installation und Konfiguration des Paketmanagers wird einige Zeit in Anspruch nehmen. Seien Sie also geduldig.
Anschließend können Sie ein Tool zum Übertragen von Dateien über das Netzwerk herunterladen :
apk add curlHandbücher lesen
Fish verwendet eine integrierte Autovervollständigung basierend auf Manpages. Wie andere Befehlszeilenbenutzer verwende ich das Handbuch man, und Alpine hat es nicht installiert. Also habe ich es mit einem Terminal-Pager installiert :
apk add man man-pages less less-docNeben dem Menschen nutze ich das Prächtige , das vereinfachte und von der Community betriebene Manpages bereitstellt.
Ich habe es mit pip installiert:
pip install tldr Team tldr stellt eine Verbindung zum Web her, um Seiten abzurufen, wenn eine Anfrage für eine neue Seite auftritt. Wenn Sie wissen müssen, wie man einen Befehl verwendet, können Sie so etwas schreiben wie tldr curl und erhalten Sie eine Beschreibung in einfachem Englisch und gute Beispiele für die Verwendung des Befehls.
Natürlich können alle diese Installationsarbeiten automatisiert werden oder ein Installationsskript, aber tatsächlich entspricht dies nicht ganz der Ideologie von Alpine, die Mindestinstallation klar an Ihre Bedürfnisse anzupassen. Außerdem hat es so lange gedauert, oder?
Weitere Informationen
Das iSH-Wiki hat eine Seite „" mit Berichten darüber, welche Pakete gerade ausgeführt werden. Es sieht übrigens so aus .
Eine andere Wiki-Seite erklärt, wie aus der iOS-Dateien-App. Dies ist eine der Möglichkeiten, Dateien zu verschieben und zu kopieren.
Sie können auch Git installieren (ja! apk add git ) und übertragen Sie Ihre Arbeit in ein Remote-Repository oder über SSH auf den Server. Und natürlich können Sie eine beliebige Anzahl großartiger Open-Source-Projekte von GitHub herunterladen und ausführen.
Weitere Informationen zu iSH finden Sie unter diesen Links:
Über die Rechte der Werbung
Vdsina bietet oder Windows. Wir verwenden ausschließlich , das beste interne Server-Kontrollpanel seiner Art und eines der besten Rechenzentren in Russland und der EU. Beeilen Sie sich mit der Bestellung!
Source: habr.com
