Lancéiere vun der Linux Kommandozeil op iOS

Lancéiere vun der Linux Kommandozeil op iOS

Wousst Dir datt Dir d'Linux Kommandozeil op engem iOS Apparat ausféiere kënnt? Dir kënnt froen, "Firwat soll ech SMSen Apps op mengem iPhone benotzen?" Fair Fro. Awer wann Dir Opensource.com liest, wësst Dir wahrscheinlech d'Äntwert: Linux Benotzer wëllen et op all Apparat benotze kënnen a wëllen et selwer personaliséieren.

Awer virun allem si si frou fir komplex Probleemer ze léisen.

Ech hunn e siwe Joer alen iPad 2 Mini deen nach ëmmer ganz gutt ass fir E-Bicher an aner Aufgaben ze liesen. Wéi och ëmmer, ech wëll et och benotze fir Zougang zu der Kommandozeil vun Uwendungen mat mengem Set vu Programmer a Skripte ze kréien, ouni déi ech net schaffen kann. Ech brauch en Ëmfeld dat ech gewinnt sinn, souwéi mäi Standard Entwécklungsëmfeld. An hei ass wéi ech dat fäerdeg bruecht hunn.

Uschloss un eng Tastatur

Schafft mat der Kommandozeil fir ze programméieren duerch d'On-Écran Tastatur vun engem Telefon oder Tablet ass zimmlech onbequem. Ech recommandéieren eng extern Tastatur ze verbannen, entweder iwwer Bluetooth, oder e Kameraverbindungsadapter ze benotzen fir eng kabelt Keyboard ze verbannen (ech hunn déi lescht gewielt). Wann Dir d'Kinesis Advantage Split-Tastatur mat engem iPhone 6 verbënnt, kritt Dir e komeschen Apparat dat ähnelt Corporate Cyberdeck aus dem Klassiker roll spillen Shadowrun.

Installatioun vun der Shell op iOS

Fir e komplette Linux System op iOS ze lafen, ginn et zwou Méiglechkeeten:

  • Secure Shell (SSH) verbonne mat engem Linux Computer
  • E virtuelle System mat Alpine Linux mat iSH auszeféieren, deen Open Source ass awer muss mat der proprietärer TestFlight Applikatioun vun Apple installéiert ginn

Als Alternativ ginn et zwou Open Source Terminal Emulator Uwendungen déi d'Fäegkeet ubidden fir mat Open Source Tools an engem limitéierten Ëmfeld ze schaffen. Dëst ass déi meescht ofgeschnidden Optioun - tatsächlech ass dëst wéi Dir Linux Tools leeft, net Linux. Et gi schwéier Featurebeschränkungen wann Dir mat dësen Uwendungen schafft, awer Dir kritt deelweis Kommandozeilfunktionalitéit.

Ier Dir op komplex Léisungen weider geet, wäert ech déi einfachst Method kucken.

Optioun 1: Sandbox Shell

Ee vun de einfachste Weeër ass d'iOS App z'installéieren LibTerm. dëst oppe Quell sandboxed Kommando Shell mat Ënnerstëtzung fir iwwer 80 Kommandoen fir null Dollar. Et kënnt mat Python 2.7, Python 3.7, Lua, C, Clang a vill méi gebündelt.

Huet ongeféier déiselwecht Funktionalitéit a-Schuel, beschriwwen vun den Entwéckler als "en Test User Interface fir d'Bildschirm Input Plattform." a-Shell Quelle ginn gepost Open Source, et ass an der aktiver Entwécklung, bitt Dateiesystem Zougang, a kënnt mat Lua, Python, Tex, Vim, JavaScript, C an C++, souwéi Clang a Clang++. Et erlaabt Iech souguer Python Packagen z'installéieren.

Optioun 2: SSH

En anere Schrëtt erop fir eng App erofzelueden ass en SSH Client opzestellen. Zënter enger laanger Zäit kënne mir eng vun de ville SSH Client Apps fir iOS benotze fir mat engem Server mat Linux oder BSD ze verbannen. De Virdeel fir SSH ze benotzen ass datt de Server all Verdeelung mat all Software lafen kann. Dir schafft op afstand an d'Resultater vun Ärer Aarbecht ginn einfach op den Terminalemulator op Ärem iOS Apparat transferéiert.

Blink Shell ass eng populär bezuelte SSH Applikatioun an Open Source. Wann Dir de klengen Ecran vum Apparat ignoréiert, da benotzt dës Software ähnlech wéi d'Verbindung mam Server iwwer all aner Kommandozeil. Blink Terminal gesäit super aus, huet vill fäerdeg Themen an d'Fäegkeet fir Äert eegent ze kreéieren, och d'Fäegkeet fir nei Schrëften ze personaliséieren an ze addéieren.

Optioun 3: Lancéiere Linux

SSH ze benotzen fir mat engem Linux Server ze verbannen ass e super Wee fir Zougang zu der Kommandozeil ze kréien, awer et erfuerdert en externen Server an eng Netzwierkverbindung. Dëst ass net déi gréissten Hürd, awer et kann net komplett ignoréiert ginn, also musst Dir Linux ouni Server lafen.

Wann dat Äre Fall ass, da musst Dir et e Schrëtt weider huelen. Testfluch ass e propriétaire Service fir entwéckelt Uwendungen z'installéieren och ier se am Apple App Store publizéiert ginn. Dir kënnt d'TestFlight App aus dem App Store installéieren an dann Test Apps benotzen. Apps an TestFlight erlaben eng limitéiert Zuel vu Beta-Tester (normalerweis bis zu 10) fir eng limitéiert Zäit mat hinnen ze schaffen. Fir eng Testapplikatioun erofzelueden, musst Dir vun Ärem Apparat op e Link goen deen normalerweis op der Websäit vum Testapplikatioun Entwéckler läit.

Lafen Alpine Linux mat iSH

ISCH ass eng Open-Source TestFlight Applikatioun déi eng virtuell Maschinn mat enger fäerdeger Verdeelung lancéiert Alpine Linux (mat e bëssen Efforten , Dir kënnt aner distributions lafen).

Wichteg Fonktioun: experimentell Applikatioun. Zënter iSH ass de Moment eng Testapplikatioun, erwaart Iech keng konstant an zouverlässeg Operatioun. TestFlight Uwendungen sinn Zäit limitéiert. Meng aktuell Build wäert nëmme 60 Deeg daueren. Dëst bedeit datt ech no 60 Deeg éliminéiert ginn an ech muss erëm an déi nächst Ronn vun iSH Testen matmaachen. Ausserdeem verléieren ech all meng Dateien ausser ech exportéieren se mat Dateien op iOS oder kopéieren se op e Git Host oder iwwer SSH. An anere Wierder: Erwaart net datt dëst weider funktionnéiert! Setzt näischt wichteg fir Iech an de System! Zréck op eng separat Plaz!

Installatioun vun iSH

Start mat Installatioun Testfluch aus dem App Store. Dann installéieren iSH, krut den Installatiounslink vun der Applikatioun Websäit. Et gëtt eng aner Installatiounsmethod benotzt AltStore, awer ech hunn et net probéiert. Oder, wann Dir e bezuelte Entwécklerkonto hutt, kënnt Dir den iSH Repository vu GitHub eroflueden an et selwer installéieren.

Mat Hëllef vum Link wäert TestFlight d'iSH Applikatioun op Ärem Apparat installéieren. Wéi mat all aner Applikatioun, erschéngt eng Ikon um Écran.

Package Management

iSH leeft en x86 Emulator mat Alpine Linux. Alpine ass eng kleng Distro, déi manner wéi 5MB an der Gréisst moosst. Dëst war meng éischte Kéier mat Alpine ze schaffen, also ech hu geduecht datt de Minimalismus lästeg wier, awer ech hunn et eigentlech wierklech gär.

Lancéiere vun der Linux Kommandozeil op iOS
Alpine benotzt e Package Manager apk, wat méi einfach ass wéi souguer apt oder pacman.

Wéi installéiert de Package:

apk add package

Wéi läschen ech e Package:

apk del package

Wéi fannt Dir aner Kommandoen an Informatioun:

apk --help

Package Manager Update:

apk update
apk upgrade

Installéiere vun engem Texteditor

Dem Alpine säin Default Text Editor ass Vi, awer ech léiwer Vim, also hunn ech et installéiert:

apk add vim

Wann Dir wëllt, kënnt Dir Nano oder Emacs installéieren.

Shell änneren

Ech weess net iwwer Iech, mee ech brauch Fësch Schell. Aner Leit léiwer Bash oder Zsch. Wéi och ëmmer, Alpine benotzt Äschen! Ash ass eng Gabel vun der Dash Shell, déi selwer eng Gabel vun der ursprénglecher Äsche ass, oder Almquist Schuel. Hir Prioritéit ass Geschwindegkeet. Ech hu beschloss d'Geschwindegkeet fir déi agebauter Autocompletion, Faarwen, Vim Schlësselkontrollen a Syntax Highlight ze handelen, déi ech gär hunn a kennen aus der Fëschschuel.

Fësch Installatioun:

apk add fish

Wann Dir Bash mat senger Autocompletion a Mann Säiten braucht, installéiere se dann:

apk add bash bash-doc bash-completion

Dem Alpine seng minimalistesch Ideologie bedeit normalerweis datt verschidde Programmer, déi an anere Verdeelunge verpackt sinn, an e puer méi kleng Packagen opgedeelt ginn. Et heescht och datt Dir d'Gréisst vun Ärem System personaliséiere kënnt a reduzéieren genau wéi Dir wëllt.

Fir méi Informatiounen iwwer d'Installatioun vu Bash, kuckt dësem Tutorial.

Änneren vun der Default Shell

Nodeems Dir Fësch installéiert hutt, kënnt Dir temporär op et wiesselen andeems Dir gitt fish a geet an d'Schuel. Awer ech wëll Fësch d'Standard Shell an de Kommando maachen chsh, déi ech op aner Verdeelungen benotzt hunn, huet net geschafft.

Als éischt fanne mir eraus wou Fësch installéiert ass:

which fish

Hei ass wat ech krut:

/usr/bin/fish

Als nächst ännert d'Login Shell op Fësch. Dir kënnt all Editor benotze fir Iech bequem ze maachen. Wann Dir en Ufänger sidd, installéiert dann Nano (mat dem Kommando apk add nano) sou datt Dir d'Konfiguratiounsdateien änneren an se iwwer CTRL+X späicheren, confirméieren an ausgoen.

Awer ech hunn Vim benotzt:

vim /etc/passwd

Meng éischt Linn war esou:

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

Fir Fësch als Standard Shell ze maachen, ännert dës Linn op déi folgend:

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

Da späichert d'Datei a gitt eraus.

Ech si sécher datt et e gudde Wee ass fir de Wee op d'Schuel z'änneren sou datt et direkt benotzt ka ginn. Awer ech weess et net, also ech recommandéieren zréck an den Applikatiounsbrowser ze goen, d'Schuel erauszekréien, a fir op der sécherer Säit ze sinn, auszeschalten an Ären iPad oder iPhone nei starten. Open iSH erëm an elo, nieft dem Message "Welcome to Alpine!" an Informatioun iwwer de Start vun der Apk, gesitt Dir de Standard Fësch Login Wëllkomm Message: Wëllkomm um Fësch, déi frëndlech interaktiv Schuel. Hour!

Lancéiere vun der Linux Kommandozeil op iOS

Ariichten Python a Pip

Ech hu beschloss ze addéieren Python (Versioun 3.x), net nëmme fir Code ze schreiwen, awer och well ech verschidde Python Programmer benotzen. Loosst eis et installéieren:

apk add python3

Och wann Python 2.x al ass, kënnt Dir et installéieren:

apk add python

Loosst eis de Python Package Manager mam Numm pip an installéieren Setuptools:

python3 -m ensurepip --default-pip

Et dauert e bëssen Zäit fir de Package Manager z'installéieren an ze konfiguréieren, also waart just.

Dir kënnt dann en Tool eroflueden fir Dateien iwwer d'Netz ze transferéieren esouvill:

apk add curl

D'Handbuch liesen

Fish benotzt gebaut-an Autocompletion baséiert op Mann Säiten. Wéi aner Kommandozeil Benotzer benotzen ech d'Handbuch man, mee et ass net am Alpine installéiert. Also hunn ech et mat Terminal Pager installéiert manner:

apk add man man-pages less less-doc

Nieft Mann benotzen ech herrlechen tldr Säiten Projet, déi vereinfacht a Gemeinschaftsgedriwwe Mann Säiten ubitt.

Ech hunn et mat Pip installéiert:

pip install tldr

Equipe tldr verbënnt op de Web fir Säiten ze recuperéieren wann et eng Ufro fir eng nei Säit begéint. Wann Dir wësse musst wéi Dir e Kommando benotzt, kënnt Dir eppes schreiwen wéi tldr curl a kritt eng Beschreiwung op einfach Englesch a gutt Beispiller wéi een de Kommando benotzt.

Natierlech, all dës Installatioun Aarbecht kann automatiséiert ginn benotzt dotfiles oder en Installatiounsskript, awer tatsächlech entsprécht dëst net wierklech der Alpine Ideologie - eng minimal Installatioun personaliséiere genau fir Äre Besoinen ze passen. Ausserdeem huet et sou laang gedauert, oder?

zousätzlech Informatioune

D'iSH Wiki huet eng Säit "wat funktionnéiert" mat Berichter iwwer wéi eng Packagen am Moment lafen. Iwwregens gesäit et aus wéi npm funktionnéiert elo net.

Eng aner Wiki Säit erkläert wéi Zougang zu iSH Dateien vun der iOS Dateien App. Dëst ass ee vun de Weeër fir Dateien ze réckelen a kopéieren.

Dir kënnt och Git installéieren (jo! apk add git ) an dréckt Är Aarbecht op e Remote Repository oder transferéiert se op de Server iwwer SSH. An, natierlech, kënnt Dir all Zuel vu super Open-Source Projete vu GitHub eroflueden a lafen.

Méi Informatioun iwwer iSH fannt Dir op dëse Linken:

Iwwer d'Rechter vu Reklammen

Vdsina bitt virtuelle Serveren op Linux oder Windows. Mir benotzen exklusiv Mark Equipement, déi bescht vu senger Aart Server Kontrollpanel vu sengem eegenen Design an ee vun de beschten Datenzenteren a Russland an der EU. Maacht séier fir ze bestellen!

Lancéiere vun der Linux Kommandozeil op iOS

Source: will.com

Setzt e Commentaire