Zaženemo ukazno vrstico Linux na iOS

Zaženemo ukazno vrstico Linux na iOS

Ali ste vedeli, da lahko zaženete ukazno vrstico Linux na napravi iOS? Morda se sprašujete: „Zakaj bi uporabljal besedilne aplikacije na iPhonu?“ To je upravičeno vprašanje. Toda, če berete Opensource.com, verjetno poznate odgovor: uporabniki Linuxa želijo delati z njim na kateri koli napravi in uporabljati svoje nastavitve.

Toda najbolj si želijo reševati zapletene naloge.

Imam sedem let star iPad 2 Mini, ki je še vedno dovolj dober za branje e-knjig in drugih nalog. Vendar pa ga želim uporabljati tudi za dostop do ukazne vrstice aplikacij z mojim naborom programov in skript, brez katerih ne morem delati. Potrebujem okolje, na katerega sem navajen, ter svojo standardno razvojno okolje. In tako sem to dosegel.

Povezava s tipkovnico

Delo z ukazno vrstico za programiranje prek zaslonske tipkovnice telefona ali tablice je precej neprijetno. Priporočam, da priključite zunanjo tipkovnico, bodisi prek Bluetooth bodisi z uporabo adapterja za povezovanje kamer, da priključite žično tipkovnico (izbral sem drugo možnost). Ko priključite razdeljeno tipkovnico Kinesis Advantage na iPhone 6, dobite čudno napravo, ki spominja na korporativni kiberdek iz klasične igralne Shadowrun.

Namestitev lupine na iOS

Za zagon polnofunkcionalnega sistema Linux na iOS sta na voljo dva načina:

  • Secure shell (SSH), povezan s računalnikom z Linuxom
  • Zagon virtualnega sistema z Alpine Linux s iSH, ki je odprtokoden, vendar ga je treba namestiti s pomočjo lastniške aplikacije TestFlight podjetja Apple

Alternativno obstajata dve aplikaciji-emulatorja terminala v odprti kodi, ki omogočata delo z odprtokodnimi orodji v omejenem okolju. To je najbolj osnovna možnost — v resnici ne zagonite Linuxa, temveč orodja Linux. Pri delu s temi aplikacijami obstajajo stroge omejitve možnosti, vendar pridobite delno funkcionalnost ukazne vrstice.

Preden preidem na kompleksne rešitve, bom obravnaval najpreprostejši način.

Možnost 1: lupina v „peskovniku“

Eden od najpreprostejših načinov je namestitev aplikacije za iOS LibTerm. To je odprtokodna ukazovna ljuska u „sandboxu“ s podrškom za više od 80 komandi po cijeni od nula dolara. U paketu dolazi s Python 2.7, Python 3.7, Lua, C, Clang i još mnogo toga.

Otprilike sličnu funkcionalnost ima a-Shell, koju su programeri opisali kao „testno korisničko sučelje za platformu s unosom na ekranu“. Izvori a-Shell su objavljeni kao open source, aktivno se razvija, omogućava pristup datotečnom sustavu i dolazi s Lua, Python, Tex, Vim, JavaScript, C i C++, kao i s Clang i Clang++. Čak omogućava instalaciju Python paketa putem pip-a.

Opcija 2: SSH

Još jedan korak naprijed u odnosu na preuzimanje aplikacije je postavljanje SSH klijenta. Već dugo vremena mogli smo koristiti bilo koju od mnogih aplikacija SSH klijenata za iOS kako bismo se povezali na server na kojem je pokrenut Linux ili BSD. Prednost korištenja SSH je ta što na serveru može raditi bilo koja distribucija s bilo kojim softverom. Radite udaljeno i rezultati se jednostavno šalju u emulator terminala na iOS uređaju.

Blink shell — to je popularna plaćena SSH aplikacija u open source. Ako ne obratite pažnju na mali ekran uređaja, korištenje ovog softvera nalikuje povezivanju s poslužiteljem preko bilo kojeg drugog komandnog retka. Blink terminal izgleda sjajno, ima mnogo unaprijed izrađenih tema i funkciju za izradu vlastitih, uključujući mogućnost prilagođavanja i dodavanja novih fontova.

Opcija 3: pokretanje Linuxa

Korištenje SSH za povezivanje s Linux serverom je odličan način za pristup komandnom retku, ali za to je potreban vanjski server i mrežna veza. To nije najveća prepreka, ali se ne može u potpunosti ignorirati, pa ć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 lastniška storitev za namestitev razvojnih aplikacij, preden so te objavljene v Apple App Store. Aplikacijo TestFlight lahko namestite iz App Store, nato pa uporabljate testne aplikacije. Aplikacije v TestFlight omogočajo omejenemu številu beta testerjev (ponavadi do 10.000), da jih uporabljajo za omejeno časovno obdobje. Da bi prenesli testno aplikacijo, morate na svojem napravi klikniti povezavo, ki je običajno na spletni strani razvijalca testne aplikacije.

Zagon Alpine Linux z iSH

iSH — je open-source aplikacija TestFlight, ki zažene virtualni stroj s predhodno pripravljenim distribucijskim paketom Alpine Linux (s kančkom dela lahko zaženete tudi druge distribucije).

Pomembna značilnost: aplikacija je eksperimentalna. Ker je iSH trenutno testna aplikacija, ne pričakujte stalne in zanesljive delovanja. Aplikacije TestFlight so časovno omejene. Moja trenutna različica bo delovala le 60 dni. To pomeni, da me po 60 dneh izključijo in bom moral ponovno pristopiti k naslednjemu testnemu obdobju iSH. Poleg tega bom izgubil vse svoje datoteke, če jih ne izvozite z uporabo Files na iOS-u ali jih ne kopirate na Git gostitelja ali prek SSH. Drugimi besedami: Ne pričakujte, da bo vse to še naprej delovalo! Ne shranjujte v sistem ničesar, kar je za vas pomembno! Naredite varnostne kopije na drugem mestu!

Namestitev iSH

Začnite z namestitvijo TestFlight iz App Store. Nato namestite iSH, tako da pridobite namestitveno povezavo s spletne strani aplikacije. Obstaja še en način namestitve z uporabo AltStore, a tega nisem preizkusil. Ali pa, če imate plačljiv razvijalčev račun, lahko prenesete repozitorij iSH z GitHub in ga namestite sami.

S povezavo TestFlight bo iSH aplikacija nameščena na vaši napravi. Tako kot katera koli druga aplikacija se bo na zaslonu pojavila ikona.

Upravljanje paketov

iSH deluje kot emulator x86 z Alpine Linux. Alpine je zelo majhna distribucija, ki je manjša od 5 MB. Prvič sem delal z Alpine, zato sem mislil, da bo takšna minimalnost nadležna, vendar mi je dejansko zelo všeč.

Zaženemo ukazno vrstico Linux na iOS
Alpine uporablja upravljalnik paketov apk, ki je preprostejši od apt ali pacman.

Kako namestiti paket:

apk add package

Kako odstraniti paket:

apk del package

Kako izvedeti druge ukaze in informacije:

apk --help

Posodobitev upravljalnika paketov:

apk update
apk upgrade

Namestitev urejevalnika besedila

Privzeti urejevalnik besedila v Alpine je Vi, vendar imam raje Vim, zato sem ga namestil:

apk add vim

Po želji lahko namestite tudi Nano ali Emacs.

Zamenjava lupine

Ne vem, kako je pri vas, a potreboval sem fish shell. Druge osebe raje uporabljajo Bash ili Zsh. Vendar pa Alpine uporablja ash! Ash je odcep lupine Dash, ki je sama odcep iz izvirnega asha ali Almquist shell. Njegova prednost je hitrost. Odločil sem se žrtvovati hitrost za vgrajeno samodejno dopolnjevanje, barve, upravljanje tipk Vim in poudarjanje sintakse, ki jih imam rad in jih poznam iz fish shell.

Namestitev fish:

apk add fish

Če potrebujete Bash z njenim samodejnim dopolnjevanjem in man-stranmi, jo namestite:

apk add bash bash-doc bash-completion

Minimalistična ideologija Alpine običajno pomeni, da so nekateri programi, ki so v drugih distribucijah en paket, razdeljeni na več manjših paketov. To pomeni tudi, da lahko prilagodite in zmanjšate velikost sistema ravno tako, kot želite.

Več o namestitvi Basha lahko izveste iz tega tutorja.

Zamenjava privzete lupine

Po namestitvi fish se lahko začasno preklopite nanjo tako, da vtipkate fish in preidete v lupino. Ampak želim, da postane fish privzeta lupina, ukaz chsh, ki sem ga uporabljal v drugih distribucijah, ni deloval.

Najprej ugotovimo, kam se je fish namestil:

which fish

Tukaj je, kar sem dobil:

/usr/bin/fish

Nato spremenimo prijavno lupino na fish. Uporabite lahko katerikoli urejevalnik, ki vam ustreza. Če ste začetnik, namestite Nano (z ukazom apk add nano), da boste lahko uredili konfiguracijske datoteke in jih shranili preko CTRL+X, potrditi in zapustiti.

Ampak jaz sem uporabil Vim:

vim /etc/passwd

Moja prva vrstica je bila taka:

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

Da bi fish postal privzeta lupina, spremenimo to vrstico na naslednjo:

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

Nato shranimo datotekę in zapustimo.

Prepričan sem, da obstaja dober način za spremembo poti do lupine, da jo lahko takoj uporabite. Vendar ne vem, zato priporočam, da se vrnete v brskalnik aplikacij, prisilno izstopite iz lupine in za zanesljivost izklopite in ponovno zaženete iPad ali iPhone. Ponovno odprete iSH in zdaj poleg sporočila "Welcome to Alpine!" in informacij o zagonu z apk vidite standardno dobrodošlo sporočilo za prijavo fish: Dobrodošli u fish, prijateljski interaktivni shell. Hura!

Zaženemo ukazno vrstico Linux na iOS

Podešavanje Pythona i pip

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

apk add python3

Iako je Python 2.x zastareo, možete instalirati i njega:

apk add python

Instaliraćemo upravljač paketa Python pod imenom pip i setuptools:

python3 -m ensurepip --default-pip

Za instalaciju i podešavanje upravljača paketa biće potrebno malo vremena, pa samo sačekajte.

Zatim ćete moći da preuzmete alat za prenos datoteka preko mreže curl:

apk add curl

Pročitajte priručnike

Fish koristi ugrađeno automatsko dovršavanje zasnovano na man-stranicama. Kao i ostali korisnici komandne linije, koristim priručnik man, a u Alpine nije instaliran. Zato sam ga instalirao sa terminalnim pagerom less:

apk add man man-pages less less-doc

Pored mana, koristim sjajan projekat tldr pages, koji pruža pojednostavljene i zajednicu upravljane man-stranice.

Instalirao sam ga pomoću pip:

pip install tldr

Komanda tldr se povezuje sa webom da bi dobio stranice kada naiđe na zahtev za novom stranicom. Ako želite da saznate kako koristiti komandu, možete napisati nešto poput tldr curl i dobiti opis na jednostavnom engleskom jeziku sa dobrim primerima upotrebe komande.

Naravno, sav ovaj posao instalacije se može automatizovati pomoću dotfiles ili instalacionog skripta, ali zapravo to ne odgovara ideologiji Alpine — podešavanju minimalne instalacije jasno prema vlastitim potrebama. Osim toga, zapravo je to trajalo toliko vremena, zar ne?

Dodatne informacije

Na Viki iSH postoji stranica "what works" sa izveštajima o tome koji paketi trenutno rade. Usput, izgleda da npm trenutno ne radi.

Na još jednoj wiki stranici objašnjeno je kako dobiti pristup datotekama iSH iz iOS aplikacije Files. To je jedan od načina na koji možete prebaciti i kopirati datoteke.

Možete takođe instalirati Git (da! apk add git ) i pushovati svoj rad u udaljeni repozitorijum ili ga prebaciti na server preko SSH. I, naravno, možete preuzeti i pokrenuti bilo koji broj sjajnih open-source projekata sa GitHub-a.

Više o iSH-u možete saznati na ovim linkovima:

V okviru oglaševanja

VDS ponuja virtuelni serveri na Linuxu ili Windowsu. Koristimo isključivo brendiranu opremu, najboljša v svojem razredu nadzorna plošča za strežnike lastne proizvodnje in ena najboljših podatkovnih centrov v Rusiji in EU. Pohitite in naročite!

Zaženemo ukazno vrstico Linux na iOS

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster