
Știați că este posibil să rulați linia de comandă Linux pe un dispozitiv iOS? Poate vă întrebați: „De ce ar trebui să folosesc aplicații text pe iPhone?” O întrebare firească. Dar dacă citiți Opensource.com, probabil știți răspunsul: utilizatorii Linux doresc să poată lucra cu acesta pe orice dispozitiv și să utilizeze propriile setări.
Dar cel mai mult ei își doresc soluții pentru sarcini complexe.
Am un iPad 2 Mini de șapte ani, care încă se descurcă bine pentru citirea cărților electronice și alte sarcini. Totuși, vreau să-l folosesc și pentru accesarea liniei de comandă a aplicațiilor cu setul meu de programe și scripturi fără de care nu pot lucra. Am nevoie de un mediu la care sunt obișnuit, precum și de standardul meu de dezvoltare. Iată cum am reușit să fac acest lucru.
Conectarea la tastatură
Lucrul cu linia de comandă pentru programare prin intermediul tastaturii pe ecranul telefonului sau al tabletei este destul de incomod. Recomand conectarea unei tastaturi externe, fie prin Bluetooth, fie folosind un adaptor de conectare pentru cameră pentru a conecta o tastatură prin cablu (eu am ales cea de-a doua variantă). Când conectezi tastatura divizată Kinesis Advantage la iPhone 6, rezultatul este un dispozitiv ciudat care amintește de din clasicul Shadowrun.
Instalarea unei shell pe iOS
Pentru a rula un sistem Linux complet funcțional pe iOS există două opțiuni:
- Secure shell (SSH), conectat la un computer cu Linux
- Rularea unui sistem virtual cu Alpine Linux folosind iSH, care este open source, dar trebuie instalat printr-o aplicație proprietară TestFlight de la Apple
În alternativă, există două aplicații terminal emulator open source, care oferă posibilitatea de a lucra cu instrumente open-source într-un mediu restricționat. Aceasta este cea mai limitată variantă - de fapt, rulați nu Linux, ci instrumente Linux. Când folosiți aceste aplicații, există restricții severe în privința capacităților, totuși obțineți o funcționalitate parțială a liniei de comandă.
Înainte de a trece la soluții complexe, voi examina metoda cea mai simplă.
Opțiunea 1: shell într-o „sandbox”
Una dintre cele mai simple modalități este să instalați o aplicație pentru iOS . Aceasta Un shell de comandă în „sandbox” cu suport pentru peste 80 de comenzi, la prețul de zero dolari. Acesta vine împreună cu Python 2.7, Python 3.7, Lua, C, Clang și multe altele.
Funcționalitate aproximativ similară oferă , descris de dezvoltatori ca „interfața de utilizator de test pentru platforma cu introducere pe ecran”. Sursele a-Shell sunt disponibile , este în dezvoltare activă, oferă acces la sistemul de fișiere și vine cu Lua, Python, Tex, Vim, JavaScript, C și C++, precum și cu Clang și Clang++. De asemenea, permite instalarea pachetelor Python folosind pip.
Variantă 2: SSH
Un alt pas înainte față de descărcarea aplicației este configurarea unui client SSH. De mult timp avem posibilitatea de a folosi oricare dintre numeroasele aplicații client SSH pentru iOS pentru a ne conecta la un server care rulează Linux sau BSD. Avantajul utilizării SSH este că pe server poate rula orice distribuție cu orice software. Lucrezi de la distanță, iar rezultatele muncii tale sunt transmise pur și simplu emulatorului de terminal pe dispozitivul iOS.
— este o aplicație SSH plătită populară în . Dacă nu ținem cont de ecranul mic al dispozitivului, utilizarea acestui software seamănă cu conectarea la un server prin orice alt terminal de comandă. Terminalul Blink arată grozav, are multe teme gata făcute și o funcție de creare a propriilor teme, inclusiv posibilitatea de a personaliza și adăuga noi fonturi.
Variantă 3: rularea Linux
Utilizarea SSH pentru a te conecta la un server Linux este o modalitate excelentă de acces la linia de comandă, dar necesită un server extern și o conexiune de rețea. Aceasta nu este cea mai mare barieră, dar nu poate fi complet ignorată, așa că este posibil să ai nevoie să lucrezi cu Linux fără un server.
Dacă acesta este cazul tău, va trebui să faci un alt pas înainte. — este un serviciu proprietar pentru instalarea aplicațiilor în dezvoltare înainte de a fi lansate în Apple App Store. Aplicația TestFlight poate fi descărcată din App Store, iar apoi poate fi utilizată pentru aplicații de testare. Aplicațiile din TestFlight permit unui număr limitat de beta-testeri (de obicei până la 10.000) să lucreze cu ele pentru o perioadă limitată de timp. Pentru a descărca aplicația de testare, trebuie să accesați linkul de pe dispozitivul dumneavoastră, care se află de obicei pe site-ul web al dezvoltatorului aplicației de testare.
Lansarea Alpine Linux cu iSH
— este o aplicație open-source TestFlight care rulează o mașină virtuală cu o distribuție gata pregătită (cu puțin efort, se pot rula și alte distribuții).
O caracteristică importantă: aplicația este experimentală. Deoarece iSH este acum o aplicație de testare, nu așteptați o funcționare constantă și fiabilă. Aplicațiile TestFlight sunt limitate ca timp. Construcția mea actuală va funcționa doar 60 de zile. Acest lucru înseamnă că, după 60 de zile, voi fi exclus și va trebui să mă reînscriu pentru următoarea etapă a testării iSH. Mai mult, voi pierde toate fișierele mele dacă nu le exportez utilizând Files pe iOS sau nu le copiez pe un serviciu de gazduire Git sau . Cu alte cuvinte: Nu conta că totul va continua să funcționeze! Nu stoca nimic important în sistem! Efectuați backup într-un loc separat!
Instalare iSH
Începeți prin a instala din App Store. Apoi instalați iSH, de pe site-ul aplicației. Există o altă metodă de instalare folosind AltStore, dar nu am încercat-o. Sau, dacă aveți un cont de dezvoltator plătit, puteți descărca depozitul iSH de pe GitHub și să-l instalați manual.
Prin linkul TestFlight, aplicația iSH va fi instalată pe dispozitivul dumneavoastră. Asemenea oricărei alte aplicații, pe ecran va apărea un iconiță.
Gestionarea pachetelor
iSH rulează un emulator x86 cu Alpine Linux. Alpine este o distribuție mică de mai puțin de 5 MB. Am lucrat prima dată cu Alpine, așa că m-am gândit că acest minimalism va fi deranjant, dar de fapt mi-a plăcut foarte mult.

În Alpine se folosește un manager de pachete , care este mai simplu chiar decât apt sau pacman.
Cum se instalează un pachet:
apk add packageCum se elimină un pachet:
apk del packageCum să afli alte comenzi și informații:
apk --helpActualizarea managerului de pachete:
apk update
apk upgradeInstalarea editorului de text
Editorul de text standard pentru Alpine este Vi, dar eu prefer Vim, așa că l-am instalat:
apk add vimDacă doriți, puteți instala Nano sau Emacs.
Schimbarea shell-ului
Nu știu despre voi, dar eu am avut nevoie de . Alte persoane preferă sau . Totuși, în Alpine se folosește ash! Ash este un fork al shell-ului Dash, care este el însuși un fork al originalului ash, sau . Prioritatea sa este viteza. Am decis să sacrific viteza pentru completarea automată încorporată, culorile, controlul tastelor Vim și evidențierea sintaxei, pe care le iubesc și le știu din fish shell.
Instalarea fish:
apk add fishDacă aveți nevoie de Bash cu completarea automată și paginile man, atunci le puteți instala:
apk add bash bash-doc bash-completionIdeologia minimalistă a Alpine înseamnă, de obicei, că unele programe care în alte distribuții sunt un singur pachet, vor fi împărțite în mai multe pachete mai mici. De asemenea, acest lucru înseamnă că puteți personaliza și micșora dimensiunea sistemului exact așa cum doriți.
Mai multe informații despre instalarea Bash pot fi găsite în .
Schimbarea shell-ului implicit
După instalarea fish, puteți comuta temporar pe ea introducând fish și trecând în shell. Dar vreau să fac fish shell-ul implicit, iar comanda chsh, pe care am folosit-o în alte distribuții, nu a funcționat.
Mai întâi să aflăm unde s-a instalat fish:
which fishIată ce am obținut:
/usr/bin/fish Apoi vom schimba login shell-ul în fish. Puteți folosi orice editor care vă este convenabil. Dacă sunteți începător, instalați Nano (cu comanda apk add nano), pentru a putea edita fișierele de configurare și a le salva prin CTRL+X, confirmați și ieșiți.
Dar eu am folosit Vim:
vim /etc/passwdPrima mea linie a fost:
root:x:0:0:root:/root:/bin/ashPentru a face fish shell-ul implicit, vom schimba această linie în următoarea:
root:x:0:0:root:/root:/usr/bin/fishApoi vom salva fișierul și vom ieși.
Sunt sigur că există o metodă bună de a schimba calea shell-ului pentru a-l putea folosi imediat. Dar eu nu o cunosc, așa că recomand să reveniți în browserul aplicațiilor, să forțați ieșirea din shell și, pentru siguranță, să opriți și să reporniți iPad-ul sau iPhone-ul. Redeschideți iSH și acum, pe lângă mesajul „Welcome to Alpine!” și informațiile despre pornirea cu apk, veți vedea mesajul standard de bun venit al login-ului fish: Bine ați venit în fish, shell-ul interactiv prietenos. Ura!

Configurarea Python și pip
Am decis să adaug (versiunea 3.x), nu doar pentru a scrie cod, ci și pentru că folosesc mai multe programe pe Python. Să-l instalăm:
apk add python3Deși Python 2.x este învechit, îl putem instala și pe acesta:
apk add pythonSă instalăm managerul de pachete Python numit pip și :
python3 -m ensurepip --default-pipInstalarea și configurarea managerului de pachete vor dura un pic de timp, așa că vă rog să așteptați.
Apoi, vom putea descărca instrumentul pentru transferul de fișiere prin rețea :
apk add curlCitind manualele
Fish folosește completarea automată integrată bazată pe paginile man. La fel ca alți utilizatori de linie de comandă, eu folosesc manualul man, iar în Alpine nu este instalat. Așa că l-am instalat cu pagerul terminalului :
apk add man man-pages less less-docÎn plus față de man, folosesc minunatul , care oferă pagini man simplificate și gestionate de comunitate.
L-am instalat cu ajutorul pip:
pip install tldr Comanda tldr se conectează la web pentru a obține pagini atunci când întâlnește o cerere pentru o nouă pagină. Dacă aveți nevoie să știți cum să folosiți o comandă, puteți scrie ceva de genul tldr curl și obțineți o descriere în limba engleză simplă și exemple bune de utilizare a comenzii.
Desigur, toată această muncă de instalare poate fi automatizată cu ajutorul sau al unui script de instalare, dar de fapt, asta nu se potrivește foarte bine cu ideologia Alpine — configurarea unei instalări minime clar adaptate nevoilor tale. Mai mult, a luat atât de mult timp, nu-i așa?
Informații suplimentare
În Wiki iSH există o pagină "" cu rapoarte despre ce pachete funcționează acum. Apropo, se pare că .
Pe o altă pagină wiki se explică cum să din aplicația iOS Files. Acesta este unul dintre modurile de a muta și copia fișiere.
De asemenea, puteți instala Git (da! apk add git ) și încărcați munca dvs. în depozitul remote sau transferați-o pe server prin SSH. Și, desigur, puteți descărca și rula orice număr de proiecte open-source minunate de pe GitHub.
Mai multe informații despre iSH pot fi găsite la aceste linkuri:
În numele publicității
VDS oferă sau Windows. Folosim doar , cea mai bună din categoria sa panou de control pentru servere dezvoltat de noi și unele dintre cele mai bune centre de date din Rusia și UE. Grăbiți-vă să comandați!
Sursa: habr.com
