Izpildām Linux komandrindas interfeisu iOS

Izpildām Linux komandrindas interfeisu iOS

Vai jūs zinājāt, ka Linux komandrindas saskarni var palaist uz iOS ierīcēm? Varbūt jūs jautājat: “Kāpēc man būtu jālieto teksta lietotnes iPhone?” Godīgs jautājums. Bet, ja jūs lasāt Opensource.com, tad, iespējams, jūs jau zināt atbildi: Linux lietotāji vēlas strādāt ar to jebkurā ierīcē un izmantot savas konfigurācijas.

Bet visvairāk viņi alkst risinājumus sarežģītām problēmām.

Man ir septiņus gadus vecs iPad 2 Mini, kas joprojām ir diezgan labs elektronisko grāmatu lasīšanai un citām aktivitātēm. Tomēr es gribu to izmantot arī, lai piekļūtu programmu komandrindai ar manām programmām un skriptiem, bez kuriem es nevaru strādāt. Man ir nepieciešama vide, pie kā esmu pieradis, kā arī mana standarta izstrādes vide. Un šeit ir, kā man izdevās to panākt.

Savienojums ar tastatūru

Strādāt ar komandrindām programmēšanai, izmantojot telefona vai planšetes ekrāna tastatūru, ir diezgan neērti. Es iesaku pieslēgt ārējo tastatūru, vai nu izmantojot Bluetooth, vai arī izmantojot kameru adapteri, lai pieslēgtu vadu tastatūru (es izvēlējos otro variantu). Pieslēdzot Kinesis Advantage sadalīto tastatūru pie iPhone 6, rodas dīvaina ierīce, kas atgādina korporatīvo kiberdeku no klasiskajām lomu spēlēm Shadowrun.

Uzstādīsim apvalku uz iOS

Lai palaistu pilnībā funkcionālu Linux sistēmu uz iOS, ir divas iespējas:

  • Secure shell (SSH), savienojot ar Linux datoru
  • Palaist virtuālo sistēmu, izmantojot Alpine Linux ar iSH, kas ir atvērtā koda, bet tam jābūt instalētam ar Apple patentēto TestFlight lietotni.

Alternatīvi ir divas atvērtā koda termināla emulācijas lietotnes, kas nodrošina iespēju strādāt ar atvērtā koda rīkiem ierobežotā vidē. Tas ir visvienkāršākais variants — patiesībā jūs nesākat Linux, bet gan Linux rīkus. Strādājot ar šīm lietotnēm, pastāv stingri ierobežojumi funkcionalitātē, taču jūs iegūstat daļēju komandrindas funkcionalitāti.

Pirms pāriet uz sarežģītākiem risinājumiem, es apskatīšu vienkāršāko veidu.

Variants 1: apvalks «sand-boxā»

Viens no vienkāršākajiem veidiem ir uzstādīt iOS lietotni LibTerm. Tas atvērtā koda Komandrēķins «smilšu kastē» ar atbalstu vairāk nekā 80 komandām par nulles dolāriem. Komplektā iekļauts Python 2.7, Python 3.7, Lua, C, Clang un daudz kas cits.

Aptuveni tādu pašu funkcionalitāti nodrošina a-Shell, ko izstrādātāji raksturo kā «testētāja lietotāja saskarni platformām ar ekrānveida ievadi». a-Shell pirmkodu komplekts ir pieejams open source, tas ir aktīvā izstrādē, nodrošina piekļuvi failu sistēmai un komplektā iekļauj Lua, Python, Tex, Vim, JavaScript, C un C++, kā arī Clang un Clang++. Tas pat ļauj instalēt Python paketes, izmantojot pip.

Variants 2: SSH

Vēl viens solis uz priekšu salīdzinājumā ar aplikācijas lejupielādi ir SSH klienta iestatīšana. Jau ilgu laiku varējām izmantot jebkuru no daudziem SSH klienta lietotnēm iOS, lai izveidotu savienojumu ar serveri, kurā darbojas Linux vai BSD. SSH izmantošanas priekšrocība ir tāda, ka serverī var darboties jebkura izplatīšanas sistēma ar jebkuru programmatūru. Jūs strādājat attālināti, un darba rezultāti tiek vienkārši pārsūtīti uz termināla emulatoru iOS ierīcē.

Blink shell — tas ir populārs maksas SSH lietotne open source. Ja neņem vērā mazo ierīces ekrānu, šī programmatūras izmantošana šķiet līdzīga pieslēgšanai serverim caur jebkuru citu komandrindas interfeisu. Blink termināls izskatās lieliski, tam ir daudz gatavu tēmām un iespēja izveidot savas, tostarp iespēja konfigurēt un pievienot jaunus fontus.

Variants 3: Linux palaišana

SSH izmantošana, lai pieslēgtos serverim zem Linux, ir lielisks veids, kā piekļūt komandrindai, taču tam ir nepieciešams ārējais serveris un tīkla savienojums. Tas nav vislielākais šķērslis, taču to nevar pilnīgi ignorēt, tāpēc jums var nākties strādāt ar Linux bez servera.

Ja tas ir jūsu gadījums, jums būs jāveic vēl viens solis uz priekšu. TestFlight — tas ir patentēts pakalpojums, lai instalētu izstrādātās lietojumprogrammas vēl pirms to publicēšanas Apple App Store. Lietojumprogrammu TestFlight var instalēt no App Store un pēc tam izmantot testēšanas lietojumprogrammas. Lietojumprogrammas TestFlight ļauj ierobežotam skaitam beta testētāju (parasti līdz 10 000) strādāt ar tām noteiktu laiku. Lai lejupielādētu testēšanas lietojumprogrammu, ir jāapmeklē saite no sava ierīces, kas parasti atrodas izstrādātāja vietnē.

Alpine Linux palaišana ar iSH

iSH — tas ir open-source lietojumprogramma TestFlight, kas palaiž virtuālo mašīnu ar gatavu distribūciju Alpine Linux (pievēršot nedaudz pūļu, var palaist arī citas distribūcijas).

Svarīga iezīme: lietojumprogramma ir eksperimentāla. Tā kā iSH pašlaik ir testējošā lietojumprogramma, negaidiet pastāvīgu un uzticamu darbu. Lietojumprogrammas TestFlight ir ierobežotas laikā. Mana pašreizējā versija darbosies tikai 60 dienas. Tas nozīmē, ka pēc 60 dienām es tiksu izslēgts un man būs jāpieprasa piekļuve nākamajam iSH testēšanas posmam. Turklāt es zaudēšu visus savus failus, ja tos neeksportēšu, izmantojot Files iOS vai nenokopēšu uz Git hostinga vai caur SSH. Citiem vārdiem sakot: Neuzticieties, ka viss šis turpinās darboties! Neievietojiet sistēmā nekā svarīga jums! Veiciet dublēšanu citā vietā!

iSH uzstādīšana

Sāciet ar instalēšanu TestFlight no App Store. Pēc tam instalējiet iSH, iegūstot instalācijas saiti no lietojumprogrammas vietnes. Ir arī cits veids, kā instalēt, izmantojot AltStore, bet es to neesmu mēģinājis. Vai arī, ja jums ir maksas izstrādātāja konts, varat lejupielādēt iSH repozitoriju no GitHub un instalēt to pats.

Izmantojot saiti, TestFlight instalēs lietojumprogrammu iSH uz jūsu ierīces. Kā jebkurai citai lietojumprogrammai, ekrānā parādīsies ikona.

Paku pārvaldība

iSH veic x86 emulatoru ar Alpine Linux. Alpine ir maza distribūcija, kuras lielums ir mazāks par 5 MB. Es pirmo reizi strādāju ar Alpine, tāpēc domāju, ka šāds minimālisms mani kaitinās, bet patiesībā man ļoti patika.

Izpildām Linux komandrindas interfeisu iOS
Alpine izmanto pakotņu pārvaldnieku apk, kas ir vienkāršāks pat nekā apt vai pacman.

Kā instalēt pakotni:

apk add package

Kā dzēst pakotni:

apk del package

Kā uzzināt citas komandas un informāciju:

apk --help

Paku pārvaldnieka atjaunināšana:

apk atjaunināt
apk uzlabot

Teksta redaktora instalēšana

Standarta teksta redaktors Alpine sistēmā ir Vi, bet es dodu priekšroku Vim, tāpēc es to instalēju:

apk pievienot vim

Ja vēlaties, varat instalēt Nano vai Emacs.

Šellē mainīšana

Nezinu, kā jums, bet man vajadzēja fish shell. Citi cilvēki dod priekšroku Bash vai Zsh. Tomēr Alpine izmanto ash! Ash ir Dash šellē radīts atzars, kas pats ir oriģinālā ash atzars, vai Almquist shell. Tā prioritāte ir ātrums. Es izvēlējos apmainīt ātrumu pret iebūvētu automātisko pabeigšanu, krāsām, Vim taustiņu kontroles un sintakse apgaismojumu, kurus es mīlu un zinu no fish shell.

Fish instalēšana:

apk pievienot fish

Ja jums nepieciešams Bash ar tās automātisko pabeigšanu un man lapām, tad instalējiet tos:

apk pievienot bash bash-doc bash-completion

Alpine minimālisma ideoloģija parasti nozīmē, ka dažas programmas, kas citos izplatījumos ir vienā paketē, tiek sadalītas vairākās mazākās pakotnēs. Tas arī nozīmē, ka varat pielāgot un samazināt sistēmas izmēru tieši tā, kā vēlaties.

Vairāk par Bash instalēšanu varat uzzināt no šī tutoriāla.

Noklusējuma šellē mainīšana

Pēc fish instalēšanas varat pagaidu piekļūt tam, ierakstot fish un pārejot uz šelli. Bet es vēlos padarīt fish par noklusējuma šelli, bet komanda chsh, ko esmu izmantojis citos izplatījumos, nedarbojās.

Vispirms noskaidrosim, kur fish ir instalēts:

which fish

Lūk, kādi rezultāti man sanāca:

/usr/bin/fish

Tālāk mainīsim login shell uz fish. Varat izmantot jebkuru jums ērtu redaktoru. Ja esat iesācējs, installējiet Nano (komandu apk pievienot nano), lai varētu rediģēt konfigurācijas failus un saglabāt tos, nospiežot CTRL+X, apstipriniet un izejiet.

Bet es izmantoju Vim:

vim /etc/passwd

Manas pirmās rindas izskatījās šādi:

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

Lai fish padarītu par noklusējuma šelli, mainīsim šo rindu uz sekojošo:

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

Tad saglabāsim failu un iziesim.

Es esmu pārliecināts, ka ir labs veids, kā mainīt ceļu uz šelli, lai to varētu izmantot uzreiz. Bet es to nezinu, tāpēc iesaku atgriezties aplikāciju pārlūkā, piespiedu kārtā iziet no šellas un drošības labad izslēgt un restartēt iPad vai iPhone. Atkal atveriet iSH, un tagad, izņemot ziņu "Laipni lūdzam Alpine!" un informāciju par palaišanu ar apk, jūs redzēsiet standarta fish logona sveiciena ziņu: Laipni lūdzam fish, draudzīgajā interaktīvajā apakšprogrammā. Jā!

Izpildām Linux komandrindas interfeisu iOS

Python un pip konfigurācija

Es nolēmu pievienot Python (versiju 3.x), ne tikai tāpēc, lai rakstītu kodu, bet arī tāpēc, ka es izmantoju vairākas programmas Python. Instalēsim to:

apk add python3

Lai gan Python 2.x ir novecojis, to joprojām var instalēt:

apk add python

Instalēsim Python pakotņu pārvaldnieku, ko sauc par pip un setuptools:

python3 -m ensurepip --default-pip

Lai instalētu un konfigurētu pakotņu pārvaldnieku, būs nepieciešams nedaudz laika, tāpēc vienkārši uzgaidiet.

Pēc tam varēsiet lejupielādēt failu pārsūtīšanas rīku curl:

apk add curl

Lasām rokasgrāmatas

Fish izmanto iebūvētu automātisko pabeigšanu, kas balstās uz man-lapām. Tāpat kā citi komandrindas lietotāji, es izmantoju rokasgrāmatu man, bet Alpine tas nav instalēts. Tāpēc es to instalēju ar termināla lapojumu less:

apk add man man-pages less less-doc

Papildus man es izmantoju izcilo projektu tldr pages, kas nodrošina vienkāršotas un sabiedrībā pārvaldītas man-lapas.

Es to instalēju, izmantojot pip:

pip install tldr

Komanda tldr savienojas ar internetu, lai iegūtu lapas, kad saskaras ar pieprasījumu par jaunu lapu. Ja jums ir nepieciešams, lai uzzinātu, kā lietot komandu, varat uzrakstīt kaut ko līdzīgu tldr curl un saņemt aprakstu vienkāršā angļu valodā un labus izmantošanas piemērus komandas lietošanai.

Protams, visu šo instalēšanas darbu var automatizēt, izmantojot dotfiles vai instalācijas skriptu, taču patiesībā tas nav ļoti saskaņā ar Alpine ideoloģiju — minimālas instalācijas konfigurēšana tieši savām vajadzībām. Turklāt tas aizņēma tik daudz laika, vai ne?

Papildu informācija

iSH Viki ir lapa "what works" ar ziņojumiem, kuri pakotnes šobrīd darbojas. Starp citu, izskatās, ka npm šobrīd nedarbojas.

Vēl vienā viki lapā tiek skaidrots, kā piekļūt iSH failiem no iOS Files lietotnes. Tas ir viens no veidiem, kā var pārvietot un kopēt failus.

Varat arī instalēt Git (jā! apk add git ) un nosūtīt savu darbu uz attālo repozitoriju vai pārsūtīt to uz serveri, izmantojot SSH. Un, protams, varat lejupielādēt un palaist jebkuru daudzveidīgu open-source projektu no GitHub.

Vairāk par iSH var uzzināt pēc šīm saitēm:

Reklāmas tiesībās

VDS piedāvā virtuāli serveri uz Linux vai Windows. Izmantojam tikai zīmolu aparatūru, labākā sava veida serveru vadības paneļa pašizstrādes un viena no labākajām datu centriem Krievijā un ES. Pasteidzieties pasūtīt!

Izpildām Linux komandrindas interfeisu iOS

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster