Kuzindua mstari wa amri wa Linux kwenye iOS

Kuzindua mstari wa amri wa Linux kwenye iOS

Je! unajua kuwa unaweza kuendesha safu ya amri ya Linux kwenye kifaa cha iOS? Unaweza kuwa unauliza, "Kwa nini nitumie programu za kutuma maandishi kwenye iPhone yangu?" Swali la haki. Lakini ukisoma Opensource.com, labda unajua jibu: Watumiaji wa Linux wanataka kuweza kuitumia kwenye kifaa chochote na wanataka kubinafsisha wao wenyewe.

Lakini zaidi ya yote, wanatamani kutatua matatizo magumu.

Nina iPad 2 Mini ya miaka saba ambayo bado ni nzuri kwa kusoma vitabu vya kielektroniki na kazi zingine. Walakini, nataka pia kuitumia kufikia safu ya amri ya programu na seti yangu ya programu na maandishi, bila ambayo siwezi kufanya kazi. Ninahitaji mazingira ambayo nimeyazoea, pamoja na mazingira yangu ya kawaida ya ukuzaji. Na hivi ndivyo nilivyoweza kufanikisha hili.

Inaunganisha kwenye kibodi

Kufanya kazi na mstari wa amri kwa ajili ya programu kwa njia ya kibodi ya skrini ya simu au kompyuta kibao sio rahisi sana. Ninapendekeza kuunganisha kibodi cha nje, ama kupitia Bluetooth, au kutumia adapta ya uunganisho wa kamera ili kuunganisha kibodi cha waya (nilichagua mwisho). Unapounganisha kibodi ya Kinesis Advantage iliyogawanyika kwa iPhone 6, unapata kifaa cha ajabu ambacho kinafanana cyberdeck ya kampuni kutoka kwa classic igizo dhima Shadowrun.

Kufunga shell kwenye iOS

Ili kuendesha mfumo kamili wa Linux kwenye iOS, kuna chaguzi mbili:

  • Salama shell (SSH) iliyounganishwa kwenye kompyuta ya Linux
  • Kuendesha mfumo pepe kwa kutumia Alpine Linux na iSH, ambayo ni chanzo wazi lakini lazima isakinishwe kwa kutumia programu ya umiliki ya Apple ya TestFlight.

Kama mbadala, kuna programu mbili za emulator za chanzo huria ambazo hutoa uwezo wa kufanya kazi na zana huria katika mazingira yenye vikwazo. Hili ndilo chaguo lililovuliwa zaidi - kwa kweli, hivi ndivyo unavyoendesha zana za Linux, sio Linux. Kuna vikwazo vikali vya kipengele wakati wa kufanya kazi na programu hizi, lakini unapata utendakazi wa safu ya amri.

Kabla ya kuendelea na ufumbuzi tata, nitaangalia njia rahisi zaidi.

Chaguo 1: shell ya Sandbox

Mojawapo ya njia rahisi ni kusakinisha programu ya iOS LibTerm. Ni chanzo wazi ganda la amri la sanduku la mchanga na usaidizi wa amri zaidi ya 80 kwa dola sifuri. Inakuja ikiwa na Python 2.7, Python 3.7, Lua, C, Clang na mengi zaidi.

Ina takriban utendakazi sawa a-ganda, iliyofafanuliwa na wasanidi programu kama "kiolesura cha majaribio cha mfumo wa kuingiza sauti kwenye skrini." Vyanzo vya a-Shell vimewekwa wazi chanzo, iko katika maendeleo ya kazi, hutoa ufikiaji wa mfumo wa faili, na inakuja na Lua, Python, Tex, Vim, JavaScript, C na C ++, pamoja na Clang na Clang ++. Inakuruhusu hata kusakinisha vifurushi vya Python.

Chaguo la 2: SSH

Hatua nyingine ya kupakua programu ni kusanidi mteja wa SSH. Kwa muda mrefu sasa, tumeweza kutumia mojawapo ya programu nyingi za mteja wa SSH kwa iOS kuunganisha kwenye seva inayoendesha Linux au BSD. Faida ya kutumia SSH ni kwamba seva inaweza kuendesha usambazaji wowote na programu yoyote. Unafanya kazi kwa mbali na matokeo ya kazi yako huhamishiwa kwa kiigaji cha terminal kwenye kifaa chako cha iOS.

Blink shell ni programu maarufu ya kulipia ya SSH ndani wazi chanzo. Ikiwa unapuuza skrini ndogo ya kifaa, basi kutumia programu hii ni sawa na kuunganisha kwenye seva kupitia mstari mwingine wa amri. Blink Terminal inaonekana nzuri, ina mandhari mengi yaliyotengenezwa tayari na uwezo wa kuunda yako mwenyewe, ikiwa ni pamoja na uwezo wa kubinafsisha na kuongeza fonti mpya.

Chaguo 3: Zindua Linux

Kutumia SSH kuunganisha kwenye seva ya Linux ni njia nzuri ya kufikia mstari wa amri, lakini inahitaji seva ya nje na muunganisho wa mtandao. Hiki sio kikwazo kikubwa zaidi, lakini hakiwezi kupuuzwa kabisa, kwa hivyo unaweza kuhitaji kuendesha Linux bila seva.

Ikiwa hii ndio kesi yako, basi utahitaji kuchukua hatua moja zaidi. TestFlight ni huduma ya umiliki ya kusakinisha programu zilizotengenezwa hata kabla ya kuchapishwa kwenye Duka la Apple App. Unaweza kusakinisha programu ya TestFlight kutoka App Store kisha utumie programu za majaribio. Programu katika TestFlight huruhusu idadi ndogo ya wanaojaribu beta (kawaida hadi 10) kufanya kazi nao kwa muda mfupi. Ili kupakua programu ya majaribio, unahitaji kwenda kutoka kwa kifaa chako hadi kwa kiungo ambacho kwa kawaida kinapatikana kwenye tovuti ya msanidi programu wa majaribio.

Kuendesha Alpine Linux kwa kutumia iSH

ISH ni programu huria ya TestFlight inayozindua mashine pepe yenye usambazaji ulio tayari Alpine Linux (kwa juhudi kidogo, unaweza kuendesha usambazaji mwingine).

Kipengele muhimu: maombi ya majaribio. Kwa kuwa iSH kwa sasa ni programu ya majaribio, usitarajie utendakazi wa mara kwa mara na unaotegemewa. Programu za TestFlight zina muda mdogo. Muundo wangu wa sasa utachukua siku 60 pekee. Hii inamaanisha kuwa baada ya siku 60 nitaondolewa na nitalazimika kujiunga tena na awamu inayofuata ya majaribio ya iSH. Zaidi ya hayo, nitapoteza faili zangu zote isipokuwa nitazisafirisha kwa kutumia Faili kwenye iOS au kuzinakili kwa mwenyeji wa Git au kupitia SSH. Kwa maneno mengine: Usitarajia hii itaendelea kufanya kazi! Usiweke chochote muhimu kwako kwenye mfumo! Rudi kwenye eneo tofauti!

Inasakinisha iSH

Anza na ufungaji TestFlight kutoka kwa App Store. Kisha sakinisha iSH, imepokea kiungo cha usakinishaji kutoka kwa tovuti ya maombi. Kuna njia nyingine ya usakinishaji kwa kutumia AltStore, lakini sijaijaribu. Au, ikiwa una akaunti ya msanidi programu inayolipishwa, unaweza kupakua hazina ya iSH kutoka GitHub na uisakinishe mwenyewe.

Kwa kutumia kiungo, TestFlight itasakinisha programu ya iSH kwenye kifaa chako. Kama ilivyo kwa programu nyingine yoyote, ikoni itaonekana kwenye skrini.

Usimamizi wa Kifurushi

iSH huendesha emulator ya x86 na Alpine Linux. Alpine ni distro ndogo, yenye ukubwa wa chini ya 5MB. Hii ilikuwa mara yangu ya kwanza kufanya kazi na Alpine, kwa hivyo nilidhani minimalism ingekuwa ya kukasirisha, lakini kwa kweli niliipenda.

Kuzindua mstari wa amri wa Linux kwenye iOS
Alpine hutumia meneja wa kifurushi apk, ambayo ni rahisi kuliko hata apt au pacman.

Jinsi ya kufunga kifurushi:

apk add package

Jinsi ya kuondoa kifurushi:

apk del package

Jinsi ya kupata amri zingine na habari:

apk --help

Sasisho la msimamizi wa kifurushi:

apk update
apk upgrade

Inasakinisha kihariri maandishi

Mhariri wa maandishi chaguo-msingi wa Alpine ni Vi, lakini napendelea Vim, kwa hivyo niliisanikisha:

apk add vim

Ikiwa inataka, unaweza kusakinisha Nano au Emacs.

Mabadiliko ya shell

Sijui kuhusu wewe, lakini nilihitaji samaki shell. Watu wengine wanapendelea Bash au Zsh. Hata hivyo, Alpine hutumia majivu! Ash ni uma wa shell ya Dash, ambayo yenyewe ni uma ya majivu ya awali, au Kamba ya Almquist. Kipaumbele chake ni kasi. Niliamua kubadilisha kasi ya ukamilishaji kiotomatiki uliojengewa ndani, rangi, vidhibiti vya vitufe vya Vim, na uangaziaji wa sintaksia ninayoipenda na kujua kutoka kwa ganda la samaki.

Ufungaji wa samaki:

apk add fish

Ikiwa unahitaji Bash na ukamilishaji wake otomatiki na kurasa za mtu, basi zisakinishe:

apk add bash bash-doc bash-completion

Itikadi ndogo ya Alpine kawaida inamaanisha kuwa programu zingine ambazo zimefungwa katika usambazaji mwingine zitagawanywa katika vifurushi kadhaa vidogo. Inamaanisha pia kuwa unaweza kubinafsisha na kupunguza saizi ya mfumo wako jinsi unavyotaka.

Kwa habari zaidi kuhusu kusakinisha Bash, ona mafunzo haya.

Kubadilisha ganda chaguo-msingi

Baada ya kufunga samaki, unaweza kubadili kwa muda kwa kuingia fish na kwenda kwenye ganda. Lakini nataka kufanya samaki ganda chaguo-msingi na amri chsh, ambayo nilitumia kwenye usambazaji mwingine, haikufanya kazi.

Kwanza tunagundua ni wapi samaki imewekwa:

which fish

Hivi ndivyo nilipata:

/usr/bin/fish

Ifuatayo, badilisha ganda la kuingia kuwa samaki. Unaweza kutumia kihariri chochote kinachokufaa. Ikiwa wewe ni mwanzilishi, basi usakinishe Nano (na amri apk add nano) ili uweze kuhariri faili za usanidi na kuzihifadhi kupitia CTRL+X, thibitisha na uondoke.

Lakini nilitumia Vim:

vim /etc/passwd

Mstari wangu wa kwanza ulikuwa hivi:

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

Ili kufanya samaki kuwa ganda chaguo-msingi, badilisha mstari huu kuwa ufuatao:

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

Kisha uhifadhi faili na uondoke.

Nina hakika kuna njia nzuri ya kubadilisha njia ya ganda ili iweze kutumika mara moja. Lakini sijui, kwa hiyo ninapendekeza kurudi kwenye kivinjari cha programu, kulazimisha kuondoka kwenye shell, na kuwa upande salama, kuzima na kuanzisha upya iPad yako au iPhone. Fungua iSH tena na sasa, pamoja na ujumbe "Karibu Alpine!" na habari kuhusu kuzindua kutoka kwa apk, utaona ujumbe wa kawaida wa kukaribisha kuingia kwa samaki: Karibu samaki, ganda la maingiliano la urafiki. Hooray!

Kuzindua mstari wa amri wa Linux kwenye iOS

Kuanzisha Python na bomba

Niliamua kuongeza Chatu (toleo la 3.x), sio tu kuandika msimbo, lakini pia kwa sababu ninatumia programu kadhaa za Python. Hebu tusakinishe:

apk add python3

Ingawa Python 2.x imepitwa na wakati, unaweza kuisakinisha:

apk add python

Wacha tusakinishe meneja wa kifurushi cha Python kinachoitwa bomba na kuanzisha:

python3 -m ensurepip --default-pip

Itachukua muda kusakinisha na kusanidi kidhibiti cha kifurushi, kwa hivyo subiri tu.

Kisha unaweza kupakua zana ya kuhamisha faili kwenye mtandao curl:

apk add curl

Kusoma miongozo

Samaki hutumia ukamilishaji kiotomatiki uliojengewa ndani kulingana na kurasa za mwanadamu. Kama watumiaji wengine wa safu ya amri, mimi hutumia mwongozo man, lakini haijasakinishwa katika Alpine. Kwa hivyo niliiweka na pager ya terminal chini:

apk add man man-pages less less-doc

Mbali na mwanadamu mimi hutumia mzuri mradi wa kurasa za tldr, ambayo hutoa kurasa za watu zilizorahisishwa na zinazoendeshwa na jamii.

Niliiweka kwa kutumia bomba:

pip install tldr

Timu tldr inaunganisha kwenye wavuti ili kurejesha kurasa inapokumbana na ombi la ukurasa mpya. Ikiwa unahitaji kujua jinsi ya kutumia amri, unaweza kuandika kitu kama tldr curl na upate maelezo kwa Kiingereza wazi na mifano mizuri ya jinsi ya kutumia amri.

Bila shaka, kazi hii yote ya ufungaji inaweza kuwa automatiska kutumia dotfiles au hati ya usakinishaji, lakini kwa kweli hii hailingani kabisa na itikadi ya Alpine - kubinafsisha usakinishaji mdogo kwa usahihi ili kukidhi mahitaji yako. Isitoshe, ilichukua muda mrefu sana, sivyo?

maelezo ya ziada

Wiki ya iSH ina ukurasa "kinachofanya kazi" na ripoti ambazo vifurushi vinaendeshwa kwa sasa. Kwa njia, inaonekana kama npm haifanyi kazi kwa sasa.

Ukurasa mwingine wa wiki unaelezea jinsi fikia faili za iSH kutoka kwa programu ya Faili za iOS. Hii ni mojawapo ya njia unazoweza kuhamisha na kunakili faili.

Unaweza pia kusakinisha Git (ndio! apk add git ) na usukuma kazi yako kwenye hazina ya mbali au uhamishe kwa seva kupitia SSH. Na, bila shaka, unaweza kupakua na kuendesha idadi yoyote ya miradi mikubwa ya chanzo-wazi kutoka GitHub.

Maelezo zaidi kuhusu iSH yanaweza kupatikana kwenye viungo hivi:

Haki za Matangazo

Vdsina inatoa seva pepe kwenye Linux au Windows. Tunatumia pekee vifaa vyenye chapa, jopo bora zaidi la aina yake la udhibiti wa seva ya muundo wake na mojawapo ya vituo bora zaidi vya data nchini Urusi na Umoja wa Ulaya. Haraka ili kuagiza!

Kuzindua mstari wa amri wa Linux kwenye iOS

Chanzo: mapenzi.com

Kuongeza maoni