Paglulunsad ng command line ng Linux sa iOS

Paglulunsad ng command line ng Linux sa iOS

Alam mo ba na maaari mong patakbuhin ang Linux command line sa isang iOS device? Maaaring itanong mo, "Bakit ko dapat gamitin ang mga texting app sa aking iPhone?" patas na tanong. Ngunit kung babasahin mo ang Opensource.com, malamang na alam mo ang sagot: Gusto ng mga user ng Linux na magamit ito sa anumang device at gusto nilang i-customize ito mismo.

Ngunit higit sa lahat, hinahangad nila ang paglutas ng mga kumplikadong problema.

Mayroon akong pitong taong gulang na iPad 2 Mini na maganda pa rin para sa pagbabasa ng mga e-book at iba pang gawain. Gayunpaman, gusto ko rin itong gamitin upang ma-access ang command line ng mga application kasama ang aking hanay ng mga programa at script, kung wala ito ay hindi ako gagana. Kailangan ko ng isang kapaligiran na nakasanayan ko, pati na rin ang aking karaniwang kapaligiran sa pag-unlad. At narito kung paano ko nagawang makamit ito.

Kumokonekta sa isang keyboard

Ang pagtatrabaho sa command line para sa programming sa pamamagitan ng on-screen na keyboard ng isang telepono o tablet ay medyo hindi maginhawa. Inirerekomenda ko ang pagkonekta ng isang panlabas na keyboard, alinman sa pamamagitan ng Bluetooth, o paggamit ng adapter ng koneksyon ng camera upang ikonekta ang isang wired na keyboard (pinili ko ang huli). Kapag ikinonekta mo ang Kinesis Advantage split keyboard sa isang iPhone 6, makakakuha ka ng kakaibang device na kahawig corporate cyberdeck mula sa klasiko pag-play ng papel Shadowrun.

Pag-install ng shell sa iOS

Upang magpatakbo ng isang buong tampok na Linux system sa iOS, mayroong dalawang opsyon:

  • Nakakonekta ang Secure shell (SSH) sa isang Linux computer
  • Pagpapatakbo ng virtual system gamit ang Alpine Linux na may iSH, na open source ngunit dapat na i-install gamit ang proprietary TestFlight application ng Apple

Bilang alternatibo, mayroong dalawang open source terminal emulator application na nagbibigay ng kakayahang magtrabaho kasama ang mga open-source na tool sa isang pinaghihigpitang kapaligiran. Ito ang pinaka-pinaghuhubad na opsyon - sa katunayan, ito ay kung paano mo pinapatakbo ang mga tool sa Linux, hindi ang Linux. Mayroong matitinding limitasyon sa feature kapag nagtatrabaho sa mga application na ito, ngunit nakakakuha ka ng bahagyang paggana ng command line.

Bago lumipat sa mga kumplikadong solusyon, titingnan ko ang pinakasimpleng paraan.

Opsyon 1: Sandbox shell

Isa sa mga pinakamadaling paraan ay ang pag-install ng iOS app LibTerm. Ito open source sandboxed command shell na may suporta para sa higit sa 80 command para sa $2.7. Ito ay kasama ng Python 3.7, Python XNUMX, Lua, C, Clang at marami pang iba.

May humigit-kumulang parehong pag-andar a-Kabibi, na inilarawan ng mga developer bilang "isang pagsubok na interface ng gumagamit para sa platform ng pag-input ng screen." a-Naka-post ang mga mapagkukunan ng Shell open source, ito ay nasa aktibong pagbuo, nagbibigay ng access sa file system, at kasama ng Lua, Python, Tex, Vim, JavaScript, C at C++, pati na rin ang Clang at Clang++. Pinapayagan ka nitong mag-pip ng mga pakete ng Python.

Opsyon 2: SSH

Ang isa pang hakbang mula sa pag-download ng app ay ang pag-set up ng isang SSH client. Sa loob ng mahabang panahon, nagamit na namin ang alinman sa maraming SSH client app para sa iOS para kumonekta sa isang server na nagpapatakbo ng Linux o BSD. Ang bentahe ng paggamit ng SSH ay ang server ay maaaring magpatakbo ng anumang pamamahagi sa anumang software. Nagtatrabaho ka nang malayuan at ang mga resulta ng iyong trabaho ay ililipat lang sa terminal emulator sa iyong iOS device.

Blink shell ay isang sikat na bayad na SSH application sa open source. Kung balewalain mo ang maliit na screen ng device, ang paggamit ng software na ito ay katulad ng pagkonekta sa server sa pamamagitan ng anumang iba pang command line. Ang Blink Terminal ay mukhang mahusay, mayroong maraming handa na mga tema at ang kakayahang lumikha ng iyong sarili, kabilang ang kakayahang mag-customize at magdagdag ng mga bagong font.

Opsyon 3: Ilunsad ang Linux

Ang paggamit ng SSH upang kumonekta sa isang Linux server ay isang mahusay na paraan upang ma-access ang command line, ngunit nangangailangan ito ng isang panlabas na server at isang koneksyon sa network. Hindi ito ang pinakamalaking hadlang, ngunit hindi ito maaaring ganap na balewalain, kaya maaaring kailanganin mong patakbuhin ang Linux nang walang server.

Kung ito ang iyong kaso, kakailanganin mong gawin ito ng isang hakbang pa. TestFlight ay isang pagmamay-ari na serbisyo para sa pag-install ng mga binuo na application bago pa man mai-publish ang mga ito sa Apple App Store. Maaari mong i-install ang TestFlight app mula sa App Store at pagkatapos ay gumamit ng mga pansubok na app. Ang mga app sa TestFlight ay nagbibigay-daan sa limitadong bilang ng mga beta tester (karaniwan ay hanggang 10) na magtrabaho sa kanila sa limitadong panahon. Upang mag-download ng isang pansubok na application, kailangan mong pumunta mula sa iyong device patungo sa isang link na karaniwang matatagpuan sa website ng developer ng application ng pagsubok.

Pagpapatakbo ng Alpine Linux gamit ang iSH

ISH ay isang open-source na TestFlight na application na naglulunsad ng virtual machine na may yari na pamamahagi Alpine Linux (na may kaunting pagsisikap, maaari kang magpatakbo ng iba pang mga pamamahagi).

Mahalagang tampok: pang-eksperimentong aplikasyon. Dahil ang iSH ay kasalukuyang test application, huwag asahan ang patuloy at maaasahang operasyon. Ang mga application ng TestFlight ay limitado sa oras. Ang aking kasalukuyang build ay tatagal lamang ng 60 araw. Nangangahulugan ito na pagkatapos ng 60 araw ay aalisin ako at kakailanganing muling sumali sa susunod na round ng iSH testing. Bukod dito, mawawala ang lahat ng aking mga file maliban kung i-export ko ang mga ito gamit ang Mga File sa iOS o kopyahin ang mga ito sa isang Git host o sa pamamagitan ng SSH. Sa ibang salita: Huwag asahan na ito ay patuloy na gagana! Huwag maglagay ng anumang bagay na mahalaga sa iyo sa system! I-back up sa isang hiwalay na lokasyon!

Pag-install ng iSH

Magsimula sa pag-install TestFlight mula sa App Store. Pagkatapos ay i-install ang iSH, natanggap ang link sa pag-install mula sa website ng aplikasyon. May isa pang paraan ng pag-install gamit ang AltStore, ngunit hindi ko pa ito sinubukan. O, kung mayroon kang bayad na developer account, maaari mong i-download ang iSH repository mula sa GitHub at i-install ito mismo.

Gamit ang link, i-install ng TestFlight ang iSH application sa iyong device. Tulad ng anumang iba pang application, may lalabas na icon sa screen.

Pamamahala ng Package

Ang iSH ay nagpapatakbo ng isang x86 emulator na may Alpine Linux. Ang Alpine ay isang maliit na distro, na may sukat na mas mababa sa 5MB ang laki. Ito ang aking unang pagkakataon na magtrabaho sa Alpine, kaya naisip ko na ang minimalism ay nakakainis, ngunit talagang nagustuhan ko ito.

Paglulunsad ng command line ng Linux sa iOS
Gumagamit ang Alpine ng package manager apk, na mas madali kaysa sa apt o pacman.

Paano i-install ang package:

apk add package

Paano mag-alis ng isang pakete:

apk del package

Paano makahanap ng iba pang mga utos at impormasyon:

apk --help

Update sa manager ng package:

apk update
apk upgrade

Pag-install ng text editor

Ang default na text editor ng Alpine ay Vi, ngunit mas gusto ko ang Vim, kaya na-install ko ito:

apk add vim

Kung ninanais, maaari mong i-install ang Nano o Emacs.

Pagbabago ng shell

Ewan ko sayo, pero kailangan ko isda shell. Mas gusto ng ibang tao Malakas na palo o zsh. Gayunpaman, ang Alpine ay gumagamit ng abo! Ang abo ay isang tinidor ng shell ng Dash, na mismong isang tinidor ng orihinal na abo, o Almquist shell. Ang kanyang priority ay ang bilis. Nagpasya akong i-trade ang bilis para sa built-in na autocompletion, mga kulay, Vim key control, at syntax highlighting na gusto ko at alam ko mula sa shell ng isda.

Pag-install ng isda:

apk add fish

Kung kailangan mo ng Bash kasama ang autocompletion at mga man page nito, pagkatapos ay i-install ang mga ito:

apk add bash bash-doc bash-completion

Ang minimalistic na ideolohiya ng Alpine ay karaniwang nangangahulugan na ang ilang mga programa na nakabalot sa ibang mga distribusyon ay hahatiin sa ilang mas maliliit na pakete. Nangangahulugan din ito na maaari mong i-customize at bawasan ang laki ng iyong system nang eksakto sa paraang gusto mo.

Para sa higit pang impormasyon tungkol sa pag-install ng Bash, tingnan ang tutorial na ito.

Pagbabago ng default na shell

Pagkatapos mag-install ng isda, maaari kang pansamantalang lumipat dito sa pamamagitan ng pagpasok fish at pagpunta sa shell. Ngunit gusto kong gawing default na shell at command ang isda chsh, na ginamit ko sa iba pang mga distribusyon, ay hindi gumana.

Una naming malaman kung saan naka-install ang isda:

which fish

Narito ang nakuha ko:

/usr/bin/fish

Susunod, palitan ang login shell sa isda. Maaari mong gamitin ang anumang editor na maginhawa para sa iyo. Kung ikaw ay isang baguhan, pagkatapos ay i-install ang Nano (na may command apk add nano) upang ma-edit mo ang mga configuration file at i-save ang mga ito sa pamamagitan ng CTRL+X, kumpirmahin at lumabas.

Ngunit ginamit ko ang Vim:

vim /etc/passwd

Ang aking unang linya ay ganito:

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

Upang gawing default na shell ang isda, baguhin ang linyang ito sa sumusunod:

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

Pagkatapos ay i-save ang file at lumabas.

Sigurado akong may magandang paraan para baguhin ang landas patungo sa shell para magamit kaagad. Ngunit hindi ko alam ito, kaya inirerekomenda kong bumalik sa browser ng application, pilitin na lumabas sa shell, at upang maging ligtas, i-off at i-restart ang iyong iPad o iPhone. Buksan muli ang iSH at ngayon, bilang karagdagan sa mensaheng "Welcome to Alpine!" at impormasyon tungkol sa paglulunsad mula sa apk, makikita mo ang karaniwang mensahe ng pag-log in sa isda: Maligayang pagdating sa isda, ang magiliw na interactive shell. Hooray!

Paglulunsad ng command line ng Linux sa iOS

Pagse-set up ng Python at pip

Nagpasya akong magdagdag Sawa (bersyon 3.x), hindi lamang para magsulat ng code, kundi dahil gumagamit din ako ng ilang programang Python. I-install natin ito:

apk add python3

Bagama't luma na ang Python 2.x, maaari mo itong i-install:

apk add python

I-install natin ang Python package manager na tinatawag na pip at setuptools:

python3 -m ensurepip --default-pip

Aabutin ng ilang oras upang i-install at i-configure ang manager ng package, kaya maghintay lamang.

Pagkatapos ay maaari kang mag-download ng tool upang maglipat ng mga file sa network kulutan:

apk add curl

Pagbabasa ng mga manwal

Gumagamit ang isda ng built-in na autocompletion batay sa mga man page. Tulad ng ibang mga gumagamit ng command line, ginagamit ko ang manwal man, ngunit hindi ito naka-install sa Alpine. Kaya na-install ko ito sa terminal pager kulang:

apk add man man-pages less less-doc

Bilang karagdagan sa tao ay gumagamit ako ng kahanga-hanga proyekto ng mga pahina ng tldr, na nagbibigay ng pinasimple at hinimok ng komunidad na mga man page.

Na-install ko ito gamit ang pip:

pip install tldr

Koponan tldr kumokonekta sa web upang kunin ang mga pahina kapag nakatagpo ito ng isang kahilingan para sa isang bagong pahina. Kung kailangan mong malaman kung paano gumamit ng isang command, maaari kang magsulat ng isang bagay tulad ng tldr curl at kumuha ng paglalarawan sa simpleng Ingles at magagandang halimbawa kung paano gamitin ang utos.

Siyempre, ang lahat ng gawaing ito sa pag-install ay maaaring awtomatiko gamit mga dotfile o isang script ng pag-install, ngunit sa katunayan hindi ito tumutugma sa ideolohiya ng Alpine - pag-customize ng isang minimal na pag-install nang eksakto upang umangkop sa iyong mga pangangailangan. Tsaka ang tagal naman nun diba?

karagdagang impormasyon

Ang iSH Wiki ay may isang pahina "kung ano ang gumagana" na may mga ulat kung aling mga pakete ang kasalukuyang tumatakbo. Oo nga pala, mukhang hindi gumagana ang npm ngayon.

Ipinapaliwanag ng isa pang pahina ng wiki kung paano i-access ang mga iSH file mula sa iOS Files app. Ito ay isa sa mga paraan na maaari mong ilipat at kopyahin ang mga file.

Maaari mo ring i-install ang Git (oo! apk add git ) at itulak ang iyong trabaho sa isang malayong imbakan o ilipat ito sa server sa pamamagitan ng SSH. At, siyempre, maaari kang mag-download at magpatakbo ng anumang bilang ng magagandang open-source na proyekto mula sa GitHub.

Higit pang impormasyon tungkol sa iSH ay matatagpuan sa mga link na ito:

Sa Mga Karapatan ng Pag-advertise

Vdsina Nag-aalok ang mga virtual server sa Linux o Windows. Ginagamit namin ng eksklusibo may tatak na kagamitan, ang pinakamahusay sa uri nito na control panel ng server ng sarili nitong disenyo at isa sa mga pinakamahusay na data center sa Russia at EU. Bilisan mo mag order!

Paglulunsad ng command line ng Linux sa iOS

Pinagmulan: www.habr.com

Magdagdag ng komento