Linux parancssor indítása iOS-en

Linux parancssor indítása iOS-en

Tudta, hogy Linux parancssort indíthat egy iOS eszközön? Talán megkérdezi: „Miért használjak szöveges alkalmazásokat az iPhone-on?” Ez egy jogos kérdés. De ha az Opensource.com-ot olvassa, valószínűleg tudja a választ: a Linux felhasználók szeretnék, ha bármilyen eszközön tudnának dolgozni, és szeretnék a saját beállításaikat használni.

De leginkább a bonyolult problémák megoldására vágynak.

Van egy hét éves iPad 2 Mini-m, amely még mindig jól használható e-könyvek olvasására és egyéb feladatokra. Azonban szeretném használni a parancssorhoz is, a saját programjaimmal és szkriptekkel, amelyek nélkül nem tudok dolgozni. Szükségem van egy környezetre, amelyhez hozzászoktam, és a szokásos fejlesztési környezetemre. Így értem el ezt.

Csatlakozás a billentyűzethez

A parancssorban való programozás telefon vagy táblagép képernyőbillentyűzetén eléggé kényelmetlen. Azt javaslom, csatlakoztasson egy külső billentyűzetet, akár Bluetooth-on keresztül, akár a kamera csatlakozóadapterével kábeles billentyűzet csatlakoztatásához (én az utóbbit választottam). Amikor egy Kinesis Advantage megosztott billentyűzetet csatlakoztattam az iPhone 6-hoz, egy furcsa eszközt kaptam, ami úgy néz ki, mint egy vállalati kiberdekk a klasszikus szerepjátékból Shadowrun.

Shell telepítése iOS-re

A Linux teljes értékű rendszer indításához iOS-en két lehetőség van:

  • Secure shell (SSH), amely kapcsolódik egy Linux számítógéphez
  • Virtuális rendszer indítása Alpine Linux használatával az iSH segítségével, amely open source, de a törzskönyvezett Apple TestFlight alkalmazás segítségével kell telepíteni.

Alternatív megoldásként két open source terminálemulátor alkalmazás érhető el, amely lehetővé teszi az open-source eszközökkel való munkát korlátozott környezetben. Ez a legegyszerűbb lehetőség – valójában nem Linuxot indít el, hanem Linux eszközöket. Ezekkel az alkalmazásokkal komoly korlátozások vannak, azonban részleges parancssor funkciót kap.

Mielőtt a bonyolult megoldásokra térnék, először a legegyszerűbb módszert fogom megvizsgálni.

1. lehetőség: shell a „sandbox”-ban

Az egyik legegyszerűbb módszer egy iOS alkalmazás telepítése LibTerm. Ez egy open source alkalmazás. Parancssor a „sandboxban”, amely támogat több mint 80 parancsot, ára pedig nulla dollár. A Python 2.7, Python 3.7, Lua, C, Clang és sok más program nyújtásával érkezik.

Hasonló funkciókkal bír a-Shell, amelyet a fejlesztők „a képernyős bevitelhez készített felhasználói felület tesztelőjének” írnak le. Az a-Shell forráskódja elérhető open source, aktív fejlesztés alatt áll, hozzáférést biztosít a fájlrendszerhez, és a Lua, Python, Tex, Vim, JavaScript, C és C++ mellett Clangot és Clang++-t is tartalmaz. Még a pip segítségével Python csomagok telepítését is lehetővé teszi.

2. lehetőség: SSH

Egy lépéssel tovább van az SSH kliens beállítása az alkalmazás letöltéséhez képest. Már régóta használhatunk bármelyik iOS alapú SSH kliens alkalmazást, hogy csatlakozzunk ahhoz a szerverhez, amelyen Linux vagy BSD fut. Az SSH használatának előnye, hogy bármilyen disztribúció és bármely szoftver futhat a szerveren. Távollévő munkát végzel, és az eredmények egyszerűen átkerülnek az iOS eszköz terminálemulátorába.

Blink shell — ez egy népszerű, fizetős SSH alkalmazás a open source. Ha figyelmen kívül hagyjuk az eszköz kis kijelzőjét, akkor a szoftver használata hasonló a szerverhez való csatlakozáshoz bármely más parancssoron keresztül. A Blink terminál csodálatos kivitelű, rengeteg előre elkészített témával rendelkezik, illetve lehetőséget biztosít egyedi témák létrehozására, beleértve az új betűtípusok beállítását és hozzáadását.

3. lehetőség: Linux indítása

Az SSH használata Linux szerverhez való csatlakozáshoz egy nagyszerű mód a parancssor elérésére, de külső szervert és hálózati kapcsolatot igényel. Ez nem a legnagyobb akadály, de teljesen figyelmen kívül sem hagyható, így szükséged lehet Linux használatára szerver nélkül.

Ha ez a helyzet, akkor egy lépéssel tovább kell lépned. TestFlight — ez egy sajátos szolgáltatás a fejlesztés alatt álló alkalmazások telepítésére, még mielőtt azokat közzétennék az Apple App Store-ban. A TestFlight alkalmazást az App Store-ból lehet telepíteni, majd tesztelési alkalmazásokat használni. A TestFlight-on található alkalmazások lehetővé teszik, hogy egy korlátozott időtartamra egy korlátozott számú bétatesztelő (általában legfeljebb 10 000) dolgozzon velük. A tesztalkalmazás letöltéséhez a felhasználónak a készülékén át kell navigálnia a linkre, amely általában a tesztalkotó weboldalán található.

Alpine Linux indítása iSH-val

iSH — egy open-source TestFlight alkalmazás, amely virtuális gépet futtat egy kész disztribúcióval. Alpine Linux (kicsit munkálkodva más disztribúciókat is lehet futtatni).

Fontos jellemző: az alkalmazás kísérleti. Mivel az iSH jelenleg tesztalkalmazás, ne számítson állandó és megbízható működésre. A TestFlight alkalmazások időkorlátosak. Az aktuális kiadásom mindössze 60 napig fog működni. Ez azt jelenti, hogy 60 nap múlva kizárnak, és újra csatlakoznom kell az iSH következő tesztelési fázisához. Továbbiakban elveszítem minden fájlomat, ha nem exportálom őket az iOS Files segítségével, vagy nem másolom őket Git-host-ra vagy SSH-n keresztül. Más szavakkal: Ne számítson rá, hogy ez mindaddig működni fog! Ne helyezzen el benne semmi fontosat! Készítsen biztonsági másolatot külön helyre!

iSH telepítése

Kezdje a telepítéssel TestFlight az App Store-ból. Ezután telepítse az iSH-t, kapja meg a telepítési linket az alkalmazás weboldaláról. Van egy másik telepítési mód is, amely az AltStore-t használja, de én azt nem próbáltam ki. Vagy ha van egy díjfizetős fejlesztői fiókja, letöltheti az iSH tárolóját a GitHub-ról, és manuálisan telepítheti.

A TestFlight-on keresztül az iSH alkalmazás települ a készülékére. Mint bármely más alkalmazás esetében, itt is megjelenik egy ikon a képernyőn.

Csomagkezelés

Az iSH egy x86 emulátort futtat Alpine Linux-szal. Az Alpine egy apró disztribúció, amely kisebb 5 MB-nál. Először dolgoztam az Alpinéval, ezért azt gondoltam, hogy ez a minimalizmus zavaró lesz, de valójában nagyon tetszett.

Linux parancssor indítása iOS-en
Az Alpine csomagkezelőt használ apk, amely egyszerűbb, mint még az apt vagy a pacman.

Hogyan telepítsünk egy csomagot:

apk add package

Hogyan töröljünk egy csomagot:

apk del package

Hogyan tudhatunk meg más parancsokat és információt:

apk --help

A csomagkezelő frissítése:

apk update
apk upgrade

Szövegszerkesztő telepítése

Az Alpine alapértelmezett szövegszerkesztője a Vi, de én a Vimot kedvelem, ezért telepítettem:

apk add vim

Igény szerint telepíthető a Nano vagy az Emacs is.

Shell váltás

Nem tudom, ti hogy vagytok ezzel, de nekem fish shellkellett. Mások a Bash vagy Zsh-tkedvelik. Az Alpine azonban az ash-t használja! Az ash a Dash shell forkja, ami önmaga az eredeti ash forkja, vagyis Almquist shell. A sebesség a prioritása. Én a sebességet akartam feláldozni a beépített automatikus kiegészítés, a Vim billentyűkezelés és a szintaxiskiemelés érdekében, amit a fish shell-től szeretek és ismerek.

Fish telepítése:

apk add fish

Ha a Bash-ra van szükséged az automatikus kiegészítésével és a man-oldalaival együtt, akkor telepítsd őket:

apk add bash bash-doc bash-completion

Az Alpine minimalista szemlélete általában azt jelenti, hogy bizonyos programok, amelyek más disztribúciókban egy csomagból állnak, több kisebb csomagra vannak szétbontva. Ez azt is jelenti, hogy konfigurálhatod és csökkentheted a rendszer méretét egészen addig, ahogyan szeretnéd.

A Bash telepítésével kapcsolatos további információk találhatók ebben a tutoriálban.

Alapértelmezett shell megváltoztatása

A fish telepítése után ideiglenesen áttérhetsz rá, ha beírod fish és átlépsz a shell-be. De azt szeretném, hogy a fish legyen az alapértelmezett shell, és a parancs chsh, amit más disztribúciókban használtam, nem működött.

Először nézzük meg, hova települt a fish:

which fish

Itt van, amit kaptam:

/usr/bin/fish

Ezután módosítjuk a login shell-t fish-re. Bármilyen kényelmes szerkesztőt használhatsz. Ha kezdő vagy, telepítsd a Nanót (a következő paranccsal: apk add nano), hogy szerkeszthesd a konfigurációs fájlokat és menthesd őket CTRL+X-el, majd megerősíteni és kilépni.

De én a Vimot használtam:

vim /etc/passwd

Az első sorom így nézett ki:

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

Ahhoz, hogy a fish legyen az alapértelmezett shell, módosítsuk ezt a sort a következőre:

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

Ezután mentsük el a fájlt és lépjünk ki.

Biztos vagyok benne, hogy van egy jó módszer a shell elérési útjának megváltoztatására, hogy azonnal használhassuk. De nem tudom, ezért azt javaslom, térjünk vissza az alkalmazások böngészőjéhez, kényszerített kijelentkezéssel lépjünk ki a shellből, és a megbízhatóság kedvéért kapcsoljuk ki, majd indítsuk újra az iPadet vagy iPhone-t. Ismét nyissa meg az iSH-t, és most a „Welcome to Alpine!” üzenet és az apk indítási információ mellett látni fogja a fish bejelentkezési képernyőjének standard üdvözlő üzenetét. Üdvözöljük a fish-nél, a barátságos interaktív shellnél. Hurrá!

Linux parancssor indítása iOS-en

Python és pip beállítása

Úgy döntöttem, hogy hozzáadom Python (3.x verzió), nemcsak azért, hogy kódot írhassak, hanem mert több Python programot is használok. Telepítsük:

apk add python3

Bár a Python 2.x elavult, azt is telepíthetjük:

apk add python

Telepítjük a pip nevű Python csomagkezelőt és setuptools:

python3 -m ensurepip --default-pip

A csomagkezelő telepítése és beállítása némi időt vehet igénybe, ezért csak várjon.

Ezután letölthetjük a fájlokat hálózaton át curl:

apk add curl

Olvassuk el a kézikönyveket

A Fish beépített autocompletion-t használ a man-oldalak alapján. Mint más parancssori felhasználó, én is használom a kézikönyvet, man, de az Alpine-on nincs telepítve. Ezért telepítettem terminálos lapozóval: ezt:

apk add man man-pages less less-doc

A man mellett használok egy csodálatos tldr pages projektet, amely egyszerűsített és közösség által kezelt man-oldalakat biztosít.

Ezt pip segítségével telepítettem:

pip install tldr

A parancs tldr kapcsolódik a webhez új oldalak megszerzéséhez, amikor új oldalra kérdezik. Ha szeretné tudni, hogyan kell használni egy parancsot, írhat valami ilyesmit: tldr curl és kaphat egy leírást egyszerű angol nyelven és jó példákat a parancs használatára.

Természetesen ezt a telepítési munkát automatizálhatjuk dotfiles vagy telepítő szkript segítségével, de valójában ez nem igazán felel meg az Alpine filozófiájának - a minimális telepítés igényeink szerinti beállítása. Ezen kívül, hát, ez rengeteg időt vett igénybe, igaz?

Dokumentáció

Az iSH Wikijében van egy "what works" oldal, amely jelentéseket ad arról, hogy mely csomagok működnek jelenleg. Egyébként úgy tűnik, hogy az npm jelenleg nem működik..

Egy másik wikioldalon magyarázzák el, hogyan lehet hozzáférni az iSH fájlaihoz az iOS Files alkalmazásból. Ez az egyik módja a fájlok áthelyezésének és másolásának.

Git-t is telepíthetünk (igen! apk add git ) és feltölteni a munkáját a távoli tárolóba, vagy átadni azt a szervernek SSH-n keresztül. Természetesen bármennyi nagyszerű nyílt forráskódú projektet is letölthet és futtathat a GitHub-ról.

További információk az iSH-ról az alábbi linkeken találhatóak:

Hirdetés

VDS (Virtual Dedicated Server) ajánlatot tesz virtuális szerverek Linuxon vagy Windows-on. Csak márkás eszközöket, a legjobb saját fejlesztésű szerverkezelő panellel és az egyik legjobb adatközponttal Oroszországban és az EU-ban. Siessen, hogy rendeljen!

Linux parancssor indítása iOS-en

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster