De Linux kommandorigel op iOS starte

De Linux kommandorigel op iOS starte

Wisten jo dat jo in Linux kommandorigel kinne útfiere op in iOS-apparaat? Jo kinne freegje: "Wêrom moat ik tekstapps op iPhone brûke?" Earlike fraach. Mar as jo Opensource.com lêze, witte jo wierskynlik it antwurd: Linux-brûkers wolle it op elk apparaat kinne brûke en wolle har eigen ynstellings brûke.

Mar it meast begeare se om komplekse problemen op te lossen.

Ik haw in sân jier âlde iPad 2 Mini dy't noch altyd goed is foar ebook-lêzen en oare taken. Ik wol it lykwols ek brûke om tagong te krijen ta de kommandorigel fan applikaasjes mei myn set fan programma's en skripts, sûnder dat ik net kin wurkje. Ik haw in omjouwing nedich dêr't ik oan wend bin, lykas myn standert ûntwikkelingsomjouwing. En hjir is hoe't ik it slagge om dit te berikken.

Ferbine mei in toetseboerd

Wurkje mei de kommandorigel foar programmearring fia it toetseboerd op it skerm fan in tillefoan of tablet is frijwat ûngemaklik. Ik advisearje it ferbinen fan in ekstern toetseboerd, itsij fia Bluetooth of it brûken fan in kameraferbiningsadapter om in bedrade toetseboerd te ferbinen (ik keas it lêste). It ferbinen fan in Kinesis Advantage split toetseboerd oan in iPhone 6 resultearret yn in nuver apparaat dat liket corporate cyberdeck út klassike rol spylje skaad rinne.

Ynstallearje de shell op iOS

Om in folslein funksjoneel Linux-systeem op iOS út te fieren, binne d'r twa opsjes:

  • Secure shell (SSH) ferbûn mei in Linux-masine
  • In firtuele systeem útfiere mei Alpine Linux mei iSH, dat iepen boarne is, mar moat wurde ynstalleare mei Apple's proprietêre TestFlight-applikaasje

As alternatyf binne d'r twa iepen boarne terminalemulator-applikaasjes dy't de mooglikheid leverje om te wurkjen mei iepen boarne-ark yn in beheinde omjouwing. Dit is de meast stripped-down opsje - yn feite is dit net hoe't jo Linux útfiere, mar Linux-ark. D'r binne swiere beheiningen by it brûken fan dizze applikaasjes, mar jo krije in part kommandorigelfunksjonaliteit.

Foardat jo trochgean nei komplekse oplossingen, sil ik de ienfâldichste manier beskôgje.

Opsje 1: Shell yn 'e sânbak

Ien fan 'e maklikste manieren is om de iOS-app te ynstallearjen LibTerm. Dizze iepen Boarne sandbox kommando shell mei stipe foar mear dan 80 kommando op nul dollar. It komt mei Python 2.7, Python 3.7, Lua, C, Clang en mear.

Likernôch deselde funksjonaliteit a-shell, beskreaun troch de ûntwikkelders as "in test brûkersynterface foar in platfoarm mei skermynput." a-Shell boarnen pleatst iepen Boarne, it is ûnder aktive ûntwikkeling, jout triemsysteem tagong, en wurdt ferstjoerd mei Lua, Python, Tex, Vim, JavaScript, C en C++, en Clang en Clang++. It lit jo sels Python-pakketten ynstallearje mei pip.

Opsje 2: SSH

In oare stap fierder as it downloaden fan in app is it ynstellen fan in SSH-kliïnt. Foar in lange tiid hawwe wy ien fan 'e protte iOS SSH-kliïntapplikaasjes kinne brûke om te ferbinen mei in server mei Linux of BSD. It foardiel fan it brûken fan SSH is dat elke distribúsje kin rinne op de tsjinner mei elke software. Jo wurkje op ôfstân en de resultaten fan jo wurk wurde gewoan oerbrocht nei de terminalemulator op jo iOS-apparaat.

blink shell is in populêre betelle SSH-applikaasje yn iepen Boarne. As jo ​​​​gjin omtinken jouwe oan it lytse skerm fan it apparaat, dan is it brûken fan dizze software as ferbining mei de tsjinner fia in oare kommandorigel. De Blink-terminal sjocht der geweldich út, hat in protte klearmakke tema's en de mooglikheid om jo eigen te meitsjen, ynklusyf de mooglikheid om nije lettertypen oan te passen en ta te foegjen.

Opsje 3: Linux útfiere

It brûken fan SSH om te ferbinen mei in server ûnder Linux is in geweldige manier om tagong te krijen ta de kommandorigel, mar it fereasket in eksterne server en in netwurkferbining. Dit is net it grutste obstakel, mar it kin net folslein negearre wurde, dus jo moatte miskien wurkje mei Linux sûnder in server.

As dit jo gefal is, dan moatte jo it ien stap fierder nimme. TestFlight is in proprietêre tsjinst foar it ynstallearjen fan applikaasjes yn ûntwikkeling foardat se wurde frijlitten yn 'e Apple App Store. Jo kinne de TestFlight-app ynstallearje fanút de App Store en dan de testapps brûke. Applikaasjes yn TestFlight kinne in beheind oantal beta-testers (typysk oant 10) foar in beheinde tiid mei har wurkje. Om de test-app te downloaden, moatte jo tagong krije ta de keppeling op jo apparaat, dy't normaal te finen is op 'e webside fan' e testapp-ûntwikkelder.

Alpine Linux útfiere mei iSH

ISH is in iepen-boarne TestFlight-applikaasje dy't in firtuele masine rint mei in ready-made distribúsje Alpine Linux (mei in bytsje wurk, kinne jo rinne oare distribúsjes).

Wichtige funksje: applikaasje eksperiminteel. Sûnt iSH op it stuit in testapplikaasje is, ferwachtsje jo gjin konsekwinte en betroubere prestaasjes. TestFlight-applikaasjes binne tiid beheind. Myn hjoeddeistige build sil mar 60 dagen rinne. Dit betsjut dat ik nei 60 dagen útset wurde sil en wer meidwaan moat oan 'e folgjende faze fan iSH-testen. Boppedat sil ik al myn bestannen ferlieze as ik se net eksportearje mei bestannen op iOS of kopiearje nei in Git-host of fia SSH. Mei oare wurden: Ferwachtsje net dat it allegear trochgean sil wurkje! Set neat wichtich foar jo yn it systeem! Weromsette nei in aparte lokaasje!

iSH Ynstallaasje

Begjin mei ynstallaasje TestFlight út de App Store. Ynstallearje dan iSH, it krijen fan in keppeling om te ynstallearjen fan de applikaasje webside. D'r is in oare manier om te ynstallearjen mei AltStore, mar ik haw it net besocht. Of, as jo in betelle ûntwikkeldersaccount hawwe, kinne jo it iSH-repository downloade fan GitHub en it sels ynstallearje.

Mei de keppeling sil TestFlight de iSH-app op jo apparaat ynstallearje. Lykas by elke oare applikaasje sil in ikoan op it skerm ferskine.

Pakket behear

iSH rint in x86-emulator mei Alpine Linux. Alpine is in lytse ferdieling dy't minder dan 5MB yn grutte is. Dit wie myn earste kear dat ik mei Alpine wurke, dus ik tocht dat it minimalisme ferfelend soe wêze, mar ik fûn it echt leuk.

De Linux kommandorigel op iOS starte
Alpine brûkt in pakketbehearder apkdat is makliker dan sels apt of pacman.

Hoe kinne jo it pakket ynstallearje:

apk add package

Hoe kinne jo in pakket fuortsmite:

apk del package

Hoe kinne jo oare kommando's en ynformaasje fine:

apk --help

Pakketbehearder update:

apk update
apk upgrade

It ynstallearjen fan in tekstbewurker

Alpine's standert tekstbewurker is Vi, mar ik leaver Vim, dus ik haw it ynstalleare:

apk add vim

As jo ​​​​wolle, kinne jo Nano of Emacs ynstallearje.

Shell feroarje

Ik wit net oer dy, mar ik hie it nedich fisk skelp. Oare minsken leaver Bash of zsh. Alpine brûkt lykwols jiske! Ash is in foarke fan 'e Dash shell, dat is sels in foarke fan' e oarspronklike jiske, of Almquist shell. Har prioriteit is snelheid. Ik besleat om snelheid te hanneljen foar de ynboude automatyske foltôging, kleuren, Vim-kaaibehear, en syntaksismarkearring dy't ik hâld en wit fan 'e fiskshell.

fisk ynstallaasje:

apk add fish

As jo ​​​​Bash nedich hawwe mei syn autofoltôging en man-siden, ynstallearje se dan:

apk add bash bash-doc bash-completion

De minimalistyske ideology fan Alpine betsjut normaal dat guon programma's dy't ien pakket binne op oare distribúsjes sille wurde opdield yn ferskate lytsere pakketten. It betsjut ek dat jo it systeem kinne ôfstimme en ferminderje krekt sa't jo it wolle.

Foar mear ynformaasje oer it ynstallearjen fan Bash, sjoch dizze tutorial.

It feroarjen fan de standert shell

Ienris fisk is ynstalleare, kinne jo der tydlik nei oerskeakelje troch te typen fish en gean nei de shell. Mar ik wol meitsje fisk de standert shell, en it kommando chsh, dy't ik brûkte yn oare distribúsjes, wurke net.

Litte wy earst útfine wêr't fisk is ynstalleare:

which fish

Hjir is wat my bard:

/usr/bin/fish

Feroarje dan de oanmeldshell nei fisk. Jo kinne elke bewurker brûke dy't jo wolle. As jo ​​​​in begjinner binne, ynstallearje dan Nano (mei it kommando apk add nano) sadat jo de konfiguraasjetriemmen kinne bewurkje en opslaan fia CTRL+X, befêstigje en ôfslute.

Mar ik brûkte Vim:

vim /etc/passwd

Myn earste rigel wie:

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

Om fisk de standert shell te meitsjen, feroarje dizze line nei de folgjende:

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

Bewarje dan it bestân en gean út.

Ik bin der wis fan dat der in goede manier om te feroarjen de shell paad sadat it kin brûkt wurde direkt. Mar ik ken him net, dus ik advisearje om werom te gean nei de applikaasjeblêder, twinge om de shell te ferlitten, en foar wis te wêzen, de iPad of iPhone útsette en opnij starte. Iepenje iSH wer en no, neist it berjocht "Wolkom by Alpine!" en ynformaasje oer it starten fan 'e apk, sille jo it standert wolkomberjocht foar fisk oanmelde: Wolkom by fisken, de freonlike ynteraktive skulp. Hoera!

De Linux kommandorigel op iOS starte

Python en pip ynstelle

Ik besleat ta te foegjen Python (ferzje 3.x), net allinne te skriuwen koade, mar ek omdat ik brûk ferskate Python programma. Litte wy it ynstallearje:

apk add python3

Hoewol Python 2.x ferâldere is, kinne jo it ek ynstallearje:

apk add python

Ynstallearje in Python-pakketbehearder neamd pip en setuptools:

python3 -m ensurepip --default-pip

It sil wat tiid duorje om de pakketbehearder te ynstallearjen en te konfigurearjen, dus wês gewoan geduld.

Jo kinne dan in ark downloade om bestannen oer it netwurk oer te dragen curl:

apk add curl

Lêze hânboeken

Fish brûkt ynboude autofolling basearre op man-siden. Lykas oare brûkers fan kommandorigels, brûk ik de hantlieding man, en Alpine hat it net ynstallearre. Dat ik ynstallearre it mei in terminal pager minder:

apk add man man-pages less less-doc

Neist de minske brûk ik de prachtige tldr siden projekt, dy't ferienfâldige en mienskip-oandreaune man-siden leveret.

Ik ynstallearre it mei pip:

pip install tldr

team tldr ferbynt mei it web om siden op te heljen as it in fersyk foar in nije side tsjinkomt. As jo ​​​​witte moatte hoe't jo in kommando brûke, kinne jo soksawat skriuwe tldr curl en krije in beskriuwing yn gewoan Ingelsk en goede foarbylden oer hoe't jo it kommando brûke.

Fansels, al dit ynstallaasje wurk kin wurde automatisearre mei help dotfiles of in ynstallaasje skript, mar yn feite is dit net hiel oerienstimming mei Alpine syn ideology - oanpasse de minimale ynstallaasje dúdlik oan jo behoeften. Boppedat hat it sa lang duorre, net?

oanfoljende ynformaasje

De iSH Wiki hat in side "wat wurket" mei rapporten oer hokker pakketten op it stuit rinne. Trouwens, it liket npm wurket no net.

In oare wiki-side leit út hoe tagong ta iSH-bestannen fan de iOS Files app. Dit is ien fan 'e manieren wêrop jo bestannen kinne ferpleatse en kopiearje.

Jo kinne ek Git ynstallearje (ja! apk add git ) en triuw jo wurk nei in repository op ôfstân of triuw it nei de server fia SSH. En, fansels, kinne jo elk oantal grutte iepen boarne-projekten downloade en útfiere fan GitHub.

Mear ynformaasje oer iSH is te finen op dizze keppelings:

Oer de rjochten fan 'e advertinsje

Vdsina oanbiedingen firtuele servers op Linux of Windows. Wy brûke allinich merk apparatuer, de bêste fan syn soarte yn-hûs tsjinner kontrôle paniel en ien fan de bêste data sintra yn Ruslân en de EU. Haast om te bestellen!

De Linux kommandorigel op iOS starte

Boarne: www.habr.com

Add a comment