Führen Sie die Linux-Befehlszeile auf Ihrem iPad aus

Wussten Sie, dass Sie eine Linux-Befehlszeile auf Ihrem iOS-Gerät ausführen können? Sie fragen sich vielleicht: „Warum sollte ich textbasierte Anwendungen auf meinem winzigen iPhone verwenden?“ OK, fair genug. Das ist eine ziemlich vernünftige Frage. Aber wenn du liest Opensource.com , Sie kennen wahrscheinlich die Antwort: Linux-Benutzer möchten in der Lage sein, jedes Gerät zu verwenden, und sie möchten auch ihre eigenen Anpassungen verwenden.

Und vor allem wollen sie eine Herausforderung.

Ich habe ein sieben Jahre altes iPad 2 Mini, das immer noch gut zum Lesen von E-Books und anderen Aufgaben geeignet ist. Aber ich möchte es auch verwenden, um auf die Befehlszeile für Anwendungen und meine Suite von Programmen und Skripten zuzugreifen, auf die ich nicht verzichten kann. Ich möchte die Umgebung, an die ich gewöhnt bin, sowie meine Standardentwicklungsumgebung. So habe ich es gemacht.

Verbindung zu einer Tastatur herstellen

Die Befehlszeile zum Programmieren auf der Bildschirmtastatur eines Telefons oder Tablets zu verwenden, macht nicht viel Spaß. Ich empfehle, eine externe Tastatur anzuschließen, entweder über Bluetooth oder mithilfe eines Camera Connection Kit-Adapters, um eine kabelgebundene Tastatur anzuschließen (meine Präferenz). Das Anschließen meiner Kinesis Advantage Split-Tastatur an mein iPhone 6 sorgt für eine seltsame Optik, wie das Cyberdeck eines Unternehmens aus dem klassischen Rollenspiel Shadowrun.

Holen Sie sich eine Shell unter iOS

Sie haben zwei Möglichkeiten, ein komplettes Linux-System unter iOS auszuführen:

  • Secure Shell (SSH) in einen Linux-Computer
  • Führen Sie ein virtualisiertes System mit Alpine Linux mit iSH aus, das Open Source ist, aber mit Apples proprietärer TestFlight-App installiert werden muss

Alternativ gibt es zwei Open-Source-Terminalemulator-Apps, die Open-Source-Tools in einer eingeschränkten Umgebung bereitstellen. Dies ist die eingeschränkteste Option — Sie können Linux nicht wirklich ausführen, aber Sie führen Linux-Tools aus. Es gibt starke Einschränkungen, was Sie mit diesen Apps auf dem Gerät tun können, aber sie erhalten einige Befehlszeilenfunktionen.

Ich werde mir den einfachsten Ansatz ansehen, bevor ich anspruchsvollere Lösungen untersuche.

Option 1: Eine Sandbox-Shell

Eine der einfachsten Möglichkeiten, um loszulegen, ist mit der iOS-App LibTerm. Dies ist eine Sandbox-Open-Source-Befehlszeilen-Shell mit mehr als 80 Befehlen, die in einer $ 0-App gebündelt sind. Es wird mit Python 2.7, Python 3.7, Lua, C, Clang und mehr ausgeliefert.

In ähnlicher Weise ist a-Shell, beschrieben als „textbasierte Benutzeroberfläche für eine bildschirmbasierte Plattform.“ a-Shell ist Open Source, in aktiver Entwicklung, gewährt Zugriff auf das Dateisystem und wird mit Lua, Python, Tex, Vim, JavaScript, C und C ++ sowie Clang und Clang ++ ausgeliefert. Sie können sogar Python-Pakete mit pip installieren.

Option 2: SSH anywhere

Ein Schritt nach dem Herunterladen einer App ist die Konfiguration eines SSH-Clients. Seit langem ist es möglich, eine der vielen SSH-Client-Apps unter iOS zu verwenden, um eine Verbindung zu einem Server herzustellen, auf dem eine Linux-Distribution oder BSD ausgeführt wird. Der Vorteil der Verwendung von SSH besteht darin, dass auf Ihrem Server jede beliebige Distribution mit beliebiger Software ausgeführt werden kann. Sie arbeiten remote und Ihre Ausgabe wird nur an den Terminalemulator Ihres iOS-Geräts weitergeleitet.

Blink Shell ist eine beliebte kostenpflichtige Open-Source-SSH-App. Außerhalb des kleinen Bildschirms ähnelt die Verwendung dieser Software der Verbindung zu einem Server über eine andere Eingabeaufforderung. Das Terminal von Blink sieht wunderschön aus, mit einer Reihe von enthaltenen Themen und der Möglichkeit, eigene Themen zu erstellen, einschließlich Anpassen und Hinzufügen neuer Schriftarten.

Option 3: Run Linux

Die Verwendung von SSH zum Herstellen einer Verbindung zu einem Server unter Linux ist eine großartige Möglichkeit, auf eine Eingabeaufforderung zuzugreifen, erfordert jedoch Zugriff auf einen externen Server und eine Verbindung. Dies ist nicht die schlimmste Eintrittsbarriere, aber es ist nicht völlig vernachlässigbar, und Sie möchten vielleicht Linux ohne diese Serveranforderung verwenden.

Wenn das dein Fall ist, musst du etwas mehr auf der Schneide ausbrechen. TestFlight ist ein proprietärer Dienst zum Bereitstellen von Apps in der Entwicklung, bevor sie an Apples App Store gesendet werden. Sie können die TestFlight-App aus dem Store herunterladen und sich dann für eine Reihe von Testanwendungen anmelden. Apps in TestFlight erlauben eine begrenzte Anzahl externer Beta-Tester (in der Regel bis zu 10.000) für eine begrenzte Zeit. Um eine Test-App herunterzuladen, müssen Sie direkt von Ihrem Gerät aus auf einen Link zugreifen, der sich normalerweise auf der Website des Entwicklers der Test-App befindet.

Run Alpine Linux with iSH

iSH ist eine Open-Source-TestFlight-App, die eine virtuelle Maschine mit der Alpine Linux-Distribution sofort ausführt (Sie können jedoch auch andere Distributionen mit etwas mehr Bastelei ausführen).

Eine wichtige Einschränkung: Dies ist experimentell. Da iSH derzeit eine Test-App ist, erwarten Sie keinen dauerhaften oder robusten Service. Testflug-Apps sind zeitlich begrenzt. Mein aktueller Build dauert 60 Tage. Das bedeutet, dass ich in 60 Tagen ausgesperrt werde und wieder an der nächsten Testphase der iSH teilnehmen muss. Außerdem verliere ich meine Dateien, es sei denn, ich exportiere sie mit Dateien unter iOS oder sichere sie auf einem Git-Host oder mit SSH. Um es klar zu sagen: Verlassen Sie sich nicht darauf, um weiterzuarbeiten! Legen Sie hier nichts an, was wesentlich ist! Sichern Sie Ihre Arbeit an anderer Stelle!

ISH installieren

Installieren Sie zunächst TestFlight über den App Store. Installieren Sie dann iSH, indem Sie den Installationslink über die Website abrufen. Es gibt eine andere Installationsmethode, die den AltStore verwendet, aber ich habe es nicht versucht. Wenn Sie über ein kostenpflichtiges Entwicklerkonto verfügen, können Sie das Repo von iSH von GitHub herunterladen und selbst bereitstellen.

Über den Link installiert TestFlight eine iSH-App auf Ihrem Gerät. Wie jede andere App wird sie auf Ihrem Bildschirm mit einem Symbol angezeigt.

Pakete verwalten

iSH führt einen x86-Emulator mit Alpine Linux aus. Alpine ist eine winzige Distribution unter 5 MB. Dies war mein erstes Mal mit Alpine, und ich dachte, ich würde mit solch einer minimalen Distribution frustriert sein, aber ich habe es wirklich genossen.

ish-installieren.png

Alpine Linux auf iOS

(Lee Tusman, CC BY-SA 4.0)

Alpine verwendet den apk-Paketmanager, der einfacher ist als apt oder pacman.

So installieren Sie ein Paket:

apk add package

So entfernen Sie ein Paket:

apk del package

Weitere Befehle und Informationen finden Sie unter:

apk --help

Aktualisieren Sie den Paketmanager:

apk updateapk upgrade

Holen Sie sich einen Texteditor

Alpines Standard-Texteditor ist Vi, aber ich bevorzuge Vim, also habe ich ihn installiert:

apk add vim

Sie könnten Nano oder Emacs , wenn Sie es vorziehen.

Ändern Sie die Schale

Ich weiß nicht, wie es Ihnen geht, aber ich brauche die Fischschale. Andere Leute bevorzugen Bash oder Zsh. Aber Alpine verwendet Asche! Ash ist eine Gabel von Dash Shell, selbst eine Gabel der ursprünglichen Ash oder Almquist Shell. Es ist auf Geschwindigkeit ausgelegt. Ich beschloss, die Geschwindigkeit zugunsten der integrierten automatischen Vervollständigung, der Farbe, der Vim-Tastensteuerung und der Syntaxhervorhebung zu tauschen, die ich in Fish Shell kenne und liebe.

Install fish:

apk add fish

Wenn Sie stattdessen Bash und seine Vervollständigungen und Manpages wollen, müssen Sie sie und einige zusätzliche Dinge installieren:

apk add bash bash-doc bash-completion

Alpines minimalistische Ideologie bedeutet im Allgemeinen, dass einige Programme, die in anderen Distributionen ein einzelnes Paket wären, in mehrere kleinere Pakete aufgeteilt werden. Dies bedeutet auch, dass Sie Ihr System genau nach Ihren Wünschen anpassen und verkleinern können.

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

Ändern Sie die Standard-Shell

Nach der Installation von fish können Sie vorübergehend zu fish wechseln und es ausprobieren, indem Sie fish eingeben und in die Shell fallen lassen. Aber ich möchte fish zu meiner Standard-Shell machen, und der Befehl chsh, den ich von anderen Distributionen gewohnt bin, funktioniert nicht.

Finden Sie zuerst heraus, wo fish installiert ist:

which fish

Meine Ausgabe:

/usr/bin/fish

Bearbeiten Sie als nächstes die Anmeldeshell, um fish zu verwenden. Sie können jeden Editor verwenden, mit dem Sie vertraut sind. Wenn Sie ein Anfänger sind, installieren Sie Nano (mit apk add nano ), damit Sie Konfigurationsdateien bearbeiten und mit STRG+ X speichern, bestätigen und beenden können.

Aber ich habe Vim verwendet:

vim /etc/passwd

Meine erste Zeile war:

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

Um fish zum Standard zu machen, ändern Sie diese Zeile in:

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

Dann speichern und beenden.

Ich bin mir sicher, dass es eine gute Möglichkeit gibt, die Shell neu zu beschaffen, damit Sie sie sofort verwenden können. Aber ich bin mir nicht sicher, also empfehle ich, zum App-Browser zurückzukehren, die Shell zu beenden und aus gutem Grund Ihr iPad oder iPhone herunterzufahren und neu zu starten. Wiedereröffnung iSH, und jetzt, zusätzlich zu den „Welcome to Alpine!“ nachricht und Informationen über die ersten Schritte mit apk, Sie werden die Standard-Fisch Login Willkommensnachricht sehen: Willkommen bei Fisch, die freundliche interaktive Shell. Hurra!

ish.png

Fisch Shell auf Alpine Linux

(Lee Tusman, CC BY-SA 4.0)

Python und pip einrichten

Ich habe beschlossen, Python (Version 3.x), nicht nur, um Code schreiben zu können, sondern weil ich mich auf mehrere Python-Programme verlasse. Installieren Sie es:

apk add python3

Obwohl Python 2.x ist veraltet, Sie können es trotzdem installieren:

apk add python

Installieren Sie den Python-Paketmanager, pip und setuptools:

python3 -m ensurepip --default-pip

Die Installation und Einrichtung des Paketmanagers dauert einige Zeit.

Dann können Sie curl, das Netzwerkübertragungstool, herunterladen:

apk add curl

Lesen Sie das Handbuch

Fish verwendet eine integrierte automatische Vervollständigung basierend auf Manpages. Wie andere Befehlszeilenbenutzer verlasse ich mich auf das Handbuch man , und Alpine wird nicht installiert. Also habe ich es zusammen mit dem less-Pager installiert:

apk add man man-pages less less-doc

Zusätzlich zu man verwende ich das fabulous tldr pages-Projekt, das vereinfachte, Community-gesteuerte Man-Seiten bereitstellt.

Ich habe es mit pip installiert:

pip install tldr

Der Befehl tldr verbindet sich mit dem Web, um Seiten abzurufen, wenn eine Anfrage nach einer neuen gestellt wird. Wenn Sie lernen müssen, wie man einen Befehl verwendet, können Sie einfach etwas wie tldr curl eingeben, um eine einfache englische Erklärung und gute Beispiele für die Verwendung des Befehls zu erhalten.Sie könnten natürlich all diese Installationsarbeiten mit Dotfiles oder einem Installationsskript automatisieren, aber das würde nicht wirklich in die alpine Art fallen, eine minimale Installation genau an Ihre Spezifikationen anzupassen. Außerdem hat es nicht so lange gedauert, oder?

Mehr erfahren

Das iSH Wiki enthält eine „what works“-Seite mit Berichten darüber, welche Pakete derzeit funktionieren. Beachten Sie, dass npm zu diesem Zeitpunkt nicht zu funktionieren scheint.

Auf einer anderen Wiki-Seite wird erläutert, wie Sie über die iOS-Datei-App auf iSH-Dateien zugreifen können. Dies ist eine Möglichkeit, Dateien zu verschieben und zu übertragen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.