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
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
Ungefähr die gleiche Funktionalität
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.
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.
Ausführen von Alpine Linux mit iSH
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
iSH-Installation
Beginnen Sie mit der Installation
Ü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.
Alpine verwendet einen Paketmanager
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
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
Ä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!
Python und Pip einrichten
Ich beschloss, hinzuzufügen
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
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
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
apk add man man-pages less less-doc
Neben dem Menschen nutze ich das Prächtige
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
Weitere Informationen
Das iSH-Wiki hat eine Seite „
Eine andere Wiki-Seite erklärt, wie
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
Source: habr.com