Po ekzekutojmë komandën e linjës në Linux në iOS

Po ekzekutojmë komandën e linjës në Linux në iOS

A e dini se Ă«shtĂ« e mundur tĂ« lançoni njĂ« komandĂ« tĂ« linjĂ«s Linux nĂ« njĂ« pajisje iOS? Ndoshta po pyesni: "Pse duhet tĂ« pĂ«rdor aplikacione tekstuale nĂ« iPhone?" ËshtĂ« njĂ« pyetje e drejtĂ«. Por nĂ«se po lexoni Opensource.com, ndoshta e dini pĂ«rgjigjen: pĂ«rdoruesit e Linux duan tĂ« kenĂ« mundĂ«sinĂ« pĂ«r tĂ« punuar me tĂ« nĂ« çdo pajisje dhe duan tĂ« pĂ«rdorin konfigurimet e tyre personale.

Por më shumë se gjithçka, ata dëshirojnë të zgjidhin probleme të komplikuara.

Kam një iPad 2 Mini të viteve 7, i cili përsëri është mjaft i mirë për të lexuar librat elektronikë dhe për detyra të tjera. Megjithatë, unë dua ta përdor gjithashtu për qasje në komandën e aplikacioneve me setin tim të programeve dhe skripteve, pa të cilat nuk mund të punoj. Më duhet një mjedis me të cilin jam mësuar, si dhe një ambient standard zhvillimi. Dhe ja se si arrita ta realizoj këtë.

Lidhja me tastierën

Të punosh me komandën e linjës për programim përmes tastierës në ekran të telefonit ose tabletit është mjaft e papëlqyeshme. Unë rekomandoj të lidhni një tastierë të jashtme, ose përmes Bluetooth, ose duke përdorur një adapter lidhjeje të kamerës për të lidhur një tastierë me tel (unë zgjodha opsionin e dytë). Duke lidhur tastierën e ndarë Kinesis Advantage me iPhone 6, merr një aparat të çuditshëm që ngjan me një cyberdeck korporativ nga klasiku lojës role Shadowrun.

Instalimi i shell në iOS

PĂ«r tĂ« запусĐșаĐčтД njĂ« sistem tĂ« plota Linux nĂ« iOS, ka dy mundĂ«si:

  • Secure shell (SSH), i lidhur me njĂ« kompjuter me Linux
  • Korrja virtuale me Alpine Linux me iSH, e cila Ă«shtĂ« open source, por duhet tĂ« instalohet pĂ«rmes aplikacionit propriatyar TestFlight nga Apple

Si alternativë, ekzistojnë dy aplikacione-emulator të terminalit në open source që ofrojnë mundësinë për të punuar me veglat open source në një ambient të kufizuar. Kjo është opsioni më i rreptë - në të vërtetë, ju jeni duke funksionuar jo Linux, por veglat e Linux. Kur punoni me këto aplikacione, ka kufizime të rrepta të mundësive, megjithatë ju merrni një funksionalitet të pjesshëm të komandës.

Para se të kaloj në zgjidhje më të komplikuara, do të shqyrtoj mënyrën më të thjeshtë.

Opsioni 1: shell në "sandbox"

Një nga mënyrat më të thjeshta është instalimi i aplikacionit për iOS LibTerm. Kjo është shell komandash open source në "sandbox" me mbështetje për më shumë se 80 komanda pa pagesë. Vjen me Python 2.7, Python 3.7, Lua, C, Clang dhe shumë të tjera. një shShell në "Sandbox" me mbështetje për më shumë se 80 komanda, për çmimin zero dollarë. Vjen me Python 2.7, Python 3.7, Lua, C, Clang dhe shumë të tjera.

Funksionaliteti i ngjashëm ofrohet nga a-Shell, e cila përshkruhet nga zhvilluesit si "interfaci i përdoruesit për platformën me input nga ekrani." Kodet burimore të a-Shell janë të disponueshme open source, është në zhvillim aktiv, ofron qasje në sistemin e skedarëve dhe vjen me Lua, Python, Tex, Vim, JavaScript, C dhe C++, si dhe me Clang dhe Clang++. Ajo madje lejon të instaloni paketa Python përmes pip.

Opsioni 2: SSH

Një hap më përpara nga shkarkimi i aplikacionit është konfigurimi i klientit SSH. Ka shumë kohë që mund të përdorim ndonjë nga shumë aplikacione klient SSH të iOS për të lidhur me një server ku rrethohet Linux ose BSD. Avantazhi i përdorimit të SSH është se çdo distribucion mund të funksionojë në server me çdo software. Ju punoni në distancë dhe rezultatet e punës thjesht transmetohen në emulatorin e terminalit në pajisjen iOS.

Blink shell është një aplikacion SSH të njohur në open source. Nëse nuk e merrni parasysh ekranin e vogël të pajisjes, përdorimi i këtij softueri është si të lidheni me serverin përmes çdo komandë tjetër. Terminali Blink duket njëshumë, ka tema të gatshme dhe një funksion për të krijuar të reja, duke përfshirë mundësinë për të konfigurimin dhe shtimin e fonteve të reja.

Opsioni 3: Nisim Linux

Përdorimi i SSH për t'u lidhur me serverin Linux është një mënyrë e shkëlqyer për të pasur qasje në komandën e line, por kërkon një server të jashtëm dhe një lidhje rrjet. Kjo nuk është pengesa më e madhe, por nuk mund të injorohet plotësisht, kështu që ju ndoshta do të keni nevojë të punoni me Linux pa server.

Nëse ky është rasti juaj, do t'ju duhet të bëni një hap më përpara. TestFlight TestFlight është një shërbim pronësor për instalimin e aplikacioneve në zhvillim përpara se ato të publikohen në Apple App Store. Aplikacioni TestFlight mund të instalohet nga App Store dhe pastaj të përdoren aplikacione të testimit. Aplikacionet në TestFlight lejojnë një numër të kufizuar beta-testerësh (zakonisht deri në 10,000) të punojnë me ato për një periudhë të kufizuar kohe. Për të shkarkuar aplikacionin e testit, duhet të kaloni përmes një linku që zakonisht ndodhet në faqen e internetit të zhvilluesit të aplikacionit të testimit.

Nisja e Alpine Linux me iSH

iSH është një aplikacion open-source TestFlight që ekzekuton një makinë virtuale me një distro të gatshme Alpine Linux (me pak përpjekje, mund të nisen edhe distro të tjera).

Një karakteristikë e rëndësishme: aplikacioni është eksperimental. Duke qenë se iSH aktualisht është një aplikacion testimi, mos prisni që të funksionojë vazhdimisht dhe në mënyrë të besueshme. Aplikacionet TestFlight janë të kufizuara në kohë. Ndërtesa ime aktuale do të funksionojë për 60 ditë. Kjo do të thotë se pas 60 ditësh do të përjashtohem dhe do të duhet të bashkohem përsëri në fazën e ardhshme të testimit të iSH. Për më tepër, do të humbas të gjitha skedarët e mi nëse nuk i eksportoj me Files në iOS ose nuk i kopjoj në një host Git ose nëpërmjet SSH. Në fjalë të tjera: Mos prisni që gjithë kjo të vazhdojë të funksionojë! Mos vendosni në sistem asgjë të rëndësishme për ju! Bëni kopje rezervë në një vend të veçantë!

Instalimi i iSH

Filloni me instalimin TestFlight nga App Store. Më pas instaloni iSH, duke marrë një link instalimi nga faqja e aplikacionit. Ka një mënyrë tjetër instalimi duke përdorur AltStore, por nuk e kam provuar atë. Ose, nëse keni një llogari zhvilluesi të paguar, mund të shkarkoni depot iSH nga GitHub dhe ta instaloni atë vetë.

Përmes linkut TestFlight do të instaloni aplikacionin iSH në pajisjen tuaj. Ashtu si me çdo aplikacion tjetër, në ekran do të shfaqet një ikonë.

Menaxhimi i paketave

iSH ekzekuton një emulator x86 me Alpine Linux. Alpine është një distro i vogël me madhësi më pak se 5 MB. Pasi të filloja me Alpine, mendova se ky minimalizëm do të ishte irritues, por në të vërtetë më pëlqeu shumë.

Po ekzekutojmë komandën e linjës në Linux në iOS
Në Alpine përdoret menaxheri i paketave apk, i cili është më i thjeshtë se edhe apt ose pacman.

Si të instaloni një paketë:

apk add package

Si të hiqni një paketë:

apk del package

Si të mësoni komanda dhe informacione të tjera:

apk --help

Përditësimi i menaxherit të paketave:

apk update
apk upgrade

Instalimi i redaktuesit të tekstit

Redaktuesi standard i tekstit në Alpine është Vi, por unë preferoj Vim, prandaj e instalova atë:

apk add vim

Nëse dëshironi, mund të instaloni Nano ose Emacs.

Ndryshimi i shell-it

Nuk di për ju, por unë kisha nevojë për fish shell. Njerëzit e tjerë preferojnë Bash ose Zsh. Megjithatë, në Alpine përdoret ash! Ash është një fork i shell-it Dash, i cili vetë është një fork i origjinalit ash, ose Almquist shell. Prioriteti i saj është shpejtësia. Vendosa të ndërronim shpejtësinë për autocomplete-in e integruar, ngjyrat, menaxhimin e çelësave Vim dhe theksimin sintaksor, të cilat i dua dhe i njoh nga fish shell.

Instalimi i fish:

apk add fish

Nëse ju nevojitet Bash me autocomplete-in e saj dhe man-pages, atëherë instaloni ato:

apk add bash bash-doc bash-completion

Ideologjia minimale e Alpine zakonisht do të thotë që disa programe, të cilat në shpërndarje të tjera janë një paketë, do të ndahen në disa paketa më të vogla. Kjo gjithashtu do të thotë që mund të personalizoni dhe zvogëloni madhësinë e sistemit siç dëshiron.

Më shumë rreth instalimit të Bash mund të mësoni nga ky tutorial.

Ndryshimi i shell-it të parazgjedhur

Pas instalimit të fish, mund të kaloni përkohësisht në të duke shkruar fish dhe duke kaluar në shell. Por unë dua të bëj fish shell-in e parazgjedhur, dhe komanda chsh, e cila ka funksionuar në shpërndarje të tjera, nuk funksionoi.

Së pari, të mësojmë se ku është instaluar fish:

which fish

Këtu është ajo që mora unë:

/usr/bin/fish

Më pas të ndryshojmë login shell në fish. Mund të përdorni çdo redaktues që ju përshtatet. Nëse jeni fillestar, instaloni Nano (me komandën apk add nano), për të mundësuar redaktimin e skedave të konfigurimit dhe për t'i ruajtur ato me CTRL+X, konfirmoni dhe dilni.

Por unë përdora Vim:

vim /etc/passwd

Rreshti im i parë ishte kështu:

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

Për të bërë fish shell-in e parazgjedhur, le të ndryshojmë këtë rresht në këtë:

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

Pastaj ruajmë skedarin dhe dalim.

Jam e sigurtë që ekziston një mënyrë e mirë për të ndryshuar rrugën e shell-it, për ta bërë atë të përdorë menjëherë. Por nuk e di, prandaj rekomandoj të ktheheni në shfletuesin e aplikacioneve, të detyroni daljen nga shell-i dhe për siguri të fikni e të rindez iPad-in ose iPhone-in tuaj. Rihapni iSH dhe tani, përveç mesazhit "Mirë se vini në Alpine!" dhe informacionit të nisjes me apk, do të shihni mesazhin standard të mirëseardhjes për login fish: Mirë se vini në fish, shell-in interaktiv miqësor. Hurra!

Po ekzekutojmë komandën e linjës në Linux në iOS

Konfigurimi i Python dhe pip

Vendosa të shtoj Python (versionin 3.x), jo vetëm për të shkruar kod, por edhe sepse unë përdor disa programe në Python. Le të instalojmë atë:

apk add python3

Ndërsa Python 2.x është i skaduar, mund ta instaloni edhe atë:

apk add python

Le të instalojmë menaxherin e paketave Python të quajtur pip dhe setuptools:

python3 -m ensurepip --default-pip

Për të instaluar dhe konfiguruar menaxherin e paketave do të nevojitet pak kohë, kështu që thjesht prisni.

Pastaj mund të shkarkoni mjetin për transferimin e skedarëve në rrjet curl:

apk add curl

Lexoni manualet

Fish përdor autokorrektimin e integruar bazuar në faqet man. Si përdorues i tjerë të linjës së komandës, unë përdor manualin man, por në Alpine nuk është i instaluar. Prandaj e instalova atë me shfaqësin e terminalit më pak:

apk add man man-pages less less-doc

Përveç man unë përdor mrekullinë projekti i faqeve tldr, që ofron faqe man të thjeshta dhe të menaxhuara nga komuniteti.

E instalova atë me pip:

pip install tldr

Ekipa tldr lidhet me internetin për të marrë faqet, kur has një kërkesë për një faqe të re. Nëse keni nevojë të dini si të përdorni një komandë, mund të shkruani diçka si tldr curl dhe të merrni një përshkrim në anglisht të thjeshtë dhe shembuj të mirë për përdorimin e komandës.

Sigurisht, gjithĂ« kjo punĂ« e instalimit mund tĂ« automatizohet me dotfiles ose njĂ« skript instalimi, por nĂ« tĂ« vĂ«rtetĂ« nuk Ă«shtĂ« shumĂ« nĂ« pĂ«rputhje me ideologjinĂ« Alpine — konfigurimi i njĂ« instaluese minimale saktĂ«sisht sipas nevojave tuaja. PĂ«r mĂ« tepĂ«r, kjo zgjati aq shumĂ« kohĂ«, apo jo?

Informacione shtesë

Në Wiki iSH ka një faqe "çfarë funksionon" me raporte për cilat paketa funksionojnë aktualisht. Për by, duket se npm aktualisht nuk funksionon.

Në një faqe tjetër wiki shpjegohet si të aksesoni skedarët iSH nga aplikacioni iOS Files. Ky është një nga mënyrat se si mund të lëvizni dhe kopjoni skedarë.

Mund të instaloni gjithashtu Git (po! apk add git ) dhe të shtoni punën tuaj në një depo të largët ose ta transferoni atë në server nëpërmjet SSH. Dhe, sigurisht, mund të shkarkoni dhe ekzekutoni çdo numër projektesh të shkëlqyera open-source nga GitHub.

Më shumë rreth iSH mund të mësoni përmes këtyre lidhjeve:

Si reklamë

VPS ofron serverat virtualë në Linux ose Windows. Përdorim ekskluzivisht pajisje markë, panelin më të mirë të menaxhimit të serverëve të zhvillimit tonë dhe disa nga qendrat e të dhënave më të mira në Rusia dhe BE. Nxitoni të porositni!

Po ekzekutojmë komandën e linjës në Linux në iOS

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster