Käivitame Linuxi käsuviiba iOS-is

Käivitame Linuxi käsuviiba iOS-is

Kas teadsite, et saate Linuxi käsurea käivitada iOS-seadmest? Võib-olla küsite: „Miks peaksin iPhone'is tekstirakendusi kasutama?“ Õiglane küsimus. Kuid kui loed Opensource.com, siis ilmselt tead selle vastust: Linuxi kasutajad soovivad, et nad saaksid sellega töötada igas seadmes ja soovivad kasutada oma seadistusi.

Kuid kõige rohkem soovivad nad keeruliste ülesannete lahendamist.

Mul on seitsme aasta vanune iPad 2 Mini, mis sobib ikka veel hästi e-raamatute lugemiseks ja muude ülesannete jaoks. Siiski tahan kasutada seda ka rakenduste käsureale juurdepääsuks koos oma programmide ja skriptide kogumiga, ilma milleta ei saa ma töötada. Mul on vaja keskkonda, millega olen harjunud, ja oma tavapärast arenduskeskkonda. Nii sain ma seda saavutada.

Ühendamine klaviatuuriga

Käesoleval või tahvelarvuti ekraanil klaviatuuriga töötamine on käsureaga programmeerimiseks üsna ebamugav. Soovitan ühendada välist klaviatuuri, kas Bluetoothi kaudu või kasutada kaameraliidese adapterit, et ühendada juhtmevaba klaviatuur (valisin viimase). Kui ühendada jaotatud klaviatuur Kinesis Advantage iPhone 6-ga, saab kummaline seade, mis meenutab ettevõtte küberdeki klassikalisest rollimängust Shadowrun.

Kihla iOS-ile shell

Täisfunktsionaalse Linuxi süsteemi käivitamiseks iOS-is on kaks võimalust:

  • Secure Shell (SSH), mis on ühendatud Linuxi arvutiga
  • Virtuaalsüsteemi käivitamine Alpine Linuxi abil iSH, mis on avatud lähtekoodiga, kuid tuleb installida Apple'i patenteeritud rakenduse TestFlight kaudu

Alternatiivina on olemas kaks avatud lähtekoodiga terminali emulaatorirakendust, mis võimaldavad avatud lähtekoodiga tööriistade kasutamist piiratud keskkonnas. See on kõige lihtsustatud variant — tegelikult ei käivita te Linuxit, vaid Linuxi tööriistu. Nende rakendustega töötamisel on piiratud võimalused, kuid saate osalise käsureafunktsionaalsuse.

Enne keerukate lahenduste käsitlemist vaatan lihtsama viisi.

Variant 1: shell „liivakastis“

Üks lihtsamaid viise on installida iOS-i rakendus LibTerm. See on avatud lähtekoodiga Sande tööriist, mis toetab rohkem kui 80 käsku, maksab null dollarit. Sellega koos tulevad Python 2.7, Python 3.7, Lua, C, Clang ja palju muud.

Umbes sama funktsionaalsusega on a-Shell, mida arendajad kirjeldavad kui "katse kasutajaliidest sisendi ekraaniga platvormil". a-Shelli algkood on avalikult kätte saadav, avatud lähtekoodiga, see on aktiivses arenduses, pakub juurdepääsu failisüsteemile ning tuleb koos Lua, Python, Tex, Vim, JavaScript, C ja C++ koos Clang ja Clang++. See võimaldab ka Python pakette pip abil installida.

Valik 2: SSH

Teine samm edasi rakenduse allalaadimise võrreldes on SSH-klientide seadistamine. Oleme juba pikka aega saanud kasutada paljusid SSH-kliente iOS-i jaoks, et ühendada end serveriga, kus töötab Linux või BSD. SSH kasutamise eeliseks on see, et serveris võib töötada igasugune distributsioon koos igasuguse tarkvaraga. Töö käib kaugjuhtimise teel ja töö tulemused edastatakse lihtsalt terminali emulaatorisse iOS-seadmes.

Blink shell on populaarne tasuline SSH-rakendus avatud lähtekoodiga. Kui mitte arvestada seadme väikest ekraani, siis tundub selle tarkvara kasutamine serveriga ühendust võtmise asemel sarnasena igasuguseks muuks käsureaks. Blink terminal on suurepäraselt kujundatud, sisaldab palju valmis teemasid ning võimaldab luua ka omasid, sealhulgas uute fontide seadistamise ja lisamise võimalust.

Valik 3: Linuxi käitamine

SSH kasutamine Linuxi serveriga ühenduse saamiseks on suurepärane võimalus käsureale juurdepääsuks, kuid selleks on vajalik väline server ja võrguühendus. See ei ole kõige suurem takistus, kuid seda ei saa täielikult ignoreerida, seega võib teile olla vajalik töötada Linuxiga ilma serverita.

Kui see on teie juhtum, peate astuma veel ühe sammu edasi. TestFlight — see on patenteeritud teenus arendatavate rakenduste installimiseks enne nende avalikustamist Apple App Store'is. Rakenduse TestFlight saab installida App Store'ist ning seejärel saab kasutada testrakendusi. TestFlightis olevad rakendused võimaldavad piiratud ajaks töötada piiratud arvu beetatestijatega (tavaliselt kuni 10 000). Testrakenduse allalaadimiseks peab minema oma seadmes lingile, mis asub tavaliselt rakenduse arendaja veebisaidil.

Alpine Linuxi käivitamine iSH-ga

iSH — see on avatud lähtekoodiga rakendus TestFlight, mis käivitab virtuaalse masina koos valmiskujul väljaande Alpine Linux (veidi vaeva näha, on võimalik käivitada ka teisi väljaandeid).

Oluline tunnusjoon: rakendus on katsetamisfaasis. Kuna iSH on praegu katserakendus, siis ei tasu oodata pidevat ja usaldusväärset tööd. TestFlighti rakendused on ajaliselt piiratud. Minu praegune versioon töötab ainult 60 päeva. See tähendab, et 60 päeva pärast ma eemaldatakse ja pean uuesti liituma järgmise iSH testimise etapiga. Veelgi enam, ma kaotan kõik oma failid, kui ma ei ekspordi neid Files rakenduse kaudu iOS-is või ei kopeeri neid Git-hostile või SSH kaudu. Teisisõnu: Ärge loodke, et see kõik jätkab töötamist! Ärge paigutage süsteemi midagi olulist! Tehke varukoopia eraldi kohta!

iSH installimine

Alustage installimisega TestFlight App Store'ist. Seejärel installige iSH, saades installi lingi rakenduse veebisaidilt. On veel üks installimismeetod AltStore'i kaudu, kuid ma ei ole seda proovinud. Või kui teil on tasuline arendaja konto, võite alla laadida iSH repositooriumi GitHubist ja installida selle ise.

TestFlighti lingi kaudu installib iSH rakenduse teie seadmesse. Nagu iga teise rakenduse puhul, ilmub ekraanile ikoon.

Pakettide haldamine

iSH käitub x86 emulaatorina koos Alpine Linuxiga. Alpine on pisike väljaanne, mille suurus on vähem kui 5 MB. Ma töötasin esmakordselt Alpine'iga, seega arvasin, et selline minimalism võib olla ärritav, kuid tegelikult meeldis mulle see väga.

Käivitame Linuxi käsuviiba iOS-is
Alpine's kasutatakse paketihaldurit apk, mis on lihtsam isegi kui apt või pacman.

Kuidas paketti installida:

apk add package

Kuidas paketti eemaldada:

apk del package

Kuidas teada saada muid käske ja teavet:

apk --help

Paketihalduri uuendamine:

apk update
apk upgrade

Tekstiredaktori installimine

Alpine'i vaikimisi tekstiredaktor on Vi, kuid ma eelistan Vim'i, seetõttu installisin selle:

apk add vim

Soovi korral on võimalik installida Nano või Emacs.

Käivitamistüübi vahetamine

Mina ei tea, kuidas teie, aga mulle oli vajalik fish shell. Teised eelistavad Bash või Zsh. Kuid Alpine'is kasutatakse ash'i! Ash on Dash'i fork, mis on omakorda originaalse ash'i fork või Almquist shell. Selle prioriteet on kiirus. Otsustasin kiirusest loobuda, et saada sisse ehitatud automaatne täiendamine, värvid, Vim'i klahvihaldus ja süntaksihighlighting, mida ma armastan ja tunnen fish shell'is.

Fish'i installimine:

apk add fish

Kui vajate Bash'i koos selle automaatse täiendamise ja man-lehtedega, siis installige need:

apk add bash bash-doc bash-completion

Alpine'i minimalistlik ideoloogia tähendab tavaliselt, et mõned programmid, mis teistes distributsioonides on ühe pakina, jagunevad mitmeks väiksemaks paketiks. See tähendab ka, et saate oma süsteemi häälestada ja vähendada selle suurust just nii, nagu soovite.

Bashi installimise kohta leiate rohkem teavet sellest õpetusest.

Vaikimisi shell'i vahetamine

Pärast fish'i installimist saate ajutiselt sellele üle minna, sisestades fish ja minnes shell'i. Kuid ma soovin muuta fish'i vaikimisi shell'iks, ja käsk chsh, mida olen kasutanud teistes distributsioonides, ei töötanud.

Esmalt saame teada, kuhu fish paigaldati:

which fish

Siin, mida mina sain:

/usr/bin/fish

Seejärel muudame login shell'i fish'iks. Võite kasutada mis tahes mugavat redaktorit. Kui olete algaja, siis installige Nano (käsk apk add nano), et saaksite konfigureerimisfaile redigeerida ja need CTRL+X abil salvestada, kinnitada ja väljastuda.

Aga mina kasutasin Vim'i:

vim /etc/passwd

Minu esimene rida oli selline:

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

Kuna fish'i vaikimisi shell'iks tegemiseks peate selle rea muutma järgmisele:

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

Seejärel salvestame faili ja väljastume.

Olen kindel, et on olemas hea viis shell'i teed muuta, et seda saaks kohe kasutada. Kuid ma ei tea seda, seega soovitan tagasi minna rakenduste brauserisse, välja logida ja usaldusväärsuse tagamiseks välja lülitada ja iPadi või iPhone'i taaskäivitada. Avage taas iSH ja nüüd, peale "Tere tulemast Alpine'i!" ja teabe apk käivitamise kohta, näete tavapärast fish'i sisselogimise tervitusmööndust: Tere tulemast fishi, sõbralikkuse interaktiivne shell. Jeii!

Käivitame Linuxi käsuviiba iOS-is

Python'i ja pip'i seadistamine

Otsustasin lisada Python (versioon 3.x), mitte ainult koodi kirjutamiseks, vaid ka seetõttu, et kasutan mitmeid Python'i programme. Paigaldame selle:

apk add python3

Kuigi Python 2.x on aegunud, saab ka selle paigaldada:

apk add python

Paigaldame Python'i pakihalduri nimega pip ja setuptools:

python3 -m ensurepip --default-pip

Pakihalduri paigaldamine ja seadistamine võtab natuke aega, nii et oodake lihtsalt.

Seejärel saab alla laadida failide edastamise tööriista curl:

apk add curl

Lugedes manuaale

Fish kasutab sisseehitatud automaatset täiendamist man-lehtede põhjal. Nagu kõik teised käsurida kasutajad, kasutan ma manuaali man, kuid Alpine ei ole see installitud. Seetõttu paigaldasin selle terminali lehekirjaga less:

apk add man man-pages less less-doc

Lisaks man'ile kasutan ma suurepärast projekt tldr lehed, mis pakub lihtsustatud ja kogukonna poolt juhitavaid man-lehti.

Paigaldasin selle pip'i abil:

pip install tldr

Meeskond tldr ühendab veebiga, et saada lehti, kui see kohtub uue lehe päringuga. Kui soovite teada, kuidas käsk töötab, saate kirjutada midagi sellist tldr curl ja saada lihtsas inglise keeles kirjelduse koos headest näidetest käsu kasutamise kohta.

Muidugi, kogu see paigaldustöö saab automatiseerida dotfiles või paigaldus skripti abil, kuid tegelikult ei vasta see palju Alpine'i ideoloogiale - minimaalne paigaldus selgelt oma vajaduste järgi. Lisaks, see ju võttis nii palju aega, eks?

Lisainformatsioon

iSH Vikis on leht "what works" aruannetega, millised paketid praegu töötavad. Üksikasjalikult, tundub, et npm ei tööta praegu.

Teisel viki lehel tuleb selguseks, kuidas iSH faile juurde pääseda iOS Files rakenduse kaudu. See on üks viis, kuidas faile liigutada ja kopeerida.

Saab ka installida Git'i (jah! apk add git ) ja saata oma töö kaugrepositooriumisse või edastada seda serverisse SSH kaudu. Ja muidugi, saab alla laadida ja käivitada palju suurepäraseid open-source projekte GitHub'ist.

Täpsemalt iSH kohta saab lugeda nende linkide kaudu:

Reklaami õigustes

VDS pakub virtuaalsed serverid Linuxil või Windowsil. Kasutame ainult brändivarustust, parim oma klassi serveri haldamise paneel, mille oleme ise arendanud, ja mõned parimad andikeskused Venemaal ja ELis. Kiirustage tellima!

Käivitame Linuxi käsuviiba iOS-is

Allikas: habr.com

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster