Starten der Linux-Befehlszeile unter iOS

Starten der Linux-Befehlszeile unter iOS

Wussten Sie, dass Sie eine Linux-Befehlszeile auf einem iOS-Gerät ausführen können? Sie fragen sich vielleicht: „Warum sollte ich Text-Apps auf dem iPhone verwenden?“ Berechtigte Frage. Aber wenn Sie Opensource.com lesen, kennen Sie wahrscheinlich die Antwort: Linux-Benutzer möchten es auf jedem Gerät verwenden 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

Das Arbeiten mit der Befehlszeile zum Programmieren über die Bildschirmtastatur eines Telefons oder Tablets ist recht umständlich. Ich empfehle den Anschluss einer externen Tastatur, entweder über Bluetooth oder die Verwendung eines Kameraverbindungsadapters zum Anschluss einer kabelgebundenen Tastatur (ich habe mich für Letzteres entschieden). Das Anschließen einer geteilten Kinesis Advantage-Tastatur an ein iPhone 6 führt zu einem seltsamen Gerät, das aussieht Unternehmens-Cyberdeck aus der Klassik Rollenspiel Schattenlauf.

Installieren der Shell unter iOS

Um ein voll funktionsfähiges Linux-System unter iOS auszuführen, gibt es zwei Möglichkeiten:

  • Secure Shell (SSH), verbunden mit einer Linux-Maschine
  • Ausführen eines virtuellen Systems unter Verwendung von Alpine Linux mit iSH, das Open Source ist, aber mit der proprietären TestFlight-Anwendung von Apple installiert werden muss

Alternativ gibt es zwei Open-Source-Terminalemulatoranwendungen, die die Möglichkeit bieten, in einer begrenzten Umgebung mit Open-Source-Tools zu arbeiten. Dies ist die einfachste Option – tatsächlich führen Sie auf diese Weise nicht Linux aus, sondern Linux-Tools. Bei der Arbeit mit diesen Anwendungen gibt es erhebliche Einschränkungen, Sie erhalten jedoch teilweise die 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 LibTerm. Es Open Source 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 höllisch, von den Entwicklern als „Testbenutzeroberfläche für eine Plattform mit Bildschirmeingabe“ beschrieben. a-Shell-Quellen veröffentlicht Open-Source-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 über das Herunterladen einer App hinaus ist die Einrichtung eines SSH-Clients. Seit langem können wir jede der vielen iOS-SSH-Client-Anwendungen verwenden, um eine Verbindung zu einem Server herzustellen, auf dem Linux oder BSD läuft. Der Vorteil der Verwendung von SSH besteht darin, dass jede Distribution mit jeder Software auf dem Server ausgeführt werden kann. Sie arbeiten remote und die Ergebnisse Ihrer Arbeit werden einfach auf den Terminalemulator auf Ihrem iOS-Gerät übertragen.

Blink-Shell ist eine beliebte kostenpflichtige SSH-Anwendung in Open-Source-. 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: Linux ausführen

Die Verwendung von SSH zum Herstellen einer Verbindung zu einem Server unter Linux ist eine gute Möglichkeit, auf die Befehlszeile zuzugreifen, erfordert jedoch einen externen Server und eine Netzwerkverbindung. Dies ist nicht das größte Hindernis, kann jedoch nicht vollständig ignoriert werden, sodass Sie möglicherweise mit Linux ohne Server arbeiten müssen.

Wenn dies bei Ihnen der Fall ist, müssen Sie noch einen Schritt weiter gehen. Testflug 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.

Ausführen von Alpine Linux mit iSH

ISH ist eine Open-Source-TestFlight-Anwendung, die eine virtuelle Maschine mit einer vorgefertigten Distribution ausführt Alpines Linux (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 über SSH. 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 Testflug aus dem App Store. Dann installieren Sie iSH, Einen Link zur Installation erhalten 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 betreibt einen x86-Emulator mit Alpine Linux. Alpine ist eine winzige Distribution mit einer Größe von weniger als 5 MB. Da ich zum ersten Mal mit Alpine gearbeitet habe, dachte ich, dass der Minimalismus störend sein würde, aber es gefiel mir wirklich gut.

Starten der Linux-Befehlszeile unter iOS
Alpine verwendet einen Paketmanager apkDas ist einfacher als sogar Apt oder Pacman.

So installieren Sie das Paket:

apk add package

So entfernen Sie ein Paket:

apk del package

So erfahren Sie weitere Befehle und Informationen:

apk --help

Paketmanager-Update:

apk update
apk upgrade

Installieren eines Texteditors

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

apk add vim

Auf Wunsch können Sie Nano oder Emacs installieren.

Shell-Wechsel

Ich weiß nicht, wie es dir geht, aber ich brauchte es Fischmuschel. Andere bevorzugen es Bash oder Zsh. Allerdings verwendet Alpine Asche! Asche ist eine Abzweigung der Dash-Shell, die selbst eine Abzweigung der ursprünglichen Asche ist, oder Almquist-Schale. 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 fish

Wenn Sie Bash mit seiner Autovervollständigung und Manpages benötigen, installieren Sie diese:

apk add bash bash-doc bash-completion

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

Ä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 fish

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

Meine erste Zeile war:

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

Um „fish“ zur Standard-Shell zu machen, ändern Sie diese Zeile wie folgt:

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

Speichern Sie dann die Datei und beenden Sie den Vorgang.

Ich bin mir sicher, dass es eine gute Möglichkeit gibt, den Shell-Pfad so zu ändern, dass er sofort verwendet werden kann. Aber ich kenne ihn nicht, daher empfehle ich, zum Anwendungsbrowser zurückzukehren, das Beenden der Shell zu erzwingen und zur Sicherheit das iPad oder iPhone auszuschalten und neu zu starten. Öffnen Sie iSH erneut und jetzt wird zusätzlich die Meldung „Willkommen bei Alpine!“ angezeigt. und Informationen zum Starten aus der APK. Sie sehen die Standard-Begrüßungsnachricht für die Anmeldung bei Fish: Willkommen bei fish, der freundlichen interaktiven Muschel. Hurra!

Starten der Linux-Befehlszeile unter iOS

Python und Pip einrichten

Ich beschloss, hinzuzufügen Python (Version 3.x), nicht nur um Code zu schreiben, sondern auch weil ich mehrere Python-Programme verwende. Lass es uns installieren:

apk add python3

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

apk add python

Installieren Sie einen Python-Paketmanager namens pip and Setuptools:

python3 -m ensurepip --default-pip

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

apk add curl

Handbü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 weniger:

apk add man man-pages less less-doc

Neben dem Menschen nutze ich das Prächtige Tldr-Seiten-Projekt, 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 Punktdateien 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 „was funktioniert" mit Berichten darüber, welche Pakete gerade ausgeführt werden. Es sieht übrigens so aus npm funktioniert momentan nicht.

Eine andere Wiki-Seite erklärt, wie Zugriff auf iSH-Dateien 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 virtuelle Server unter Linux oder Windows. Wir verwenden ausschließlich Markenausrüstung, das beste interne Server-Kontrollpanel seiner Art und eines der besten Rechenzentren in Russland und der EU. Beeilen Sie sich mit der Bestellung!

Starten der Linux-Befehlszeile unter iOS

Source: habr.com

Kommentar hinzufügen