Pokretanje Linux komandne linije na iOS-u

Pokretanje Linux komandne linije na iOS-u

Jeste li znali da Linux komandnu liniju možete pokrenuti na iOS uređaju? Možda se pitate: "Zašto bih trebao koristiti aplikacije za slanje poruka na svom iPhoneu?" Pošteno pitanje. Ali ako čitate Opensource.com, vjerovatno znate odgovor: korisnici Linuxa žele biti u mogućnosti da ga koriste na bilo kojem uređaju i žele ga sami prilagoditi.

Ali najviše od svega žude za rješavanjem složenih problema.

Imam sedam godina star iPad 2 Mini koji je još uvijek prilično dobar za čitanje e-knjiga i druge zadatke. Međutim, želim ga koristiti i za pristup komandnoj liniji aplikacija sa mojim skupom programa i skripti, bez kojih ne mogu raditi. Treba mi okruženje na koje sam navikao, kao i moje standardno razvojno okruženje. A evo kako sam to uspio postići.

Povezivanje na tastaturu

Rad sa komandnom linijom za programiranje preko tastature na ekranu telefona ili tableta je prilično nezgodan. Preporučujem povezivanje eksterne tastature, bilo preko Bluetooth-a, ili korišćenjem adaptera za povezivanje kamere za povezivanje žičane tastature (ja sam izabrao ovo drugo). Kada spojite Kinesis Advantage split tastaturu na iPhone 6, dobijate čudan uređaj koji liči na korporativni cyberdeck od klasike igra uloga Shadowrun.

Instaliranje ljuske na iOS

Za pokretanje potpuno opremljenog Linux sistema na iOS-u, postoje dvije opcije:

  • Sigurna školjka (SSH) povezana sa Linux računarom
  • Pokretanje virtuelnog sistema koristeći Alpine Linux sa iSH, koji je otvorenog koda, ali mora biti instaliran pomoću Appleove vlasničke aplikacije TestFlight

Kao alternativa, postoje dvije aplikacije emulatora terminala otvorenog koda koje pružaju mogućnost rada s alatima otvorenog koda u ograničenom okruženju. Ovo je najsloženija opcija - u stvari, ovako pokrećete Linux alate, a ne Linux. Postoje ozbiljna ograničenja funkcija kada radite sa ovim aplikacijama, ali dobijate delimičnu funkcionalnost komandne linije.

Prije nego što pređem na složena rješenja, pogledat ću najjednostavniji metod.

Opcija 1: Sandbox shell

Jedan od najjednostavnijih načina je instaliranje iOS aplikacije LibTerm. Ovo open source sandboxed komandna školjka sa podrškom za preko 80 komandi za nula dolara. Dolazi u paketu sa Python 2.7, Python 3.7, Lua, C, Clang i još mnogo toga.

Ima približno istu funkcionalnost a-ljuska, koju su programeri opisali kao „testno korisničko sučelje za platformu za unos na ekranu“. a-Shell izvori su objavljeni open source, u aktivnom je razvoju, omogućava pristup sistemu datoteka i dolazi sa Lua, Python, Tex, Vim, JavaScript, C i C++, kao i Clang i Clang++. Čak vam omogućava da instalirate Python pakete putem pipa.

Opcija 2: SSH

Još jedan korak dalje od preuzimanja aplikacije je postavljanje SSH klijenta. Već duže vrijeme možemo koristiti bilo koju od mnogih SSH klijentskih aplikacija za iOS za povezivanje sa serverom koji koristi Linux ili BSD. Prednost korištenja SSH-a je da server može pokrenuti bilo koju distribuciju sa bilo kojim softverom. Radite na daljinu i rezultati vašeg rada se jednostavno prenose na emulator terminala na vašem iOS uređaju.

Blink shell je popularna plaćena SSH aplikacija u open source. Ako zanemarite mali ekran uređaja, tada je korištenje ovog softvera slično povezivanju sa serverom putem bilo koje druge komandne linije. Blink Terminal izgleda sjajno, ima mnogo gotovih tema i mogućnost kreiranja vlastitih, uključujući mogućnost prilagođavanja i dodavanja novih fontova.

Opcija 3: Pokrenite Linux

Korišćenje SSH-a za povezivanje sa Linux serverom je odličan način za pristup komandnoj liniji, ali zahteva eksterni server i mrežnu vezu. Ovo nije najveća prepreka, ali se ne može potpuno zanemariti, pa ćete možda morati pokrenuti Linux bez servera.

Ako je to vaš slučaj, morat ćete napraviti još jedan korak dalje. TestFlight je vlasnički servis za instaliranje razvijenih aplikacija čak i prije nego što budu objavljene u Apple App Store-u. Možete instalirati aplikaciju TestFlight iz App Store-a, a zatim koristiti testne aplikacije. Aplikacije u TestFlight-u dozvoljavaju ograničenom broju beta testera (obično do 10) da rade s njima ograničeno vrijeme. Da biste preuzeli testnu aplikaciju, morate sa svog uređaja otići na vezu koja se obično nalazi na web stranici programera testne aplikacije.

Pokretanje Alpine Linuxa sa iSH-om

ISH je aplikacija TestFlight otvorenog koda koja pokreće virtuelnu mašinu sa gotovom distribucijom Alpine Linux (uz malo truda, možete pokrenuti druge distribucije).

Važna karakteristika: eksperimentalna primjena. Budući da je iSH trenutno testna aplikacija, ne očekujte stalan i pouzdan rad. TestFlight aplikacije su vremenski ograničene. Moja trenutna verzija će trajati samo 60 dana. To znači da ću nakon 60 dana biti eliminisan i da ću se morati ponovo pridružiti sljedećem krugu iSH testiranja. Štoviše, izgubit ću sve svoje datoteke osim ako ih ne izvezem koristeći Files na iOS-u ili ih kopiram na Git host ili preko SSH. Drugim riječima: Ne očekujte da će ovo nastaviti raditi! Ne stavljajte ništa važno za vas u sistem! Napravi sigurnosnu kopiju na zasebnoj lokaciji!

Instaliranje iSH

Počnite s instalacijom TestFlight iz App Store-a. Zatim instalirajte iSH, dobio link za instalaciju sa web stranice aplikacije. Postoji još jedan način instalacije koristeći AltStore, ali ga nisam isprobao. Ili, ako imate plaćeni račun programera, možete preuzeti iSH spremište sa GitHub-a i sami ga instalirati.

Koristeći vezu, TestFlight će instalirati iSH aplikaciju na vaš uređaj. Kao i kod svake druge aplikacije, na ekranu će se pojaviti ikona.

Upravljanje paketima

iSH pokreće x86 emulator sa Alpine Linuxom. Alpine je mali distro, veličine manje od 5MB. Ovo mi je bio prvi put da radim sa Alpine-om, pa sam mislio da će minimalizam biti dosadan, ali mi se zapravo jako dopao.

Pokretanje Linux komandne linije na iOS-u
Alpine koristi menadžer paketa apk, što je lakše nego čak i apt ili pacman.

Kako instalirati paket:

apk add package

Kako ukloniti paket:

apk del package

Kako pronaći druge komande i informacije:

apk --help

Ažuriranje menadžera paketa:

apk update
apk upgrade

Instaliranje uređivača teksta

Alpineov podrazumevani uređivač teksta je Vi, ali ja više volim Vim, pa sam ga instalirao:

apk add vim

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

Promjena školjke

Ne znam za vas, ali meni je trebalo školjka riba. Drugi ljudi preferiraju bash ili Zsh. Međutim, Alpine koristi pepeo! Ash je vilica ljuske Dash, koja je sama po sebi viljuška originalnog pepela, ili Almquist shell. Njen prioritet je brzina. Odlučio sam zamijeniti brzinu za ugrađeno automatsko dovršavanje, boje, kontrole Vim tipki i isticanje sintakse koje volim i poznajem iz riblje ljuske.

Instalacija ribe:

apk add fish

Ako vam je potreban Bash sa njegovim autodovršavanjem i man stranicama, onda ih instalirajte:

apk add bash bash-doc bash-completion

Alpine minimalistička ideologija obično znači da će neki programi koji su upakovani u drugim distribucijama biti podijeljeni u nekoliko manjih paketa. To također znači da možete prilagoditi i smanjiti veličinu vašeg sistema tačno onako kako želite.

Za više informacija o instaliranju Bash-a, pogledajte ovaj tutorijal.

Promjena zadane ljuske

Nakon instaliranja ribe, možete se privremeno prebaciti na nju unosom fish i odlazak u školjku. Ali želim da ribu postavim kao zadanu ljusku i naredbu chsh, koji sam koristio na drugim distribucijama, nije radio.

Prvo saznajemo gdje je riba instalirana:

which fish

Evo šta sam dobio:

/usr/bin/fish

Zatim promijenite ljusku za prijavu u ribu. Možete koristiti bilo koji uređivač koji vam odgovara. Ako ste početnik, instalirajte Nano (sa komandom apk add nano) tako da možete uređivati ​​konfiguracijske datoteke i spremiti ih putem CTRL+X, potvrditi i izaći.

Ali koristio sam Vim:

vim /etc/passwd

Moj prvi red je bio ovakav:

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

Da biste ribu postavili kao zadanu ljusku, promijenite ovu liniju u sljedeće:

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

Zatim sačuvajte datoteku i izađite.

Siguran sam da postoji dobar način da se promijeni putanja do ljuske tako da se može odmah koristiti. Ali ja to ne znam, pa preporučujem da se vratite u preglednik aplikacija, prisilno izađete iz ljuske i da budete sigurni, isključite i ponovo pokrenite iPad ili iPhone. Otvorite iSH ponovo i sada, pored poruke “Dobrodošli u Alpine!” i informacije o pokretanju iz apk-a, vidjet ćete standardnu ​​poruku dobrodošlice za prijavu ribe: Dobrodošli u ribu, prijateljsku interaktivnu ljusku. Ura!

Pokretanje Linux komandne linije na iOS-u

Postavljanje Pythona i pip-a

Odlučio sam da dodam piton (verzija 3.x), ne samo za pisanje koda, već i zato što koristim nekoliko Python programa. Hajde da ga instaliramo:

apk add python3

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

apk add python

Hajde da instaliramo Python paket menadžer pod nazivom pip and setuptools:

python3 -m ensurepip --default-pip

Trebat će neko vrijeme za instalaciju i konfiguraciju upravitelja paketa, stoga samo pričekajte.

Zatim možete preuzeti alat za prijenos datoteka preko mreže curl:

apk add curl

Čitanje priručnika

Fish koristi ugrađeno automatsko dovršavanje zasnovano na man stranicama. Kao i drugi korisnici komandne linije, koristim priručnik man, ali nije instaliran u Alpine. Pa sam ga instalirao sa terminal pejdžerom manje:

apk add man man-pages less less-doc

Osim čovjeka koristim veličanstvene tldr pages projekat, koji pruža pojednostavljene i man stranice vođene zajednicom.

Instalirao sam ga koristeći pip:

pip install tldr

tim tldr povezuje se na web radi preuzimanja stranica kada naiđe na zahtjev za novu stranicu. Ako trebate znati kako koristiti naredbu, možete napisati nešto poput tldr curl i dobijete opis na običnom engleskom i dobre primjere kako koristiti naredbu.

Naravno, svi ovi instalacijski radovi mogu se automatizirati korištenjem dotfiles ili instalacijsku skriptu, ali to zapravo ne odgovara Alpineovoj ideologiji - prilagođavanje minimalne instalacije upravo vašim potrebama. Osim toga, trebalo je tako dugo, zar ne?

dodatne informacije

iSH Wiki ima stranicu "šta radi" sa izvještajima o tome koji paketi trenutno rade. Usput, izgleda npm trenutno ne radi.

Druga wiki stranica objašnjava kako pristupiti iSH datotekama iz aplikacije iOS Files. Ovo je jedan od načina na koji možete premještati i kopirati datoteke.

Također možete instalirati Git (da! apk add git ) i gurnite svoj rad u udaljeno spremište ili ga prenesite na server preko SSH-a. I, naravno, možete preuzeti i pokrenuti bilo koji broj sjajnih projekata otvorenog koda sa GitHuba.

Više informacija o iSH-u možete pronaći na ovim linkovima:

O pravima reklame

Vdsina ponude virtuelni serveri na Linuxu ili Windows. Koristimo isključivo brendirana oprema, najbolji serverski kontrolni panel vlastitog dizajna te vrste i jedan od najboljih data centara u Rusiji i EU. Požurite da naručite!

Pokretanje Linux komandne linije na iOS-u

izvor: www.habr.com

Dodajte komentar