Spúšťame príkazový riadok Linux na iOS

Spúšťame príkazový riadok Linux na iOS

Vedeli ste, že môžete spustiť príkazový riadok Linux na zariadení iOS? Môžete sa opýtať: „Prečo by som mal používať textové aplikácie na iPhone?“ To je spravodlivá otázka. Ale ak čítate Opensource.com, pravdepodobne poznáte odpoveď: používatelia Linuxu chcú mať možnosť pracovať s ním na akomkoľvek zariadení a používať svoje vlastné nastavenia.

Ale najviac túžia po riešení zložitých úloh.

Mám sedemročný iPad 2 Mini, ktorý je stále dosť dobrý na čítanie elektronických kníh a iné úlohy. Chcem ho však používať aj na prístup k príkazovému riadku aplikácií so svojím súborom programov a skriptov, bez ktorých nemôžem pracovať. Potrebujem prostredie, na ktoré som zvyknutý, a moju štandardnú vývojovú súpravu. A toto je spôsob, ako som to dokázal.

Pripojenie klávesnice

Práca s príkazovým riadkom na programovanie cez obrazovú klávesnicu telefónu alebo tabletu je dosť nepríjemná. Odporúčam pripojiť externú klávesnicu, buď cez Bluetooth, alebo pomocou adaptéra na pripojenie kamery na pripojenie drôtovej klávesnice (ja som si vybral druhú možnosť). Pri pripojení rozdelenej klávesnice Kinesis Advantage k iPhone 6 vzniká zvláštne zariadenie, ktoré pripomína podnikovú kybernetickú kanceláriu z klasického rolového hry Shadowrun.

Nastavenie shellu na iOS

Pre spustenie plnohodnotného systému Linux na iOS existujú dve možnosti:

  • Secure shell (SSH) pripojená k počítaču s Linuxom
  • Spustenie virtuálneho systému pomocou Alpine Linux s iSH, ktorý je open source, ale musí sa nainštalovať pomocou proprietárneho aplikácie TestFlight spoločnosti Apple

Existujú dva open-source terminálové emulátory, ktoré umožňujú prácu s open-source nástrojmi v obmedzenom prostredí. Toto je najobmedzenejšia možnosť – v skutočnosti nespúšťate Linux, ale nástroje Linuxu. Pri práci s týmito aplikáciami existujú prísne obmedzenia funkčnosti, avšak získate čiastočnú funkcionalitu príkazového riadku.

Predtým, než prejdeme k zložitým riešeniam, sa pozriem na najjednoduchší spôsob.

Možnosť 1: shell v „pieskovisku“

Jeden z najjednoduchších spôsobov je nainštalovať aplikáciu pre iOS LibTerm. Je to open source príkazová uhlopriečka v „pieskovisku“ s podporou viac ako 80 príkazov za cenu nula dolárov. Dodáva sa s ním Python 2.7, Python 3.7, Lua, C, Clang a veľa ďalšieho.

Približne takúto funkcionalitu má a-Shell, popisovaná vývojármi ako „testovacie používateľské rozhranie pre platformu s obrazovým vstupom“. Zdrojové kódy a-Shell sú zverejnené open source, je v aktívnom vývoji, poskytuje prístup k súborovému systému a dodáva sa s Lua, Python, Tex, Vim, JavaScript, C a C++, ako aj s Clang a Clang++. Umožňuje dokonca inštalovať balíky Pythonu pomocou pip.

Možnosť 2: SSH

Ďalším krokom vpred oproti sťahovaniu aplikácie je nastavenie SSH klienta. Už dlhý čas sme mohli používať akékoľvek z množstva aplikácií SSH klientov pre iOS na pripojenie k serveru, na ktorom beží Linux alebo BSD. Výhodou používania SSH je, že na serveri môže bežať akákoľvek distribúcia s akýmkoľvek softvérom. Pracujete na diaľku a výsledky sa jednoducho prenášajú do terminálového emulátora na vašom zariadení iOS.

Blink shell — je populárna platená SSH aplikácia v open source. Ak nebudeme brať do úvahy malú obrazovku zariadenia, používanie tohto softvéru sa podobá pripojeniu k serveru cez akýkoľvek iný príkazový riadok. Terminál Blink vyzerá skvele, má množstvo preddefinovaných tém a funkciu vytvárania vlastných, vrátane možnosti nastaviť a pridať nové písma.

Možnosť 3: spustenie Linuxu

Používanie SSH na pripojenie k serveru so systémom Linux je skvelý spôsob, ako získať prístup k príkazovému riadku, ale vyžaduje externý server a internetové pripojenie. Netrápi to najväčšou prekážkou, no nie je možné to úplne ignorovať, preto možno budete potrebovať pracovať s Linuxom bez servera.

Ak je to váš prípad, potom budete musieť urobiť ešte jeden krok vpred. TestFlight — je to proprietárna služba na inštaláciu vyvíjaných aplikácií ešte predtým, ako boli zverejnené v Apple App Store. Aplikáciu TestFlight si môžete nainštalovať z App Store a následne používať testovacie aplikácie. Aplikácie v TestFlight umožňujú obmedzenému počtu beta testerov (zvyčajne do 10 000) pracovať s nimi počas obmedzeného časového obdobia. Ak chcete stiahnuť testovaciu aplikáciu, musíte prejsť zo svojho zariadenia na odkaz, ktorý sa zvyčajne nachádza na webovej stránke vývojára testovacej aplikácie.

Spustenie Alpine Linux s iSH

iSH — je open-source aplikácia TestFlight, ktorá spúšťa virtuálny stroj s hotovým distribučným balíkom Alpine Linux (po troche práce môžete spustiť aj iné distribúcie).

Dôležitá vlastnosť: aplikácia je experimentálna. Pretože iSH je zatiaľ testovacia aplikácia, neočakávajte trvalú a spoľahlivú funkčnosť. Aplikácie TestFlight sú časovo obmedzené. Moje aktuálne zostavenie bude fungovať iba 60 dní. To znamená, že po 60 dňoch budem vylúčený a budem sa musieť znova pripojiť k nasledujúcemu testovaciemu cyklu iSH. Okrem toho stratím všetky svoje súbory, ak ich neexportujem pomocou Files na iOS alebo ich nekopírujem na Git host alebo cez SSH. Inými slovami: Nehľadajte, že to všetko bude pokračovať v činnosti! Nerobte v systéme nič dôležité! Robte zálohy na iné miesto!

Inštalácia iSH

Začnite inštaláciou TestFlight z App Store. Potom nainštalujte iSH, získajte odkaz na inštaláciu z webovej stránky aplikácie. Existuje aj iný spôsob inštalácie pomocou AltStore, ale to som neskúšal. Alebo ak máte platené vývojárske konto, môžete si stiahnuť repozitár iSH z GitHubu a nainštalovať ho ručne.

Pomocou odkazu TestFlight nainštaluje aplikáciu iSH na vaše zariadenie. Rovnako ako pri akejkoľvek inej aplikácii sa na obrazovke objaví ikona.

Správa balíkov

iSH vykonáva emulátor x86 s Alpine Linux. Alpine je maličký distribučný balík s veľkosťou menej ako 5 MB. Prvýkrát som pracoval s Alpine, takže som si myslel, že taký minimalizmus bude obťažovať, ale vlastne sa mi veľmi páčil.

Spúšťame príkazový riadok Linux na iOS
V Alpine sa používa správca balíkov apk, ktorý je jednoduchší dokonca aj než apt alebo pacman.

Ako nainštalovať balík:

apk add package

Ako odstrániť balík:

apk del package

Ako zistiť ďalšie príkazy a informácie:

apk --help

Aktualizácia správcu balíkov:

apk update
apk upgrade

Inštalácia textového editora

Štandardným textovým editorom Alpine je Vi, ale ja dávam prednosť Vim, preto som ho nainštaloval:

apk add vim

Ak chcete, môžete nainštalovať aj Nano alebo Emacs.

Zmena shellu

Neviem, ako vy, ale ja som potreboval fish shell. Iní ľudia dávajú prednosť Bash alebo Zsh. Vo Alpine sa však používa ash! Ash je fork shellu Dash, ktorý je sám fork pôvodného ashu, alebo Almquist shell. Jeho prioritou je rýchlosť. Rozhodol som sa vymeniť rýchlosť za zabudované automatické dopĺňanie, farby, ovládanie kláves a zvýraznenie syntaxe, ktoré mám rád a poznám z fish shell.

Inštalácia fish:

apk add fish

Ak potrebujete Bash s jeho automatickým dopĺňaním a man-stránkami, nainštalujte ich:

apk add bash bash-doc bash-completion

Minimalistická ideológia Alpine zvyčajne znamená, že niektoré programy, ktoré sú v iných distribúciách jedným balíkom, budú rozdelené na niekoľko menších balíkov. To tiež znamená, že si môžete prispôsobiť a zmenšiť veľkosť systému presne tak, ako chcete.

Viac o inštalácii Bash sa môžete dozvedieť z tohto tutoriálu.

Zmena predvoleného shellu

Po inštalácii fish sa môžete dočasne prepnúť na ňu zadaním fish a prechodom do shellu. Ale chcem, aby bol fish predvoleným shellom, a príkaz chsh, ktorý som použil v iných distribúciách, nefungoval.

Najprv zistíme, kde sa fish nainštalovala:

which fish

Tu je, čo mi vyšlo:

/usr/bin/fish

Potom zmeníme login shell na fish. Môžete použiť akýkoľvek pohodlný editor. Ak ste začiatočník, nainštalujte Nano (príkazom apk add nano), aby ste mohli upraviť konfiguračné súbory a uložiť ich pomocou CTRL+X, potvrdiť a vyjsť.

Ale ja som použil Vim:

vim /etc/passwd

Moja prvá línia vyzerala takto:

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

Aby sme spravili fish predvoleným shellom, zmeníme tento riadok na nasledujúci:

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

Potom uložíme súbor a výjdeme.

Som si istý, že existuje dobrý spôsob, ako zmeniť cestu k shellu, aby sa dala použiť okamžite. Ale neviem ho, preto odporúčam vrátiť sa do prehliadača aplikácií, nútene sa odhlásiť zo shellu a pre istotu vypnúť a reštartovať iPad alebo iPhone. Opäť otvorte iSH a teraz okrem správy „Vitajte v Alpine!“ a informácií o spustení s apk uvidíte štandardnú uvítaciu správu prihlasovania fish: Vitajte vo fish, priateľskej interaktívnej shelle. Hurá!

Spúšťame príkazový riadok Linux na iOS

Nastavenie Pythonu a pip

Rozhodol som sa pridať Python (verziu 3.x), nielen preto, aby som písal kód, ale aj preto, že používam niekoľko programov v Pythone. Nainštalujme ho:

apk add python3

Aj keď je Python 2.x zastaraný, môžete nainštalovať aj jeho:

apk add python

Nainštalujeme správcu balíkov Python s názvom pip a setuptools:

python3 -m ensurepip --default-pip

Na inštaláciu a nastavenie správcu balíkov to chvíľu potrvá, takže jednoducho počkajte.

Potom si môžete stiahnuť nástroj na prenos súborov po sieti curl:

apk add curl

Čítame manuály

Fish využíva vstavané automatické doplňovanie na základe man stránok. Ako iní používatelia príkazového riadku, aj ja používam manuál man, ale v Alpine nie je nainštalovaný. Preto som ho nainštaloval s terminálovým pagerom menej:

apk add man man-pages less less-doc

Okrem man používam vynikajúci projekt tldr pages, ktorý poskytuje zjednodušené a komunitne spravované man stránky.

Nainštaloval som ho pomocou pip:

pip install tldr

Tím tldr sa pripája na web pre získanie stránok, keď narazí na požiadavku na novú stránku. Ak potrebujete vedieť, ako používať príkaz, môžete napísať niečo ako tldr curl a získať popis v jednoduchom anglickom jazyku a dobré príklady použitia príkazu.

Samozrejme, celú túto prácu na inštalácii je možné automatizovať pomocou dotfiles alebo inštalačného skriptu, ale skutočne to nie je veľmi v súlade s ideológiou Alpine — nastavením minimálnej inštalácie presne pod svoje potreby. Okrem toho, zaberie to toľko času, že?

Ďalšie informácie

Na Wiki iSH je stránka "what works" s hláseniami o tom, ktoré balíky teraz fungujú. Mimochodom, zdá sa, že npm teraz nefunguje.

Na inej wiki stránke je vysvetlené, ako získať prístup k súborom iSH z aplikácie iOS Files. Je to jeden zo spôsobov, ako môžete presúvať a kopírovať súbory.

Môžete tiež nainštalovať Git (áno! apk add git ) a poslať svoju prácu do vzdialeného repozitára alebo ju prenášať na server cez SSH. A samozrejme, môžete sťahovať a spúšťať akékoľvek množstvo skvelých open-source projektov z GitHubu.

Viac informácií o iSH nájdete na týchto odkazoch:

Na základe reklamy

Vdsina ponúka virtuálne servery na Linuxe alebo Windows. Používame výlučne značkové vybavenie, najlepšia vo svojej triede ovládacia panela serverov vlastného vývoja a jedno z najlepších dátových centier v Rusku a EÚ. Nezabudnite si objednať!

Spúšťame príkazový riadok Linux na iOS

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster