Linux komandų eilutės paleidimas iOS

Linux komandų eilutės paleidimas iOS

Ar žinojote, kad „iOS“ įrenginyje galite paleisti „Linux“ komandų eilutę? Galbūt klausiate: „Kodėl turėčiau naudoti žinučių siuntimo programas savo iPhone? Teisingas klausimas. Bet jei skaitote Opensource.com, tikriausiai žinote atsakymą: „Linux“ vartotojai nori turėti galimybę jį naudoti bet kuriame įrenginyje ir nori patys jį pritaikyti.

Tačiau labiausiai jie trokšta išspręsti sudėtingas problemas.

Turiu septynerių metų senumo iPad 2 Mini, kuris vis dar gana geras elektroninėms knygoms skaityti ir kitoms užduotims atlikti. Tačiau taip pat noriu jį naudoti norėdamas pasiekti programų komandų eilutę su savo programų ir scenarijų rinkiniu, be kurių negaliu dirbti. Man reikia aplinkos, prie kurios esu pripratęs, ir standartinės kūrimo aplinkos. Ir štai kaip man pavyko tai pasiekti.

Prisijungimas prie klaviatūros

Darbas su komandine eilute programuojant per telefono ar planšetinio kompiuterio ekraninę klaviatūrą yra gana nepatogus. Rekomenduoju prijungti išorinę klaviatūrą arba per "Bluetooth", arba naudoti kameros prijungimo adapterį laidinei klaviatūrai prijungti (aš pasirinkau pastarąją). Kai prijungiate Kinesis Advantage padalintą klaviatūrą prie iPhone 6, gaunate keistą įrenginį, kuris primena įmonės kibernetinis dekas iš klasikos žaidimas vaidmenimis Shadowrun.

Apvalkalo diegimas „iOS“.

Norėdami paleisti visas funkcijas turinčią Linux sistemą iOS, yra dvi parinktys:

  • Saugus apvalkalas (SSH), prijungtas prie „Linux“ kompiuterio
  • Virtualios sistemos paleidimas naudojant „Alpine Linux“ su „iSH“, kuris yra atvirojo kodo, bet turi būti įdiegtas naudojant „Apple“ patentuotą „TestFlight“ programą

Kaip alternatyva, yra dvi atvirojo kodo terminalo emuliatoriaus programos, kurios suteikia galimybę dirbti su atvirojo kodo įrankiais ribotoje aplinkoje. Tai yra labiausiai apleista parinktis – iš tikrųjų taip paleidžiate „Linux“ įrankius, o ne „Linux“. Dirbant su šiomis programomis yra didelių funkcijų apribojimų, tačiau jūs gaunate dalines komandinės eilutės funkcijas.

Prieš pereidamas prie sudėtingų sprendimų, pažvelgsiu į paprasčiausią metodą.

1 parinktis: smėlio dėžės apvalkalas

Vienas iš paprasčiausių būdų yra įdiegti „iOS“ programą LibTerm. Jis atviro kodo smėlio dėžės komandų apvalkalas su palaikymu daugiau nei 80 komandų už nulį dolerių. Jis pateikiamas su Python 2.7, Python 3.7, Lua, C, Clang ir daug daugiau.

Turi maždaug tas pačias funkcijas kaip pragaras, kurį kūrėjai apibūdino kaip „bandomąją ekrano įvesties platformos vartotojo sąsają“. a-Shell šaltiniai yra paskelbti atviro kodo, jis aktyviai kuriamas, suteikia prieigą prie failų sistemos ir yra su Lua, Python, Tex, Vim, JavaScript, C ir C++, taip pat Clang ir Clang++. Tai netgi leidžia įdiegti „Python“ paketus.

2 variantas: SSH

Kitas žingsnis atsisiunčiant programą yra SSH kliento nustatymas. Jau seniai galime naudoti bet kurią iš daugelio SSH kliento programėlių, skirtų iOS, prisijungti prie serverio, kuriame veikia Linux arba BSD. SSH naudojimo pranašumas yra tas, kad serveris gali paleisti bet kokį platinimą su bet kokia programine įranga. Dirbate nuotoliniu būdu, o darbo rezultatai tiesiog perkeliami į jūsų iOS įrenginio terminalo emuliatorių.

Blink apvalkalas yra populiari mokama SSH programa atviro kodo. Jei nepaisysite mažo įrenginio ekrano, šios programinės įrangos naudojimas yra panašus į prisijungimą prie serverio per bet kurią kitą komandinę eilutę. Blink Terminal atrodo puikiai, turi daug paruoštų temų ir galimybę kurti savo, įskaitant galimybę tinkinti ir pridėti naujų šriftų.

3 parinktis: paleiskite „Linux“.

SSH naudojimas norint prisijungti prie „Linux“ serverio yra puikus būdas pasiekti komandų eilutę, tačiau tam reikia išorinio serverio ir tinklo ryšio. Tai nėra didžiausia kliūtis, tačiau jos negalima visiškai ignoruoti, todėl gali tekti paleisti Linux be serverio.

Jei tai jūsų atvejis, turėsite žengti dar vieną žingsnį. TestFlight yra patentuota paslauga, skirta įdiegti sukurtas programas dar prieš jas paskelbiant Apple App Store. Galite įdiegti „TestFlight“ programą iš „App Store“ ir naudoti bandomąsias programas. „TestFlight“ programos leidžia ribotam skaičiui beta versijos bandytojų (paprastai iki 10 000) su jomis dirbti ribotą laiką. Norėdami atsisiųsti bandomąją programą, iš savo įrenginio turite pereiti prie nuorodos, kuri paprastai yra bandomosios programos kūrėjo svetainėje.

Veikia Alpine Linux su iSH

„iSH“ yra atvirojo kodo „TestFlight“ programa, paleidžianti virtualią mašiną su paruoštu paskirstymu Alpių Linux (šiek tiek pastangų galite paleisti kitus platinimus).

Svarbi savybė: eksperimentinis pritaikymas. Kadangi iSH šiuo metu yra bandomoji programa, nesitikėkite nuolatinio ir patikimo veikimo. „TestFlight“ programų galiojimo laikas yra ribotas. Mano dabartinė konstrukcija truks tik 60 dienų. Tai reiškia, kad po 60 dienų būsiu pašalintas ir turėsiu vėl prisijungti prie kito iSH testavimo etapo. Be to, prarasiu visus failus, nebent eksportuosiu juos naudodamas „Files“ sistemoje „iOS“ arba nenukopijuosiu į „Git“ pagrindinį kompiuterį arba per SSH. Kitaip tariant: Nesitikėkite, kad tai veiks ir toliau! Nedėkite nieko jums svarbaus į sistemą! Atgal į atskirą vietą!

iSH diegimas

Pradėkite nuo diegimo TestFlight iš App Store. Tada įdiekite iSH, gavo diegimo nuorodą iš programos svetainės. Yra ir kitas diegimo būdas naudojant AltStore, bet aš jo nebandžiau. Arba, jei turite mokamą kūrėjo paskyrą, galite atsisiųsti „iSH“ saugyklą iš „GitHub“ ir patys ją įdiegti.

Naudodamas nuorodą, „TestFlight“ įdiegs „iSH“ programą jūsų įrenginyje. Kaip ir bet kurios kitos programos atveju, ekrane pasirodys piktograma.

Paketo valdymas

iSH naudoja x86 emuliatorių su Alpine Linux. „Alpine“ yra maža distribucija, kurios dydis mažesnis nei 5 MB. Tai buvo pirmas kartas, kai dirbau su Alpine, todėl maniau, kad minimalizmas erzins, bet iš tikrųjų man tai labai patiko.

Linux komandų eilutės paleidimas iOS
Alpine naudoja paketų tvarkyklę APK, o tai lengviau nei apt ar pacman.

Kaip įdiegti paketą:

apk add package

Kaip išimti paketą:

apk del package

Kaip rasti kitas komandas ir informaciją:

apk --help

Paketų tvarkyklės atnaujinimas:

apk update
apk upgrade

Įdiegti teksto rengyklę

Alpine numatytasis teksto rengyklė yra Vi, bet man labiau patinka Vim, todėl ją įdiegiau:

apk add vim

Jei norite, galite įdiegti „Nano“ arba „Emacs“.

Korpuso keitimas

Nežinau kaip tau, bet man reikėjo žuvų apvalkalas. Kiti žmonės teikia pirmenybę Bash arba Zsh. Tačiau Alpine naudoja pelenus! Ash yra Dash apvalkalo šakutė, kuri pati yra originalaus pelenų šakutė arba Almquist apvalkalas. Jos prioritetas – greitis. Nusprendžiau iškeisti greitį į integruotą automatinį užbaigimą, spalvas, Vim klavišų valdiklius ir sintaksės paryškinimą, kuriuos mėgstu ir žinau iš žuvies kiauto.

Žuvies montavimas:

apk add fish

Jei jums reikia „Bash“ su automatiniu užbaigimu ir vadovo puslapiais, įdiekite juos:

apk add bash bash-doc bash-completion

Alpine minimalistinė ideologija paprastai reiškia, kad kai kurios programos, kurios yra supakuotos į kitus platinimus, bus suskirstytos į keletą mažesnių paketų. Tai taip pat reiškia, kad galite tinkinti ir sumažinti savo sistemos dydį tiksliai taip, kaip norite.

Norėdami gauti daugiau informacijos apie „Bash“ diegimą, žr ši pamoka.

Numatytojo apvalkalo keitimas

Įdiegę žuvį galite laikinai pereiti prie jos įvedę fish ir eidamas į kiautą. Bet aš noriu, kad žuvis būtų numatytasis apvalkalas ir komanda chsh, kurį naudojau kituose platinimuose, neveikė.

Pirmiausia išsiaiškiname, kur įtaisyta žuvis:

which fish

Štai ką aš gavau:

/usr/bin/fish

Tada pakeiskite prisijungimo apvalkalą į fish. Galite naudoti bet kurį jums patogų redaktorių. Jei esate pradedantysis, įdiekite „Nano“ (su komanda apk add nano), kad galėtumėte redaguoti konfigūracijos failus ir išsaugoti juos naudodami CTRL+X, patvirtinkite ir išeikite.

Bet aš naudojau Vim:

vim /etc/passwd

Mano pirmoji eilutė buvo tokia:

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

Norėdami, kad žuvis būtų numatytasis apvalkalas, pakeiskite šią eilutę į šią:

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

Tada išsaugokite failą ir išeikite.

Esu tikras, kad yra geras būdas pakeisti kelią į apvalkalą, kad jį būtų galima naudoti iš karto. Bet aš to nežinau, todėl rekomenduoju grįžti į programos naršyklę, priverstinai išeiti iš apvalkalo ir, kad būtumėte saugūs, išjunkite ir iš naujo paleiskite iPad arba iPhone. Atidarykite iSH dar kartą ir dabar, be pranešimo „Sveiki atvykę į Alpių! ir informaciją apie paleidimą iš apk, pamatysite standartinį prisijungimo prie žuvies sveikinimo pranešimą: Sveiki atvykę į žuvį, draugišką interaktyvų apvalkalą. Sveika!

Linux komandų eilutės paleidimas iOS

Python ir pip nustatymas

Nusprendžiau pridėti Pitonas (3.x versija), ne tik kodui rašyti, bet ir todėl, kad naudoju kelias Python programas. Įdiegkime:

apk add python3

Nors Python 2.x yra pasenusi, galite ją įdiegti:

apk add python

Įdiegkime Python paketų tvarkyklę, vadinamą pip and sąrankos įrankiai:

python3 -m ensurepip --default-pip

Paketų tvarkyklės įdiegimas ir konfigūravimas užtruks šiek tiek laiko, todėl tiesiog palaukite.

Tada galite atsisiųsti įrankį failams perduoti tinkle raitytis:

apk add curl

Instrukcijų skaitymas

„Fish“ naudoja integruotą automatinį užbaigimą, pagrįstą žinyno puslapiais. Kaip ir kiti komandinės eilutės vartotojai, naudoju vadovą man, bet jis neįdiegtas Alpine. Taigi aš įdiegiau jį su terminalo gavikliu mažiau:

apk add man man-pages less less-doc

Be vyro aš naudoju puikų tldr puslapių projektas, kuriame pateikiami supaprastinti ir bendruomenei skirti vadovo puslapiai.

Įdiegiau naudodamas pip:

pip install tldr

Komanda tldr prisijungia prie žiniatinklio, kad gautų puslapius, kai susiduria su naujo puslapio užklausa. Jei jums reikia žinoti, kaip naudoti komandą, galite parašyti kažką panašaus tldr curl ir gaukite aprašymą paprasta anglų kalba bei gerus komandos naudojimo pavyzdžius.

Žinoma, visi šie montavimo darbai gali būti automatizuoti naudojant taškiniai failai arba diegimo scenarijus, bet iš tikrųjų tai nelabai atitinka Alpine ideologiją – minimalios instaliacijos pritaikymas tiksliai pagal jūsų poreikius. Be to, tai užtruko taip ilgai, ar ne?

Papildoma informacija

iSH Wiki turi puslapį "kas veikia“ su ataskaitomis, kurie paketai šiuo metu veikia. Beje, atrodo npm šiuo metu neveikia.

Kitas wiki puslapis paaiškina, kaip pasiekti iSH failus iš „iOS“ failų programos. Tai vienas iš būdų, kaip perkelti ir kopijuoti failus.

Taip pat galite įdiegti „Git“ (taip! apk add git ) ir perkelkite savo darbą į nuotolinę saugyklą arba perkelkite į serverį per SSH. Ir, žinoma, iš „GitHub“ galite atsisiųsti ir paleisti daugybę puikių atvirojo kodo projektų.

Daugiau informacijos apie iSH rasite šiose nuorodose:

Dėl reklamos teisių

Vdsina siūlo virtualūs serveriai Linux sistemoje arba Windows. Mes naudojame išskirtinai firminė įranga, geriausias savo dizaino serverio valdymo pultas ir vienas geriausių duomenų centrų Rusijoje ir ES. Paskubėkite užsisakyti!

Linux komandų eilutės paleidimas iOS

Šaltinis: www.habr.com

Добавить комментарий