
Jeste li znali da možete pokrenuti Linux naredbeni prompt na iOS uređaju? Možda se pitate: „Zašto bih koristio tekstualne aplikacije na iPhone-u?” Pravedno pitanje. Ali ako čitate Opensource.com, vjerojatno znate odgovor: korisnici Linux-a žele imati mogućnost rada na bilo kojem uređaju s vlastitim postavkama.
No, najviše žele rješavati složene zadatke.
Imam sedmogodišnji iPad 2 Mini koji se još uvijek dobro snalazi za čitanje e-knjiga i druge zadatke. Međutim, želim ga koristiti i za pristup naredbenom promptu aplikacija sa svojim skupom programa i skripti bez kojih ne mogu raditi. Trebam okruženje na koje sam navikao, kao i svoj standardni razvojni okoliš. I evo kako sam to postigao.
Povezivanje s tipkovnicom
Rad s naredbenim promptom za programiranje putem zaslonske tipkovnice telefona ili tableta prilično je nezgodan. Preporučujem povezivanje vanjske tipkovnice, bilo putem Bluetootha ili koristeći adapter za povezivanje kamere kako biste spojili žičanu tipkovnicu (ja sam odabrao drugo). Kada spojite podijeljenu Kinesis Advantage tipkovnicu na iPhone 6, dobijete neobičan uređaj koji podsjeća na iz klasične Shadowrun.
Instaliramo ljusku na iOS-u
Za pokretanje potpuno funkcionalnog Linux sustava na iOS-u postoje dvije opcije:
- Secure shell (SSH), povezivanje s računalom s Linux-om
- Pokretanje virtualnog sustava pomoću Alpine Linux-a s iSH, koji je open source, ali ga je potrebno instalirati putem proprietary aplikacije TestFlight tvrtke Apple
Kao alternativu postoje dvije open-source terminal emulator aplikacije koje omogućuju rad s open-source alatima u ograničenom okruženju. To je najskromnija opcija — zapravo ne pokrećete Linux, nego Linux alate. Kada radite s ovim aplikacijama, postoje stroga ograničenja mogućnosti, ali dobit ćete djelomičnu funkcionalnost naredbenog prompta.
Prije nego što pređem na složena rješenja, razmotrit ću najjednostavniji način.
Opcija 1: ljuska u „sandboxu”
Jedan od najlakših načina je instalirati aplikaciju za iOS . To je shell okruženje u „sandboxu“ koje podržava više od 80 komandi besplatno. Uz njega dolaze Python 2.7, Python 3.7, Lua, C, Clang i još mnogo toga.
Oko iste funkcionalnosti ima , koju su razvili kao „testno korisničko sučelje za platformu sa unosom preko ekrana“. Izvori a-Shella su objavljeni kao , trenutno je u aktivnom razvoju, omogućava pristup datotečnom sustavu i dolazi s Lua, Python, Tex, Vim, JavaScript, C i C++, kao i Clang i Clang++. Čak omogućuje instalaciju Python paketa putem pip-a.
Opcija 2: SSH
Još jedan korak naprijed u odnosu na preuzimanje aplikacije je postavljanje SSH klijenta. Već dugo možemo koristiti bilo koju od mnogih SSH klijentskih aplikacija za iOS za povezivanje na server na kojem je pokrenut Linux ili BSD. Prednost korištenja SSH-a je ta što na serveru može raditi bilo koja distribucija s bilo kojim softverom. Radite udaljeno i rezultati rada se jednostavno prenose u terminalski emulator na iOS uređaju.
— to je popularna plaćena SSH aplikacija u . Ako ne obratimo pažnju na mali ekran uređaja, korištenje ovog softvera nalikuje povezivanju na server kroz bilo koju drugu komandnu liniju. Terminal Blink izgleda sjajno, ima mnoge unaprijed postavljene teme i mogućnost stvaranja vlastitih, uključujući mogućnost podešavanja i dodavanja novih fontova.
Opcija 3: pokretanje Linuxa
Korištenje SSH-a za povezivanje na server s Linuxom odličan je način za pristup komandnoj liniji, ali zahtijeva vanjski server i mrežnu povezanost. To nije najveća prepreka, ali je ne smijete u potpunosti ignorirati, stoga će vam možda biti potrebna mogućnost rada s Linuxom bez servera.
Ako je to vaš slučaj, trebat ćete napraviti još jedan korak naprijed. — to je proprietary servis za instalaciju razvijanih aplikacija prije nego što budu objavljene u Apple App Storeu. TestFlight aplikaciju možete preuzeti iz App Storea, a zatim koristiti testne aplikacije. Aplikacije u TestFlightu omogućuju ograničenom broju beta-testerâ (obično do 10 000) rad s njima tijekom ograničenog vremena. Da biste preuzeli testnu aplikaciju, trebate otići sa svog uređaja na poveznicu koja se obično nalazi na web-stranici razvojnog programera testne aplikacije.
Pokretanje Alpine Linux sa iSH
— je open-source TestFlight aplikacija koja pokreće virtualnu mašinu s gotovim distribucijom (uz malo truda, mogu se pokretati i druge distribucije).
Važna karakteristika: aplikacija je eksperimentalna. Budući da je iSH trenutno testna aplikacija, nemojte očekivati stalno i pouzdano funkcioniranje. TestFlight aplikacije su vremenski ograničene. Moja trenutna verzija će raditi samo 60 dana. To znači da ću nakon 60 dana biti isključen i morat ću se ponovno priključiti sljedećem krugu testiranja iSH. Štoviše, izgubit ću sve svoje datoteke ako ih ne izvezem putem Files na iOS-u ili ne kopiram na Git-host ili . Drugim riječima: Nemojte se nadati da će sve ovo nastaviti raditi! Ne stavljajte u sustav ništa što vam je važno! Izvršite sigurnosno kopiranje na drugom mjestu!
Instalacija iSH
Počnite s instalacijom iz App Storea. Zatim instalirajte iSH, s web-stranice aplikacije. Postoji još jedan način instalacije pomoću AltStore-a, ali to nisam isprobao. Ili, ako imate plaćeni developerski račun, možete preuzeti iSH repozitorij s GitHuba i instalirati ga sami.
Pomoću poveznice TestFlight instalirat će se aplikacija iSH na vaš uređaj. Kao i kod bilo koje druge aplikacije, na ekranu će se pojaviti ikona.
Upravljanje paketima
iSH pokreće x86 emulator s Alpine Linux. Alpine je mali distribucija veličine manje od 5 MB. Prvi put sam radio s Alpine-om, pa sam mislio da će takav minimalizam biti iritantan, ali zapravo mi se jako svidio.

U Alpine-u se koristi menadžer paketa , koji je jednostavniji čak i od apt ili pacman.
Kako instalirati paket:
apk add packageKako ukloniti paket:
apk del packageKako saznati druge komande i informacije:
apk --helpAžuriranje upravitelja paketa:
apk update
apk upgradeInstalacija uređivača teksta
Standardni uređivač teksta u Alpineu je Vi, ali preferiram Vim, pa sam ga instalirao:
apk add vimAko želite, možete instalirati Nano ili Emacs.
Mijenjanje ljuske
Ne znam za vas, ali meni je bila potrebna . Drugi ljudi preferiraju ili . Međutim, u Alpineu se koristi ash! Ash je fork ljuske Dash, koja je sama fork originalnog asha, ili . Njegov prioritet je brzina. Odlučio sam zamijeniti brzinu s ugrađenim automatskim dovršavanjem, bojama, upravljanjem tipkovnicom Vim i isticanjem sintakse, koje volim i poznajem iz fish shell-a.
Instalacija fish-a:
apk add fishAko vam treba Bash s automatskim dovršavanjem i man-stranicama, instalirajte ih:
apk add bash bash-doc bash-completionMinimalistička ideologija Alpine obično znači da će neki programi koje su u drugim distribucijama u jednom paketu biti podijeljeni u više manjih paketa. Također to znači da možete prilagoditi i smanjiti veličinu sustava točno onako kako želite.
Više o instalaciji Basha možete saznati iz .
Mijenjanje zadane ljuske
Nakon instalacije fish-a, možete privremeno prebaciti na njega tako da unesete fish i pređete u ljusku. Ali želim postaviti fish kao zadanu ljusku, a naredba chsh, koju sam koristio u drugim distribucijama, nije radila.
Prvo saznajmo gdje je fish instaliran:
which fishEvo što je meni ispalo:
/usr/bin/fish Zatim ćemo promijeniti login shell na fish. Možete koristiti bilo koji urednik koji vam odgovara. Ako ste početnik, instalirajte Nano (naredbom apk add nano), kako biste mogli urediti konfiguracijske datoteke i spremiti ih pritiskom na CTRL+X, potvrditi i izaći.
Ali ja sam koristio Vim:
vim /etc/passwdMoj prvi redak bio je ovakav:
root:x:0:0:root:/root:/bin/ashDa bismo postavili fish kao zadanu ljusku, promijenit ćemo ovaj redak u sljedeći:
root:x:0:0:root:/root:/usr/bin/fishZatim spremamo datoteku i izlazimo.
Siguran sam da postoji dobar način za promjenu puta do ljuske kako bi se mogla odmah koristiti. No, ne znam ga, stoga preporučujem da se vratite u preglednik aplikacija, prisilno se odjavite iz ljuske i za sigurnost isključite i ponovno pokrenite iPad ili iPhone. Ponovno otvorite iSH i sada osim poruke „Welcome to Alpine!” i informacija o pokretanju s apk-a vidjet ćete standardnu poruku dobrodošlice za prijavu u fish: Dobrodošli u fish, prijateljsku interaktivnu ljusku. Hura!

Postavljanje Pythona i pip-a
Odlučio sam dodati (verziju 3.x), ne samo da bih pisao kod, već i zato što koristim nekoliko programa na Pythonu. Instalirajmo ga:
apk add python3Iako je Python 2.x zastario, možete ga instalirati i:
apk add pythonInstalirajmo Python paket menadžer koji se zove pip i :
python3 -m ensurepip --default-pipZa instalaciju i postavljanje menadžera paketa bit će potrebno malo vremena, stoga samo pričekajte.
Nakon toga možete preuzeti alat za prijenos datoteka preko mreže :
apk add curlČitamo priručnike
Fish koristi ugrađeno automatsko dovršavanje temeljen na man-stranicama. Kao i drugi korisnici naredbenih linija, koristim priručnik man, a u Alpine-u nije instaliran. Stoga sam ga instalirao s terminalnim preglednikom :
apk add man man-pages less less-docOsim man, koristim izvrstan , koji pruža pojednostavljene i zajednicom vođene man-stranice.
Instalirao sam ga pomoću pip-a:
pip install tldr Komanda tldr spaja se na web za preuzimanje stranica kada naiđe na zahtjev za novom stranicom. Ako trebate znati kako koristiti komandu, možete napisati nešto poput tldr curl i dobiti opis na jednostavnom engleskom jeziku i dobre primjere korištenja komande.
Naravno, sav ovaj posao instalacije može se automatizirati pomoću ili instalacijskog skripta, ali to zapravo nije u skladu s ideologijom Alpine — postavljanje minimalne instalacije precizno prema vlastitim potrebama. Osim toga, to je potrošilo toliko vremena, zar ne?
Dodatne informacije
Na Wiki iSH postoji stranica "" s izvještajima o tome koji paketi trenutno funkcioniraju. Usput, izgleda da .
Na još jednoj wiki stranici objašnjeno je kako iz aplikacije iOS Files. To je jedan od načina na koje možete premještati i kopirati datoteke.
Također možete instalirati Git (da! apk add git ) i poslati svoj rad na udaljeni repozitorij ili ga prenijeti na poslužitelj putem SSH. I, naravno, možete preuzeti i pokrenuti neograničen broj izvanrednih open-source projekata s GitHuba.
Više o iSH možete saznati na ovim vezama:
U okviru reklame
VDSina nudi ili Windows. Koristimo isključivo , najbolju u svojoj klasi kontrolnu ploču poslužitelja vlastite izrade i jedan od najboljih data centara u Rusiji i EU. Požurite s narudžbom!
Izvor: habr.com
