Rulați linia de comandă Linux pe iPad

știați că puteți rula o linie de comandă Linux pe dispozitivul dvs. iOS? S-ar putea să vă întrebați: „de ce aș vrea să folosesc aplicații bazate pe text pe micul meu iPhone?”OK, destul de corect. Aceasta este o întrebare destul de rezonabilă. Dar dacă citești Opensource.com, probabil știți răspunsul: utilizatorii Linux doresc să poată utiliza orice dispozitiv și doresc, de asemenea, să utilizeze propriile personalizări.

și mai presus de toate, Ei doresc o provocare.

am un iPad 2 Mini în vârstă de șapte ani, care încă funcționează bine pentru citirea cărților electronice și a altor sarcini. Dar, de asemenea, vreau să-l folosesc pentru a accesa linia de comandă pentru aplicații și suita mea de programe și scripturi pe care nu le pot face fără. Vreau mediul cu care sunt obișnuit, precum și mediul meu de dezvoltare standard. Iată cum am făcut-o.

conectarea la o tastatură

utilizarea liniei de comandă pentru programarea pe tastatura de pe ecran a unui telefon sau tabletă nu este foarte distractivă. Vă recomand să conectați o tastatură externă, fie prin Bluetooth, fie prin utilizarea unui adaptor pentru setul de conectare a camerei pentru a conecta o tastatură cu fir (preferința mea). Conectarea tastaturii mele Kinesis Advantage split în iPhone-ul meu 6 face pentru unele optice ciudate, cum ar fi cyberdeck-ul unui corp din jocul clasic de rol Shadowrun.

obțineți un shell pe iOS

aveți două opțiuni pentru a rula un sistem Linux complet pe iOS:

  • Secure shell (SSH) într-un computer Linux
  • rulați un sistem virtualizat folosind Alpine Linux cu iSH, care este open source, dar trebuie instalat folosind aplicația TestFlight proprietară Apple

alternativ, există două aplicații emulator de terminal open source care oferă instrumente open source într-un mediu restricționat. Aceasta este cea mai limitată opțiune—nu vă permite să rulați Linux, dar rulați instrumente Linux. Există restricții grele cu privire la ceea ce puteți face pe dispozitiv cu aceste aplicații, dar acestea vă oferă o funcționalitate în linia de comandă.

voi analiza cea mai simplă abordare înainte de a explora soluții mai provocatoare.

opțiunea 1: o carcasă cu nisip

una dintre cele mai ușoare modalități de a începe este cu aplicația iOS LibTerm. Acesta este un shell de linie de comandă open source sandboxed cu peste 80 de comenzi incluse într-o aplicație de 0 USD. Se livrează cu Python 2.7, Python 3.7, Lua, C, zăngăni, și mai mult.

de-a lungul liniilor similare este A-Shell, descris ca o „interfață de utilizator bazată pe text pentru o platformă bazată pe ecran.”A-Shell este open source, în dezvoltare activă, acordă acces la sistemul de fișiere și este livrat cu Lua, Python, Tex, Vim, JavaScript, C și C++, împreună cu zăngănit și zăngănit++. Vă permite chiar să instalați pachete Python cu pip.

Opțiunea 2: SSH oriunde

Un pas în sus de la descărcarea unei aplicații este configurarea unui client SSH. De mult timp, a fost posibil să utilizați una dintre numeroasele aplicații client SSH pe iOS pentru a vă conecta la un server care rulează o distribuție Linux sau BSD. Avantajul utilizării SSH este că serverul dvs. poate rula orice distro cu orice software doriți. Lucrați de la distanță, iar ieșirea dvs. este conectată la emulatorul terminal al dispozitivului dvs. iOS.blink shell este un popular plătit open source SSH app. În afara ecranului mic, utilizarea acestui software este asemănătoare cu conectarea la un server prin orice alt prompt de comandă. Terminalul Blink arată frumos, cu o serie de teme incluse și posibilitatea de a crea propriile teme, inclusiv personalizarea și adăugarea de fonturi noi.

Opțiunea 3: Rulați Linux

utilizarea SSH pentru a vă conecta la un server care rulează Linux este o modalitate excelentă de a accesa un prompt, dar necesită acces la un server extern și o conexiune. Aceasta nu este cea mai gravă barieră la intrare, dar nu este complet neglijabilă și poate doriți să utilizați Linux fără această cerință de server.

dacă acesta este cazul tău, va trebui să izbucnești ceva mai mult pe marginea tăierii. TestFlight este un serviciu proprietar pentru implementarea aplicațiilor în dezvoltare înainte de a fi trimise la Apple App Store. Puteți descărca aplicația TestFlight din magazin și apoi vă puteți înscrie pentru o serie de aplicații de testare. Aplicațiile din TestFlight permit un număr limitat de testeri beta externi (în general până la 10.000) pentru o perioadă limitată de timp. Pentru a descărca o aplicație de testare, trebuie să accesați un link direct de pe dispozitivul dvs., care se găsește în general pe site-ul dezvoltatorului aplicației de testare.

Run Alpine Linux cu iSH

iSH este o aplicație open source TestFlight care rulează o mașină virtuală cu distribuția Alpine Linux din cutie (dar puteți rula alte distribuții cu un pic mai mult tinkering).

un avertisment important: acesta este experimental. Deoarece iSH este în prezent o aplicație de testare, nu vă așteptați la un serviciu permanent sau robust. Aplicațiile TestFlight sunt limitate în timp. Construcția mea actuală durează 60 de zile. Aceasta înseamnă că în 60 de zile, voi fi blocat și va trebui să mă alătur următoarei faze de testare a iSH. În plus, îmi voi pierde fișierele dacă nu le export cu fișiere pe iOS sau le fac backup la o gazdă Git sau cu SSH. Pentru a fi clar: nu vă bazați pe acest lucru pentru a continua să lucrați! Nu puneți nimic aici care este esențial! Înapoi la munca ta în altă parte!

instalați iSH

începeți prin instalarea TestFlight prin App Store. Apoi instalați iSH obținând linkul de instalare prin intermediul site-ului său web. Există o altă metodă de instalare care utilizează AltStore, dar nu am încercat-o. Sau, dacă aveți un cont de dezvoltator plătit, puteți descărca repo-ul iSH de la GitHub și îl puteți implementa singur.

folosind linkul, TestFlight instalează o aplicație iSH pe dispozitiv. Ca orice altă aplicație, apare pe ecran cu o pictogramă.

gestionare pachete

iSH rulează un emulator x86 cu Alpine Linux. Alpine este un mic, sub-5MB distro. Aceasta a fost prima dată când am alergat Alpine și am crezut că voi fi frustrat de o distribuție atât de minimă, dar de fapt mi-a plăcut foarte mult.

ish-instalare.png

Alpine Linux pe iOS

(Lee Tusman, CC BY-SA 4.0)

Alpine utilizează managerul de pachete apk, care este mai simplu decât chiar apt sau pacman.

pentru a instala un pachet:

apk add package

pentru a elimina un pachet:

apk del package

găsiți alte comenzi și informații cu:

apk --help

actualizați managerul de pachete:

apk updateapk upgrade

obțineți un editor de text

editorul de text implicit al Alpine este Vi, dar prefer Vim, așa că l-am instalat:

apk add vim

ar putea instala nano sau Emacs, dacă preferați.

schimbă coaja

nu știu despre tine, dar am nevoie de coaja de pește. Alți oameni preferă Bash sau Zsh. Dar Alpine folosește cenușă! Cenușa este o furculiță de coajă de bord, ea însăși o furculiță a cenușii originale sau a cochiliei Almquist. Este proiectat pentru viteză. Am decis să schimb viteza în favoarea auto-completare built-in, culoare, control vim-cheie, și sintaxa subliniind că știu și dragoste în coajă de pește.

Install fish:

apk add fish

Dacă doriți Bash și completările sale și pagini de manual în schimb, trebuie să le instalați și câteva lucruri suplimentare:

apk add bash bash-doc bash-completion

ideologia minimalistă Alpine înseamnă, în general, că unele programe care ar fi un singur pachet în alte distribuții sunt împărțite în mai multe pachete mai mici. Acest lucru înseamnă, de asemenea, puteți personaliza și slim jos sistemul exact cum doriți.

puteți găsi mai multe detalii despre instalarea Bash în acest tutorial.

schimbați shell-ul implicit

după instalarea fish, puteți trece temporar la acesta și încercați-l tastândfish și aruncând în shell. Dar vreau să fac fish shell-ul meu implicit, iar comanda chsh cu care sunt obișnuit de la alte distribuții nu funcționează.

Mai întâi, aflați unde este instalat peștele:

which fish

ieșirea mea:

/usr/bin/fish

apoi, editați shell-ul de conectare pentru a utiliza peștele. Puteți utiliza orice editor cu care vă simțiți confortabil. Dacă sunteți începător, instalați Nano (cu apk add nano), astfel încât să puteți edita fișierele de configurare și să le salvați cu CTRL+X, confirmați și renunțați.

dar am folosit Vim:

vim /etc/passwd

prima mea linie a fost:

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

pentru a face fish implicit, schimbați acea linie la:

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

apoi salvați și părăsiți.

sunt sigur că există o modalitate bună de a re-sursa shell-ului, astfel încât să puteți începe să îl utilizați imediat. Dar nu sunt sigur, așa că vă recomand să reveniți la browserul aplicației, să renunțați forțat la shell și, pentru o bună măsură, să închideți și să reporniți iPad-ul sau iPhone-ul. Redeschideți iSH, iar acum, în plus față de „Bine ați venit la Alpine!”mesaj și informații cu privire la Noțiuni de bază cu apk, veți vedea implicit fish login mesaj de bun venit: Bine ați venit la pește, coajă interactiv prietenos. Ura!

ish.png

coajă de pește pe Alpine Linux

(Lee Tusman, CC BY-SA 4.0)

Configurarea Python și pip

am decis să adaug Python (versiunea 3.x), nu doar pentru a putea scrie cod, ci pentru că mă bazez pe mai multe programe Python. Instalați-l:

apk add python3

deși Python 2.x este învechit, îl puteți instala în continuare:

apk add python

Instalați managerul de pachete Python, pip și setuptools:

python3 -m ensurepip --default-pip

este nevoie de ceva timp pentru a instala și configura managerul de pachete, așa că așteptați.

apoi, puteți descărca curl, instrumentul de transfer de rețea:

apk add curl

citiți manualul

Fish folosește completarea automată încorporată pe baza paginilor manuale. Ca și alți utilizatori de linie de comandă, mă bazez pe man manual, iar Alpine nu vine cu acesta instalat. Deci, l-am instalat împreună cu pagerul mai puțin:

apk add man man-pages less less-doc

În plus față de om, folosesc fabulosul proiect TLDR pages, care oferă pagini manuale simplificate, bazate pe comunitate.

l-am instalat cu pip:

pip install tldr

tldr comanda se conectează la web pentru a prelua pagini ori de câte ori întâlnește o cerere pentru una nouă. Dacă trebuie să învățați cum să utilizați o comandă, puteți să tastați ceva de genul tldr curl pentru a obține o explicație în limba engleză și exemple bune despre cum să utilizați comanda.

ai putea, desigur, automatiza toate aceste lucrări de instalare cu dotfiles sau un script de instalare, dar asta nu s-ar încadra într-adevăr în modul Alpine de personalizare a unei instalări minime Exact la specificațiile tale. În plus, nu a durat atât de mult, nu-i așa?

Aflați mai multe

iSH wiki conține o pagină „ce funcționează” cu rapoarte despre ce pachete funcționează în prezent. De remarcat, npm nu pare să funcționeze în acest moment.

o altă pagină wiki explică modul în care puteți accesa fișierele iSH din aplicația fișiere iOS. Acesta este un mod în care puteți muta și transfera fișiere.

Lasă un răspuns

Adresa ta de email nu va fi publicată.