Spustenie príkazového riadku systému Linux v systéme iOS

Spustenie príkazového riadku systému Linux v systéme iOS

Vedeli ste, že príkazový riadok systému Linux môžete spustiť na zariadení so systémom iOS? Možno sa pýtate: „Prečo by som mal na svojom iPhone používať aplikácie na odosielanie textových správ? Spravodlivá otázka. Ale ak čítate Opensource.com, pravdepodobne poznáte odpoveď: Používatelia Linuxu chcú mať možnosť používať ho na akomkoľvek zariadení a chcú si ho sami prispôsobiť.

Zo všetkého najviac však túžia po riešení zložitých problémov.

Mám sedem rokov starý iPad 2 Mini, ktorý je stále celkom dobrý na čítanie elektronických kníh a iné úlohy. Chcem ho však použiť aj na prístup k príkazovému riadku aplikácií s mojou sadou programov a skriptov, bez ktorých nemôžem fungovať. Potrebujem prostredie, na ktoré som zvyknutý, ako aj moje štandardné vývojové prostredie. A takto sa mi to podarilo dosiahnuť.

Pripojenie ku klávesnici

Práca s príkazovým riadkom na programovanie cez klávesnicu na obrazovke telefónu alebo tabletu je dosť nepohodlná. Odporúčam pripojiť externú klávesnicu, či už cez Bluetooth, alebo pomocou adaptéra na pripojenie fotoaparátu pripojiť káblovú klávesnicu (ja som zvolil tú druhú). Keď pripojíte rozdelenú klávesnicu Kinesis Advantage k iPhone 6, získate zvláštne zariadenie, ktoré sa podobá firemná kybernetická paluba od klasiky úlohu Shadowrun.

Inštalácia shellu na iOS

Ak chcete spustiť plnohodnotný systém Linux v systéme iOS, existujú dve možnosti:

  • Zabezpečený shell (SSH) pripojený k počítaču so systémom Linux
  • Spustenie virtuálneho systému pomocou Alpine Linux s iSH, ktorý je open source, ale musí byť nainštalovaný pomocou vlastnej aplikácie TestFlight spoločnosti Apple

Ako alternatívu existujú dve aplikácie emulátora terminálu s otvoreným zdrojom, ktoré poskytujú možnosť pracovať s nástrojmi s otvoreným zdrojom v obmedzenom prostredí. Toto je najviac oklieštená možnosť – v skutočnosti takto spúšťate nástroje Linuxu, nie Linux. Pri práci s týmito aplikáciami existujú vážne obmedzenia funkcií, ale získate čiastočnú funkčnosť príkazového riadka.

Predtým, ako prejdem na zložité riešenia, pozriem sa na najjednoduchšiu metódu.

Možnosť 1: Shell Sandbox

Jedným z najjednoduchších spôsobov je inštalácia aplikácie pre iOS LibTerm. To open source izolovaný príkazový shell s podporou viac ako 80 príkazov za nula dolárov. Dodáva sa s Pythonom 2.7, Pythonom 3.7, Lua, C, Clang a mnohými ďalšími.

Má približne rovnakú funkčnosť ako peklo, ktorú vývojári opísali ako „testovacie používateľské rozhranie pre vstupnú platformu obrazovky“. Zdroje a-Shell sú zverejnené open source, je v aktívnom vývoji, poskytuje prístup k súborovému systému a prichádza s Lua, Python, Tex, Vim, JavaScript, C a C++, ako aj Clang a Clang++. Umožňuje vám dokonca nainštalovať balíčky Pythonu.

Možnosť 2: SSH

Ďalším krokom po stiahnutí aplikácie je nastavenie klienta SSH. Na pripojenie k serveru so systémom Linux alebo BSD sme už dlho mohli používať ktorúkoľvek z mnohých klientskych aplikácií SSH pre iOS. Výhodou použitia SSH je, že server môže prevádzkovať akúkoľvek distribúciu s akýmkoľvek softvérom. Pracujete na diaľku a výsledky vašej práce sa jednoducho prenesú do emulátora terminálu na vašom iOS zariadení.

Žmurkanie je populárna platená aplikácia SSH v open source. Ak ignorujete malú obrazovku zariadenia, používanie tohto softvéru je podobné ako pri pripájaní sa k serveru cez akýkoľvek iný príkazový riadok. Blink Terminal vyzerá skvele, má veľa hotových tém a možnosť vytvárať si vlastné, vrátane možnosti upravovať a pridávať nové fonty.

Možnosť 3: Spustite Linux

Použitie SSH na pripojenie k serveru Linux je skvelý spôsob prístupu k príkazovému riadku, ale vyžaduje externý server a sieťové pripojenie. Toto nie je najväčšia prekážka, ale nemožno ju úplne ignorovať, takže možno budete musieť spustiť Linux bez servera.

Ak je to váš prípad, budete musieť urobiť ešte jeden krok ďalej. skúšobný let je proprietárna služba na inštaláciu vyvinutých aplikácií ešte pred ich zverejnením v Apple App Store. Aplikáciu TestFlight si môžete nainštalovať z App Store a potom použiť 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 času. Ak chcete stiahnuť testovaciu aplikáciu, musíte prejsť zo svojho zariadenia na odkaz, ktorý sa zvyčajne nachádza na webovej lokalite vývojára testovacej aplikácie.

Spustenie Alpine Linuxu s iSH

ISH je open-source aplikácia TestFlight, ktorá spúšťa virtuálny stroj s hotovou distribúciou Alpský Linux (s trochou úsilia môžete spustiť aj iné distribúcie).

Dôležitá vlastnosť: experimentálna aplikácia. Keďže iSH je momentálne testovacia aplikácia, nečakajte stálu a spoľahlivú prevádzku. Aplikácie TestFlight sú časovo obmedzené. Moja súčasná zostava vydrží len 60 dní. To znamená, že po 60 dňoch budem vyradený a budem sa musieť znova zapojiť do ďalšieho kola testovania iSH. Okrem toho stratím všetky svoje súbory, pokiaľ ich neexportujem pomocou súborov v systéme iOS alebo ich neskopírujem na hostiteľa Git alebo cez SSH. Inými slovami: Nečakajte, že to bude fungovať aj naďalej! Do systému nevkladajte nič pre vás dôležité! Zálohujte na samostatné miesto!

Inštalácia iSH

Začnite inštaláciou skúšobný let z obchodu App Store. Potom nainštalujte iSH, dostal inštalačný odkaz z webovej stránky aplikácie. Existuje iný spôsob inštalácie pomocou AltStore, ale neskúšal som to. Alebo, ak máte platený vývojársky účet, môžete si stiahnuť repozitár iSH z GitHubu a nainštalovať si ho sami.

Pomocou odkazu TestFlight nainštaluje aplikáciu iSH do vášho zariadenia. Ako pri každej inej aplikácii sa na obrazovke zobrazí ikona.

Správa balíkov

iSH prevádzkuje x86 emulátor s Alpine Linux. Alpine je malá distribúcia, ktorá meria menej ako 5 MB. Toto bolo prvýkrát, čo som pracoval s Alpine, takže som si myslel, že minimalizmus bude nepríjemný, ale skutočne sa mi to páčilo.

Spustenie príkazového riadku systému Linux v systéme iOS
Alpine používa správcu balíkov apk, čo je jednoduchšie ako dokonca apt alebo pacman.

Ako nainštalovať balík:

apk add package

Ako odstrániť balík:

apk del package

Ako nájsť ď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

Predvolený textový editor Alpine je Vi, ale uprednostňujem Vim, takže som ho nainštaloval:

apk add vim

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

Zmena škrupiny

Neviem ako vy, ale ja som potreboval rybie mušle. Iní ľudia preferujú tresnúť alebo Zsh. Alpine však používa popol! Jaseň je vidlica škrupiny Dash, ktorá sama o sebe je vidlicou pôvodného jaseňa, príp Almquist shell. Jej prioritou je rýchlosť. Rozhodol som sa vymeniť rýchlosť za vstavané automatické dopĺňanie, farby, ovládacie prvky kláves Vim a zvýraznenie syntaxe, ktoré milujem a poznám z rybej škrupiny.

Inštalácia rýb:

apk add fish

Ak potrebujete Bash s automatickým dopĺňaním a manuálovými stránkami, nainštalujte si ich:

apk add bash bash-doc bash-completion

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

Ďalšie informácie o inštalácii Bash nájdete v časti tento tutoriál.

Zmena predvoleného shellu

Po nainštalovaní rýb sa naň môžete dočasne prepnúť zadaním fish a ísť do škrupiny. Chcem však urobiť z rýb predvolený shell a príkaz chsh, ktorý som používal na iných distribúciách, nefungoval.

Najprv zistíme, kde sú ryby nainštalované:

which fish

Tu je to, čo som dostal:

/usr/bin/fish

Ďalej zmeňte prihlasovací shell na rybu. Môžete použiť ľubovoľný editor, ktorý vám vyhovuje. Ak ste začiatočník, nainštalujte Nano (pomocou príkazu apk add nano), aby ste mohli upraviť konfiguračné súbory a uložiť ich pomocou CTRL+X, potvrdiť a ukončiť.

Ale použil som Vim:

vim /etc/passwd

Môj prvý riadok bol takýto:

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

Ak chcete, aby bola ryba predvolená škrupina, zmeňte tento riadok na nasledujúci:

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

Potom súbor uložte a ukončite.

Som si istý, že existuje dobrý spôsob, ako zmeniť cestu k škrupine, aby sa dala ihneď použiť. Ale neviem to, takže odporúčam vrátiť sa do prehliadača aplikácií, vynútiť opustenie shellu a pre istotu vypnúť a reštartovať iPad alebo iPhone. Otvorte iSH znova a teraz, okrem správy „Vitajte v Alpine!“ a informácie o spustení z apk, uvidíte štandardnú uvítaciu správu pri prihlásení rýb: Vitajte na rybách, priateľskej interaktívnej škrupine. Hurá!

Spustenie príkazového riadku systému Linux v systéme iOS

Nastavenie jazyka Python a pip

Rozhodol som sa pridať Pytón (verzia 3.x), a to nielen na písanie kódu, ale aj preto, že používam viacero programov Python. Poďme si to nainštalovať:

apk add python3

Hoci je Python 2.x zastaraný, môžete si ho nainštalovať:

apk add python

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

python3 -m ensurepip --default-pip

Inštalácia a konfigurácia správcu balíkov bude chvíľu trvať, takže počkajte.

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

apk add curl

Čítanie manuálov

Fish používa vstavané automatické dopĺňanie založené na manuálových stránkach. Rovnako ako ostatní používatelia príkazového riadku používam príručku man, ale nie je nainštalovaný v Alpine. Tak som to nainštaloval s terminálovým pagerom menej:

apk add man man-pages less less-doc

Okrem človeka používam veľkolepý projekt tldr pages, ktorý poskytuje zjednodušené a komunitou riadené manuálové stránky.

Nainštaloval som to pomocou pip:

pip install tldr

Tím tldr pripojí sa na web a načíta stránky, 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ískajte popis v jednoduchej angličtine a dobré príklady použitia príkazu.

Všetky tieto inštalačné práce je možné samozrejme automatizovať dotfiles alebo inštalačný skript, ale v skutočnosti to nezodpovedá ideológii Alpine - prispôsobenie minimálnej inštalácie presne podľa vašich potrieb. Okrem toho to trvalo tak dlho, však?

doplňujúce informácie

iSH Wiki má stránku "čo funguje“ so správami o tom, ktoré balíky sú momentálne spustené. Mimochodom, vyzerá to tak npm momentálne nefunguje.

Ďalšia stránka wiki vysvetľuje ako prístup k súborom iSH z aplikácie Súbory systému iOS. Toto je 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 preneste svoju prácu do vzdialeného úložiska alebo ju preneste na server cez SSH. A samozrejme si môžete stiahnuť a spustiť ľubovoľný počet skvelých open-source projektov z GitHubu.

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

O právach reklamy

Vdsina ponúk virtuálne servery v systéme Linux alebo Windows. Používame výhradne značkové vybavenie, najlepší serverový ovládací panel svojho druhu s vlastným dizajnom a jedno z najlepších dátových centier v Rusku a EÚ. Poponáhľajte sa s objednávkou!

Spustenie príkazového riadku systému Linux v systéme iOS

Zdroj: hab.com

Pridať komentár