Linux-Befehlszeile auf iOS starten

Linux-Befehlszeile auf iOS starten

Wussten Sie, dass Sie die Linux-Befehlszeile auf einem iOS-Gerät starten können? Vielleicht fragen Sie sich: „Warum sollte ich Textanwendungen auf meinem iPhone nutzen?“ Eine faire Frage. Aber wenn Sie Opensource.com lesen, wissen Sie wahrscheinlich die Antwort: Linux-Nutzer wollen auf allen Geräten arbeiten können und ihre persönlichen Einstellungen verwenden.

Aber vor allem sehnen sie sich nach Lösungen für komplexe Probleme.

Ich habe ein sieben Jahre altes iPad Mini 2, das immer noch gut geeignet ist, um E-Books und andere Aufgaben zu lesen. Ich möchte es jedoch auch nutzen, um auf die Befehlszeile meiner Anwendungen mit meinem Setup von 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.

Verbindung zur Tastatur

Die Arbeit mit der Kommandozeile zur Programmierung über die Bildschirmtastatur eines Handys oder Tablets ist ziemlich unpraktisch. Ich empfehle, eine externe Tastatur anzuschließen, entweder via Bluetooth oder über einen Kameraanschlussadapter, um eine kabelgebundene Tastatur anzuschließen (ich habe mich für Letzteres entschieden). Wenn ich die geteilte Kinesis Advantage-Tastatur mit dem iPhone 6 verbinde, entsteht ein seltsames Gerät, das an ein Unternehmens-Cyberdeck aus klassischem Rollenspiel Shadowrun.

Die Shell auf iOS installieren

Um ein voll funktionsfähiges Linux-System auf iOS zu starten, gibt es zwei Möglichkeiten:

  • Secure Shell (SSH), die mit einem Linux-Computer verbunden ist
  • Einen virtuellen Systemstart mit Alpine Linux über iSH, das Open Source ist, aber über die proprietäre TestFlight-App von Apple installiert werden muss.

Als Alternative gibt es zwei Open-Source-Terminalemulator-Anwendungen, die es ermöglichen, mit Open-Source-Tools in einer eingeschränkten Umgebung zu arbeiten. Dies ist die minimalste Version – tatsächlich führen Sie nicht Linux aus, sondern die Werkzeuge von Linux. Bei der Verwendung dieser Anwendungen gibt es strenge Einschränkungen in der Funktionalität, aber Sie erhalten eine teilweise Funktionalität der Kommandozeile.

Bevor ich zu komplexeren Lösungen übergehe, möchte ich die einfachste Methode betrachten.

Option 1: Shell in einer Sandbox

Eine der einfachsten Möglichkeiten ist die Installation einer Anwendung für iOS. LibTerm. Dies ist eine Open-Source Kommandozeile in einer Sandbox, die über 80 Befehle unterstützt und kostenlos ist. Sie wird mit Python 2.7, Python 3.7, Lua, C, Clang und vielen weiteren Tools geliefert.

Eine ähnliche Funktionalität bietet a-Shell, das von den Entwicklern als „Testbenutzeroberfläche für Plattformen mit Bildschirmcodeingabe“ beschrieben wird. Der Source-Code von a-Shell ist Open Source, 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 mit pip.

Option 2: SSH

Ein weiterer Schritt über das Herunterladen einer Anwendung hinaus ist die Konfiguration eines SSH-Clients. Seit langem können wir eine Vielzahl von SSH-Client-Anwendungen für iOS nutzen, um uns mit einem Server zu verbinden, auf dem Linux oder BSD läuft. Der Vorteil der Verwendung von SSH besteht darin, dass auf dem Server jede beliebige Distribution mit beliebiger Software betrieben werden kann. Sie arbeiten remote und die Ergebnisse werden einfach an den Terminal-Emulator auf dem iOS-Gerät übermittelt.

Blink Shell — ist eine beliebte kostenpflichtige SSH-Anwendung in Open Source. Wenn man den kleinen Bildschirm des Geräts außer Acht lässt, ähnelt die Verwendung dieser Software der Verbindung zu einem Server über jede andere Eingabeaufforderung. Das Blink-Terminal sieht großartig aus, bietet zahlreiche vorgefertigte Themen und die Möglichkeit, eigene zu erstellen, einschließlich der Anpassung und Hinzufügung neuer Schriftarten.

Option 3: Linux starten

Die Verwendung von SSH zur Verbindung mit einem Linux-Server ist eine ausgezeichnete Möglichkeit, auf die Kommandozeile zuzugreifen. Allerdings benötigt man dafür einen externen Server und eine Netzwerkverbindung. Das ist zwar eine kleine Hürde, aber nicht zu ignorieren. Daher könnte es erforderlich sein, mit Linux ohne Server zu arbeiten.

Wenn das auf Sie zutrifft, müssen Sie einen weiteren Schritt unternehmen. TestFlight ist ein proprietärer Dienst zur Installation von entwickelten Anwendungen, bevor sie im Apple App Store verfügbar sind. Die TestFlight-App kann über den App Store installiert werden, und anschließend können Sie Testanwendungen nutzen. Anwendungen in TestFlight erlauben es, dass eine begrenzte Anzahl an Beta-Testern (in der Regel bis zu 10.000) die App für eine bestimmte Zeit testen. Um eine Testanwendung herunterzuladen, müssen Sie mit Ihrem Gerät dem Link folgen, der normalerweise auf der Website des Entwicklers zu finden ist.

Alpine Linux mit iSH starten

iSH ist eine Open-Source-TestFlight-App, die eine virtuelle Maschine mit einer fertigen Distribution startet Alpine Linux (mit ein wenig Mühe kann man auch andere Distributionen starten).

Eine wichtige Eigenschaft: Die App ist experimentell.. Da iSH momentan noch eine Testanwendung ist, erwarten Sie keinen konstanten und zuverlässigen Betrieb. TestFlight-Anwendungen haben zeitliche Einschränkungen. Meine aktuelle Version 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 verliere ich alle meine Dateien, wenn ich sie nicht mit Files auf iOS exportiere oder sie auf einen Git-Host kopiere über SSH. Mit anderen Worten: Erwarten Sie nicht, dass dies weiterhin funktioniert! Legen Sie nichts Wichtiges in das System! Erstellen Sie Sicherungen an einem anderen Ort!

Installation von iSH

Beginnen Sie mit der Installation TestFlight aus dem App Store. Installieren Sie dann iSH, indem Sie den Installationslink von der Website der App erhalten. Es gibt eine weitere Installationsmöglichkeit über AltStore, aber ich habe es nicht ausprobiert. Oder, wenn Sie ein kostenpflichtiges Entwicklerkonto haben, können Sie das iSH-Repository von GitHub herunterladen und es selbst installieren.

Mit dem TestFlight-Link wird die iSH-App auf Ihr Gerät installiert. Wie bei jeder anderen App wird das Symbol auf dem Bildschirm angezeigt.

Paketverwaltung

iSH emuliert x86 mit Alpine Linux. Alpine ist eine winzige Distribution, die weniger als 5 MB groß ist. Ich habe zum ersten Mal mit Alpine gearbeitet und dachte, dass der Minimalismus lästig sein würde, aber ich habe ihn tatsächlich sehr gemocht.

Linux-Befehlszeile auf iOS starten
In Alpine wird der Paketmanager apkverwendet, der einfacher ist als selbst apt oder pacman.

So installieren Sie ein Paket:

apk add package

So entfernen Sie ein Paket:

apk del package

So erfahren Sie mehr über andere Befehle und Informationen:

apk --help

Aktualisierung des Paketmanagers:

apk update
apk upgrade

Installation eines Texteditors

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

apk add vim

Sie können auch Nano oder Emacs installieren, wenn Sie möchten.

Ändern der Shell

Ich weiß nicht, wie es Ihnen geht, aber ich brauchte die fish shell. Andere Leute 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 oder Almquist shellist. Ihr Priorität ist Geschwindigkeit. Ich habe beschlossen, Geschwindigkeit gegen die integrierte Autovervollständigung, Farbschemata, Vim-Tastenkombinationen und die Syntaxhervorhebung einzutauschen, die ich von der fish shell kenne und liebe.

Installation von fish:

apk add fish

Wenn Sie Bash mit ihrer Autovervollständigung und den 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 angeboten werden, in mehrere kleinere Pakete aufgeteilt sind. Dies ermöglicht es Ihnen außerdem, das System genau nach Ihren Wünschen anzupassen und zu verkleinern.

Weitere Informationen zur Installation von Bash finden Sie in diesem Tutorial.

Ändern der Standard-Shell

