Linux komandrindas palaiÅ”ana operētājsistēmā iOS

Linux komandrindas palaiÅ”ana operētājsistēmā iOS

Vai zinājāt, ka varat palaist Linux komandrindu iOS ierÄ«cē? JÅ«s varētu jautāt: "Kāpēc man vajadzētu izmantot Ä«sziņu sÅ«tÄ«Å”anas lietotnes savā iPhone?" GodÄ«gs jautājums. Bet, ja lasāt vietni Opensource.com, jÅ«s droÅ”i vien zināt atbildi: Linux lietotāji vēlas to izmantot jebkurā ierÄ«cē un vēlas to pielāgot paÅ”i.

Bet visvairāk viņi alkst atrisināt sarežģītas problēmas.

Man ir septiņus gadus vecs iPad 2 Mini, kas joprojām ir diezgan labs e-grāmatu lasÄ«Å”anai un citiem uzdevumiem. Tomēr es arÄ« vēlos to izmantot, lai piekļūtu lietojumprogrammu komandrindai ar savu programmu un skriptu komplektu, bez kuriem es nevaru strādāt. Man ir vajadzÄ«ga vide, pie kuras esmu pieradusi, kā arÄ« mana standarta izstrādes vide. Un lÅ«k, kā man izdevās to sasniegt.

Savienojuma izveide ar tastatūru

Darbs ar komandrindu programmÄ“Å”anai, izmantojot tālruņa vai planÅ”etdatora ekrāna tastatÅ«ru, ir diezgan neērts. Es iesaku pievienot ārējo tastatÅ«ru, izmantojot Bluetooth, vai arÄ« izmantot kameras savienojuma adapteri, lai pievienotu vadu tastatÅ«ru (es izvēlējos pēdējo). Savienojot Kinesis Advantage dalÄ«to tastatÅ«ru ar iPhone 6, jÅ«s iegÅ«stat dÄ«vainu ierÄ«ci, kas atgādina korporatÄ«vā kiberdeka no klasikas lomu spēle Shadowrun.

Apvalka instalÄ“Å”ana operētājsistēmā iOS

Lai palaistu pilna funkcionalitātes Linux sistēmu operētājsistēmā iOS, ir divas iespējas:

  • DroÅ”ais apvalks (SSH), kas savienots ar Linux datoru
  • Virtuālās sistēmas palaiÅ”ana, izmantojot Alpine Linux ar iSH, kas ir atvērtā koda, bet jāinstalē, izmantojot Apple patentēto lietojumprogrammu TestFlight

Kā alternatÄ«vu ir divas atvērtā koda termināļa emulatora lietojumprogrammas, kas nodroÅ”ina iespēju strādāt ar atvērtā koda rÄ«kiem ierobežotā vidē. Å Ä« ir visnepatÄ«kamākā opcija ā€” patiesÄ«bā Ŕādi jÅ«s darbināt Linux rÄ«kus, nevis Linux. Strādājot ar Ŕīm lietojumprogrammām, pastāv nopietni funkciju ierobežojumi, taču jÅ«s saņemat daļēju komandrindas funkcionalitāti.

Pirms pāriet uz sarežģītiem risinājumiem, es apskatīŔu vienkārŔāko metodi.

1. iespēja: smilÅ”u kastes apvalks

Viens no vienkārŔākajiem veidiem ir instalēt iOS lietotni LibTerm. Tā atvērtais avots smilÅ”kastes komandu apvalks ar atbalstu vairāk nekā 80 komandām par nulli dolāriem. Tas ir komplektā ar Python 2.7, Python 3.7, Lua, C, Clang un daudz ko citu.

Tam ir aptuveni tāda pati funkcionalitāte kā ellē, ko izstrādātāji aprakstÄ«juÅ”i kā ā€œekrāna ievades platformas testa lietotāja interfeisuā€. a-Shell avoti ir ievietoti atvērtā koda, tas ir aktÄ«vā izstrādes stadijā, nodroÅ”ina piekļuvi failu sistēmai un nāk ar Lua, Python, Tex, Vim, JavaScript, C un C++, kā arÄ« Clang un Clang++. Tas pat ļauj pip instalēt Python pakotnes.

2. iespēja: SSH

Vēl viens solis, kas jāveic, lai lejupielādētu lietotni, ir SSH klienta iestatÄ«Å”ana. Jau ilgu laiku mēs esam varējuÅ”i izmantot jebkuru no daudzajām SSH klientu programmām operētājsistēmai iOS, lai izveidotu savienojumu ar serveri, kurā darbojas Linux vai BSD. SSH izmantoÅ”anas priekÅ”rocÄ«ba ir tā, ka serveris var palaist jebkuru izplatÄ«Å”anu ar jebkuru programmatÅ«ru. JÅ«s strādājat attālināti, un jÅ«su darba rezultāti tiek vienkārÅ”i pārsÅ«tÄ«ti uz jÅ«su iOS ierÄ«ces termināļa emulatoru.

MirkŔķināŔanas apvalks ir populāra maksas SSH lietojumprogramma atvērtā koda. Ja ignorējat ierÄ«ces mazo ekrānu, Ŕīs programmatÅ«ras izmantoÅ”ana ir lÄ«dzÄ«ga savienojuma izveidei ar serveri, izmantojot jebkuru citu komandrindu. Blink Terminal izskatās lieliski, tajā ir daudz gatavu motÄ«vu un iespēja izveidot savu, tostarp iespēja pielāgot un pievienot jaunus fontus.

3. iespēja: palaidiet Linux

SSH izmantoÅ”ana, lai izveidotu savienojumu ar Linux serveri, ir lielisks veids, kā piekļūt komandrindai, taču tam ir nepiecieÅ”ams ārējs serveris un tÄ«kla savienojums. Tas nav lielākais Ŕķērslis, taču to nevar pilnÄ«bā ignorēt, tāpēc, iespējams, vajadzēs palaist Linux bez servera.

Ja tas ir jÅ«su gadÄ«jums, jums bÅ«s jāsper viens solis tālāk. TestFlight ir patentēts pakalpojums izstrādātu lietojumprogrammu instalÄ“Å”anai pat pirms to publicÄ“Å”anas Apple App Store. Varat instalēt lietotni TestFlight no veikala App Store un pēc tam izmantot testa lietotnes. TestFlight lietotnes ļauj ierobežotam skaitam beta testētāju (parasti lÄ«dz 10 000) ar tām strādāt ierobežotu laiku. Lai lejupielādētu testa lietojumprogrammu, no ierÄ«ces ir jāatver saite, kas parasti atrodas testa lietojumprogrammas izstrādātāja vietnē.

Darbojas Alpine Linux ar iSH

ISH ir atvērtā pirmkoda TestFlight lietojumprogramma, kas palaiž virtuālo maŔīnu ar gatavu izplatÄ«Å”anu Alpine Linux (ar nelielu piepÅ«li varat palaist citus izplatÄ«jumus).

SvarÄ«ga iezÄ«me: eksperimentāls pielietojums. Tā kā iSH paÅ”laik ir testa lietojumprogramma, negaidiet pastāvÄ«gu un uzticamu darbÄ«bu. TestFlight pieteikumu laiks ir ierobežots. Mana paÅ”reizējā versija ilgs tikai 60 dienas. Tas nozÄ«mē, ka pēc 60 dienām es tikÅ”u izslēgts un man bÅ«s atkārtoti jāpievienojas nākamajai iSH testu kārtai. Turklāt es zaudÄ“Å”u visus savus failus, ja vien tos neeksportÄ“Å”u, izmantojot lietotni Files operētājsistēmā iOS, vai kopÄ“Å”u tos uz Git resursdatoru vai izmantojot SSH. Citiem vārdiem sakot: Negaidiet, ka tas turpinās darboties! Nelieciet sistēmā neko sev svarÄ«gu! Atgriezieties citā vietā!

iSH instalēŔana

Sāciet ar instalÄ“Å”anu TestFlight no App Store. Pēc tam instalējiet iSH, saņēma instalÄ“Å”anas saiti no pieteikuma vietnes. Ir vēl viena instalÄ“Å”anas metode, izmantojot AltStore, bet es to neesmu mēģinājis. Vai arÄ«, ja jums ir apmaksāts izstrādātāja konts, varat lejupielādēt iSH repozitoriju no GitHub un pats to instalēt.

Izmantojot saiti, TestFlight instalēs iSH lietojumprogrammu jūsu ierīcē. Tāpat kā ar jebkuru citu programmu, ekrānā parādīsies ikona.

PakeŔu pārvaldība

iSH izmanto x86 emulatoru ar Alpine Linux. Alpine ir mazs distro, kura izmērs ir mazāks par 5 MB. Å Ä« bija mana pirmā reize, kad strādāju ar Alpine, tāpēc es domāju, ka minimālisms bÅ«s kaitinoÅ”s, bet patiesÄ«bā man tas ļoti patika.

Linux komandrindas palaiÅ”ana operētājsistēmā iOS
Alpine izmanto pakotņu pārvaldnieku APK, kas ir vieglāk nekā pat apt vai pacman.

Kā instalēt pakotni:

apk add package

Kā noņemt iepakojumu:

apk del package

Kā atrast citas komandas un informāciju:

apk --help

PakeŔu pārvaldnieka atjauninājums:

apk update
apk upgrade

Teksta redaktora instalēŔana

Alpine noklusējuma teksta redaktors ir Vi, bet es dodu priekÅ”roku Vim, tāpēc es to instalēju:

apk add vim

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

Apvalka maiņa

Es nezinu kā jums, bet man vajadzēja zivju apvalks. Citi cilvēki dod priekÅ”roku Stipri iesist vai Zsh. Tomēr Alpine izmanto pelnus! Pelni ir Dash apvalka dakÅ”a, kas pati par sevi ir oriÄ£inālā oÅ”a dakÅ”a vai Almquist apvalks. Viņas prioritāte ir ātrums. Es nolēmu nomainÄ«t ātrumu pret iebÅ«vēto automātisko pabeigÅ”anu, krāsām, Vim taustiņu vadÄ«klām un sintakses izcelÅ”anu, kas man patÄ«k un ko pazÄ«stu no zivju čaumalas.

Zivju uzstādīŔana:

apk add fish

Ja jums ir nepiecieÅ”ams Bash ar tā automātisko pabeigÅ”anu un rokasgrāmatas lapām, instalējiet tās:

apk add bash bash-doc bash-completion

Alpine minimālistiskā ideoloÄ£ija parasti nozÄ«mē, ka dažas programmas, kas ir iepakotas citos izplatÄ«jumos, tiks 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.

Papildinformāciju par Bash instalÄ“Å”anu skatiet Ŕī apmācÄ«ba.

Noklusējuma apvalka maiņa

Pēc zivju instalÄ“Å”anas uz to var Ä«slaicÄ«gi pārslēgties, ievadot fish un iedziļināties čaulā. Bet es gribu padarÄ«t zivis par noklusējuma apvalku un komandu chsh, ko izmantoju citos izplatÄ«jumos, nedarbojās.

Vispirms mēs uzzinām, kur zivis ir uzstādītas:

which fish

Lūk, ko es saņēmu:

/usr/bin/fish

Pēc tam mainiet pieteikÅ”anās čaulu uz Fish. Varat izmantot jebkuru jums ērtu redaktoru. Ja esat iesācējs, instalējiet Nano (ar komandu apk add nano), lai varētu rediģēt konfigurācijas failus un saglabāt tos, izmantojot taustiņu kombināciju CTRL+X, apstipriniet un izejiet.

Bet es izmantoju Vim:

vim /etc/passwd

Mana pirmā rinda bija Ŕāda:

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

Lai zivis padarÄ«tu par noklusējuma apvalku, mainiet Å”o rindiņu uz Ŕādu:

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

Pēc tam saglabājiet failu un izejiet.

Esmu pārliecināts, ka ir labs veids, kā mainÄ«t ceļu uz apvalku, lai to varētu izmantot uzreiz. Bet es to nezinu, tāpēc iesaku atgriezties lietojumprogrammas pārlÅ«kprogrammā, piespiedu kārtā iziet no čaulas un, lai bÅ«tu droŔībā, izslēdziet un restartējiet savu iPad vai iPhone. Atveriet iSH vēlreiz un tÅ«lÄ«t, papildus ziņojumam ā€œLaipni lÅ«dzam Alpu!ā€ un informāciju par palaiÅ”anu no apk, jÅ«s redzēsit standarta zivju pieteikÅ”anās sveiciena ziņojumu: Laipni lÅ«dzam zivÄ«s, draudzÄ«gajā interaktÄ«vajā apvalkā. Urrā!

Linux komandrindas palaiÅ”ana operētājsistēmā iOS

Python un pip iestatīŔana

Es nolēmu pievienot Pitons (versija 3.x), ne tikai koda rakstÄ«Å”anai, bet arÄ« tāpēc, ka izmantoju vairākas Python programmas. Instalēsim to:

apk add python3

Lai gan Python 2.x ir novecojis, varat to instalēt:

apk add python

Instalēsim Python pakotņu pārvaldnieku ar nosaukumu pip and iestatÄ«Å”anas rÄ«ki:

python3 -m ensurepip --default-pip

PakeÅ”u pārvaldnieka instalÄ“Å”ana un konfigurÄ“Å”ana prasÄ«s kādu laiku, tāpēc vienkārÅ”i pagaidiet.

Pēc tam varat lejupielādēt rÄ«ku failu pārsÅ«tÄ«Å”anai tÄ«klā cirtot:

apk add curl

Rokasgrāmatu lasīŔana

Zivis izmanto iebÅ«vētu automātisko pabeigÅ”anu, kuras pamatā ir man lapas. Tāpat kā citi komandrindas lietotāji, es izmantoju rokasgrāmatu man, bet tas nav uzstādÄ«ts Alpine. Tāpēc es to instalēju ar termināļa peidžeri mazāk:

apk add man man-pages less less-doc

Papildus vÄ«rietim es izmantoju lielisku tldr lapu projekts, kas nodroÅ”ina vienkārÅ”otas un uz kopienu orientētas rokasgrāmatas lapas.

Es to instalēju, izmantojot pip:

pip install tldr

Komanda tldr izveido savienojumu ar tÄ«mekli, lai izgÅ«tu lapas, kad tiek saņemts pieprasÄ«jums pēc jaunas lapas. Ja jums jāzina, kā lietot komandu, varat uzrakstÄ«t kaut ko lÄ«dzÄ«gu tldr curl un saņemiet aprakstu vienkārŔā angļu valodā un labus komandas lietoÅ”anas piemērus.

Protams, visu Å”o uzstādÄ«Å”anas darbu var automatizēt, izmantojot punktu faili vai instalācijas skripts, bet patiesÄ«bā tas Ä«sti neatbilst Alpine ideoloÄ£ijai - minimālas instalācijas pielāgoÅ”ana precÄ«zi atbilstoÅ”i jÅ«su vajadzÄ«bām. Turklāt tas prasÄ«ja tik ilgu laiku, vai ne?

papildu informācija

iSH Wiki ir lapa "kas darbojas" ar atskaitēm par to, kuras pakotnes paÅ”laik darbojas. Starp citu, izskatās npm Å”obrÄ«d nedarbojas.

Citā wiki lapā ir paskaidrots, kā piekļūt iSH failiem no iOS lietotnes Faili. Šis ir viens no veidiem, kā varat pārvietot un kopēt failus.

Varat arī instalēt Git (jā! apk add git ) un pārsūtiet savu darbu uz attālo repozitoriju vai pārsūtiet to uz serveri, izmantojot SSH. Un, protams, no GitHub varat lejupielādēt un palaist jebkuru lielisku atvērtā pirmkoda projektu.

PlaŔāku informāciju par iSH var atrast Å”ajās saitēs:

Par reklāmas tiesībām

Vdsina piedāvājumus virtuālie serveri operētājsistēmā Linux vai Windows. Mēs izmantojam tikai firmas aprīkojums, labākais sava veida servera vadības panelis un viens no labākajiem datu centriem Krievijā un ES. Steidzieties pasūtīt!

Linux komandrindas palaiÅ”ana operētājsistēmā iOS

Avots: www.habr.com

Pievieno komentāru