Wir starten die Linux-Befehlszeile auf iOS

Wir starten die Linux-Befehlszeile auf iOS

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 einen Unternehmens-Cyberdeck aus einem klassischen Rollenspiel 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 LibTerm. Es ist Open Source 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 a-Shell, das von den Entwicklern als 'Testbenutzeroberfläche für Plattformen mit Bildschirm-Eingabe' beschrieben wird. Der Quellcode von a-Shell ist als Open Sourceverfü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.

Blink shell ist eine beliebte kostenpflichtige SSH-App in Open Source. 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. TestFlight — 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

iSH — ist eine Open-Source-Anwendung von TestFlight, die eine virtuelle Maschine mit einer vollständigen Distribution ausführt Alpine Linux (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 über SSH. 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 TestFlight aus dem App Store. Installieren Sie dann iSH, indem Sie den Installationslink 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.

Wir starten die Linux-Befehlszeile auf iOS
In Alpine wird ein Paketmanager verwendet, apk, der einfacher ist als selbst apt oder pacman.

Wie man ein Paket installiert:

apk add package

Wie man ein Paket entfernt:

apk del package

Wie man andere Befehle und Informationen abfragt:

apk --help

Aktualisierung des Paketmanagers:

apk update
apk upgrade

Installation des Texteditors

Der Standard-Texteditor in Alpine ist Vi, aber ich bevorzuge Vim, deshalb habe ich ihn installiert:

apk add vim

Bei Bedarf können Sie auch Nano oder Emacs installieren.

Shell wechseln

Ich weiß nicht, wie es Ihnen geht, aber ich benötigte eine fish shell. Andere Menschen bevorzugen Bash oder Zsh. In Alpine wird jedoch ash verwendet! Ash ist ein Fork der Dash-Shell, die selbst ein Fork der ursprünglichen ash ist oder Almquist shell. 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 fish

Wenn Sie Bash mit ihrer Autovervollständigung und man-Seiten benötigen, installieren Sie diese:

apk add bash bash-doc bash-completion

Die 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 diesem Tutorial.

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 fish

Das 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/passwd

Meine erste Zeile war wie folgt:

root:x:0:0:root:/root:/bin/ash

Um fish zur Standard-Shell zu machen, ändern wir diese Zeile in die folgende:

root:x:0:0:root:/root:/usr/bin/fish

Dann 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!

Wir starten die Linux-Befehlszeile auf iOS

Einrichtung von Python und pip

Ich habe mich entschieden, es hinzuzufügen Python (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 python3

Obwohl Python 2.x veraltet ist, kann man es auch installieren:

apk add python

Lassen Sie uns den Python-Paketmanager namens pip und setuptools:

python3 -m ensurepip --default-pip

Die 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 curl:

apk add curl

Lassen 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 less:

apk add man man-pages less less-doc

Zusätzlich zu man verwende ich das großartige Projekt tldr pages, 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 dotfiles 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 "was funktioniert" mit Berichten über die aktuellen funktionierenden Pakete. Übrigens scheint npm zur Zeit nicht zu funktionieren..

Auf einer anderen Wiki-Seite wird erklärt, wie man auf iSH-Dateien 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 virtuelle Server auf Linux oder Windows. Wir verwenden ausschließlich Markenhardware, 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!

Wir starten die Linux-Befehlszeile auf iOS

Quelle: habr.com

60GB SSD 8Gb DDR4