Nach der Installation von fish können Sie vorübergehend zu dieser wechseln, indem Sie fish eingeben und zur Shell wechseln. Ich möchte jedoch, dass fish die Standard-Shell wird, und der Befehl chsh, den ich in anderen Distributionen verwendet habe, hat nicht funktioniert.

Zuerst erfahren wir, wo fish installiert wurde:

which fish

So sieht es bei mir aus:

/usr/bin/fish

Jetzt ändern wir die Login-Shell auf fish. Sie können jeden Ihnen angenehm erscheinenden Editor verwenden. Wenn Sie neu sind, installieren Sie Nano (mit dem Befehl apk add nano), um Konfigurationsdateien zu bearbeiten und diese über CTRL+X zu speichern, zu bestätigen und zu beenden.

Aber ich habe Vim verwendet:

vim /etc/passwd

Meine erste Zeile sah so aus:

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

Speichern Sie die Datei und beenden Sie sie.

Ich bin mir sicher, dass es einen geeigneten Weg gibt, den Pfad zur Shell zu ändern, damit sie direkt genutzt werden kann. Aber ich kenne ihn nicht, also empfehle ich, zurück zum Anwendungsbrowser zu gehen, die Shell zwangsweise zu beenden und zur Sicherheit das iPad oder iPhone auszuschalten und neu zu starten. Öffnen Sie iSH erneut und jetzt, neben der Meldung „Willkommen bei Alpine!“ und den Informationen zum Start mit apk, sehen Sie die Standard-Anmeldemeldung von fish: Willkommen bei fish, der benutzerfreundlichen interaktiven Shell. Hurra!

Linux-Befehlszeile auf iOS starten

Einrichtung von Python und pip

Ich habe mich entschieden, Python (Version 3.x), nicht nur um Code zu schreiben, sondern auch, weil ich mehrere Programme in Python verwende. Lassen Sie uns es installieren:

apk add python3

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

apk add python

Lassen Sie uns den Python-Paketmanager pip und setuptools:

python3 -m ensurepip --default-pip

Die Installation und Konfiguration des Paketmanagers wird einige Zeit in Anspruch nehmen, also warten Sie einfach.

Danach können Sie ein Tool zum Übertragen von Dateien über das Netzwerk herunterladen. curl:

apk add curl

Lesen Sie die Handbücher

Fish verwendet eine integrierte Autovervollständigung basierend auf man-Seiten. Wie andere Benutzer der Befehlszeile nutze ich das Handbuch: man, aber in Alpine ist es nicht installiert. Deshalb habe ich es mit dem Terminal-Pager installiert. less:

apk add man man-pages less less-doc

Neben 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

Der Befehl tldr stellt eine Verbindung zum Internet her, um Seiten zu bekommen, wenn er auf eine Anfrage nach einer neuen Seite trifft. Wenn Sie herausfinden möchten, wie man den Befehl verwendet, können Sie etwas eingeben wie tldr curl und erhalten eine Beschreibung in einfachem Englisch sowie gute Beispiele zur Verwendung des Befehls.

Selbstverständlich kann die gesamte Installationsarbeit mit dotfiles oder einem Installationsskript automatisiert werden, aber das entspricht nicht wirklich der Philosophie von Alpine – eine minimale Installation klar nach den eigenen Bedürfnissen zu konfigurieren. Außerdem hat das doch so viel Zeit in Anspruch genommen, oder?

Zusätzliche Informationen

In der iSH-Wiki gibt es eine Seite "was funktioniert" mit Berichten darüber, welche Pakete derzeit funktionieren. Übrigens scheint, dass npm im Moment nicht funktioniert.

Auf einer weiteren Wikiseite wird erklärt, wie man auf Dateien in iSH zugreift aus der iOS Files-App. Das ist eine Möglichkeit, Dateien zu verschieben und zu kopieren.

Man kann auch Git installieren (ja! apk add git ) und seine Arbeiten in ein Remote-Repository pushen oder über SSH auf den Server übertragen. Und natürlich kann man eine beliebige Anzahl großartiger Open-Source-Projekte von GitHub herunterladen und ausführen.

Weitere Informationen zu iSH finden Sie unter diesen Links:

Im Auftrag der Werbung

VDS bietet virtuelle Server unter Linux oder Windows. Wir verwenden ausschließlich Markenhardware, das beste seiner Art, ein proprietäres Server-Management-Panel und einige der besten Rechenzentren in Russland und der EU. Bestellen Sie schnell!

Linux-Befehlszeile auf iOS starten

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster