Pokrećemo Linux naredbeni prompt na iOS-u

Pokrećemo Linux naredbeni prompt na iOS-u

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 korporativni kibernetski dek iz klasične role-playing igre 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 LibTerm. To je open-source 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 a-Shell, koju su razvili kao „testno korisničko sučelje za platformu sa unosom preko ekrana“. Izvori a-Shella su objavljeni kao open source, 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.

Blink shell — to je popularna plaćena SSH aplikacija u open source. 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. TestFlight — 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

iSH — je open-source TestFlight aplikacija koja pokreće virtualnu mašinu s gotovim distribucijom Alpine Linux (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 putem SSH. 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 TestFlight iz App Storea. Zatim instalirajte iSH, dobivši poveznicu za instalaciju 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.

Pokrećemo Linux naredbeni prompt na iOS-u
U Alpine-u se koristi menadžer paketa apk, koji je jednostavniji čak i od apt ili pacman.

Kako instalirati paket:

apk add package

Kako ukloniti paket:

apk del package

Kako saznati druge komande i informacije:

apk --help

Ažuriranje upravitelja paketa:

apk update
apk upgrade

Instalacija uređivača teksta

Standardni uređivač teksta u Alpineu je Vi, ali preferiram Vim, pa sam ga instalirao:

apk add vim

Ako želite, možete instalirati Nano ili Emacs.

Mijenjanje ljuske

Ne znam za vas, ali meni je bila potrebna fish shell. Drugi ljudi preferiraju Bash ili Zsh. Međutim, u Alpineu se koristi ash! Ash je fork ljuske Dash, koja je sama fork originalnog asha, ili Almquist shell. 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 fish

Ako vam treba Bash s automatskim dovršavanjem i man-stranicama, instalirajte ih:

apk add bash bash-doc bash-completion

Minimalistič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 ovog vodiča.

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 fish

Evo š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/passwd

Moj prvi redak bio je ovakav:

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

Da bismo postavili fish kao zadanu ljusku, promijenit ćemo ovaj redak u sljedeći:

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

Zatim 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!

Pokrećemo Linux naredbeni prompt na iOS-u

Postavljanje Pythona i pip-a

Odlučio sam dodati Python (verziju 3.x), ne samo da bih pisao kod, već i zato što koristim nekoliko programa na Pythonu. Instalirajmo ga:

apk add python3

Iako je Python 2.x zastario, možete ga instalirati i:

apk add python

Instalirajmo Python paket menadžer koji se zove pip i setuptools:

python3 -m ensurepip --default-pip

Za 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 curl:

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 less:

apk add man man-pages less less-doc

Osim man, koristim izvrstan projekt tldr pages, 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 dotfiles 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 "what works" s izvještajima o tome koji paketi trenutno funkcioniraju. Usput, izgleda da npm trenutno ne radi.

Na još jednoj wiki stranici objašnjeno je kako pristupiti datotekama iSH 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 virtualne poslužitelje na Linuxu ili Windows. Koristimo isključivo brendiranu opremu, 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!

Pokrećemo Linux naredbeni prompt na iOS-u

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster