Spusťte příkazový řádek Linux na iPadu

věděli jste, že můžete spustit příkazový řádek Linux na vašem zařízení se systémem iOS? Možná se ptáte: „proč bych chtěl používat textové aplikace na svém malém iPhone?“OK, to je fér. To je docela rozumná otázka. Ale pokud čtete Opensource.com, pravděpodobně znáte odpověď: uživatelé Linuxu chtějí používat jakékoli zařízení a také chtějí používat vlastní přizpůsobení.

a hlavně chtějí výzvu.

mám sedmiletý iPad 2 Mini, který stále funguje dobře pro čtení e-knih a dalších úkolů. Ale chci také použít pro přístup k příkazového řádku pro aplikace a apartmá programů a skriptů nemůžu udělat, aniž by. Chci prostředí, na které jsem zvyklý, stejně jako moje standardní vývojové prostředí. Takhle jsem to udělal.

připojení ke klávesnici

pomocí příkazového řádku pro programování na klávesnici telefonu nebo tabletu na obrazovce není moc zábavné. Doporučuji připojit externí klávesnici, a to buď přes Bluetooth, nebo pomocí adaptéru sady pro připojení kamery pro připojení kabelové klávesnice (moje preference). Zapojení mé rozdělené klávesnice Kinesis Advantage do mého iPhone 6 dělá nějakou podivnou optiku, jako cyberdeck corp z klasické hry na hraní rolí Shadowrun.

získejte shell na iOS

máte dvě možnosti pro spuštění kompletního systému Linux na iOS:

  • Secure shell (SSH) do počítače se systémem Linux
  • Spustit virtualizované soustavy pomocí Alpine Linux s iSH, který je open source, ale musí být nainstalován pomocí proprietárního Apple TestFlight aplikace

Případně, existují dva open source emulátor terminálu aplikace, které poskytují open source nástroje v omezeném prostředí. Toto je nejvíce omezená možnost—ve skutečnosti vám neumožňuje spustit Linux,ale používáte nástroje Linux. Existují velká omezení, co můžete v zařízení s těmito aplikacemi dělat, ale získají vám některé funkce příkazového řádku.

podívám se na nejjednodušší přístup, než prozkoumám náročnější řešení.

Možnost 1: sandboxed shell

jedním z nejjednodušších způsobů, jak začít, je aplikace libterm pro iOS. Jedná se o shell příkazového řádku s otevřeným zdrojovým kódem s příkazy 80 + dodávanými v aplikaci $ 0. Dodává se s Python 2.7, Python 3.7, Lua, C, Clang a další.

v podobném duchu je a-Shell, popisovaný jako “ textové uživatelské rozhraní pro platformu založenou na obrazovce.“a-Shell je open source, v aktivním vývoji, poskytuje přístup do souborového systému, a lodě s Lua, Python, Tex, Vim, JavaScript, C, C++, spolu s Clang a Clang++. Dokonce vám umožňuje instalovat balíčky Pythonu s pip.

možnost 2: SSH anywhere

jedním krokem od stažení aplikace je konfigurace klienta SSH. Již dlouhou dobu je možné použít jednu z mnoha klientských aplikací SSH v systému iOS pro připojení k serveru se systémem Linux distro nebo BSD. Výhodou použití SSH je, že váš server může být spuštěn jakýkoli distro s jakýmkoliv softwarem se vám líbí. Pracujete na dálku a váš výstup se dostane do emulátoru terminálu vašeho zařízení iOS.

Blink shell je populární placená open source SSH aplikace. Mimo malou obrazovku je používání tohoto softwaru podobné připojení k serveru pomocí jakéhokoli jiného příkazového řádku. Terminál Blink vypadá krásně, s řadou zahrnutých témat a schopností vytvářet vlastní témata, včetně přizpůsobení a přidávání nových písem.

možnost 3: Spusťte Linux

použití SSH pro připojení k serveru se systémem Linux je skvělý způsob přístupu k výzvě, ale vyžaduje přístup k externímu serveru a připojení. Toto není nejhorší překážka vstupu, ale není to úplně zanedbatelné a možná budete chtít používat Linux bez tohoto požadavku na server.

Pokud je to váš případ, budete muset vypuknout něco trochu víc na špici. TestFlight je proprietární služba pro nasazení vývojových aplikací před jejich odesláním do Apple App Store. Aplikaci TestFlight si můžete stáhnout z obchodu a poté se zaregistrovat do několika testovacích aplikací. Aplikace v TestFlight umožňují omezený počet externích beta testerů (obvykle až 10 000) po omezenou dobu. Chcete-li stáhnout testovací aplikaci, musíte přistupovat k odkazu přímo z vašeho zařízení, který se obvykle nachází na webových stránkách vývojáře testovací aplikace.

Spustit Alpine Linux s iSH

iSH je open source TestFlight aplikaci, která se spouští virtuální stroj s Alpine Linux distro z krabice (ale můžete spustit další distribuce s trochu víc šťourat).

Důležité upozornění: Toto je experimentální. Vzhledem k tomu, iSH je v současné době testovací aplikace, neočekávejte trvalé nebo robustní služby. Aplikace TestFlight jsou časově omezené. Moje současná stavba trvá 60 dní. To znamená, že za 60 dní budu uzamčen a budu se muset znovu připojit k další testovací fázi iSH. Dále ztratím své soubory, pokud je nevyexportuji se soubory v systému iOS nebo je nezálohuji na hostitele Git nebo s SSH. Aby bylo jasno: nespoléhejte na to, abyste pokračovali v práci! Nedávejte sem nic, co je nezbytné! Zálohujte svou práci jinde!

nainstalujte iSH

začněte instalací TestFlight prostřednictvím App Store. Poté nainstalujte iSH tím, že získáte odkaz na instalaci prostřednictvím svých webových stránek. Existuje další způsob instalace, který používá AltStore, ale nezkoušel jsem to. Nebo pokud máte placený účet vývojáře, můžete si stáhnout repo iSH z GitHubu a nasadit jej sami.

pomocí odkazu nainstaluje TestFlight do vašeho zařízení aplikaci iSH. Jako každá jiná aplikace se na obrazovce objeví ikona.

Správa balíčků

iSH spouští emulátor x86 s Alpine Linuxem. Alpine je malý, under-5MB distro. Bylo to poprvé, co jsem běžel Alpine, a myslel jsem, že budu frustrovaný s takovým minimálním distro, ale ve skutečnosti jsem si to opravdu užil.

ish-install.png

Alpine Linux, na iOS

(Lee Tusman, CC BY-SA 4.0)

Alpine používá apk package manager, což je jednodušší, než dokonce apt nebo pacman.

Instalace balíčku:

apk add package

odebrání balíčku:

apk del package

Najděte další příkazy a informace pomocí:

apk --help

Aktualizovat správce balíčků:

apk updateapk upgrade

textový editor

Alpine výchozí textový editor Vi, ale já mám radši Vim, tak jsem to nainstaloval:

apk add vim

můžete nainstalovat Nano nebo Emacs, pokud dáváte přednost.

změňte skořápku

nevím o vás, ale potřebuji rybí skořápku. Ostatní lidé dávají přednost Bash nebo Zsh. Ale Alpine používá popel! Popel je vidlička z pomlčky, sama vidlička z původního popela nebo Almquist shell. Je určen pro rychlost. Rozhodl jsem se obchodovat rychlost ve prospěch vestavěného automatického dokončování, barva, ovládání vim-key, a zvýraznění syntaxe, které znám a miluji v rybí skořápce.

Instalovat ryb:

apk add fish

Pokud chcete, Bash a jeho dokončených a manuálové stránky místo toho, musíte je nainstalovat a nějaké další věci:

apk add bash bash-doc bash-completion

Alpine minimalistický ideologie obecně znamená, že některé programy, které by jednoho balíčku, v jiných distribucích, jsou rozděleny do více menších zásilek. To také znamená, že můžete přizpůsobit a zeštíhlit systém přesně tak, jak chcete.

Další podrobnosti o instalaci Bash najdete v tomto tutoriálu.

Změnit výchozí shell

Po instalaci ryby, můžete dočasně přepnout na to a zkuste si to zadáním fish a vrácení do pláště. Ale chci, aby ryby můj výchozí shell, a chsh příkaz jsem zvyklý z jiných distribucí nefunguje.

za Prvé, zjistit, kde se ryby nainstalovány:

which fish

Můj výstup:

/usr/bin/fish

Next, upravit přihlašovací shell používat ryby. Můžete použít libovolný editor, který vám vyhovuje. Pokud jste začátečník, nainstalujte Nano (S apk add nano), abyste mohli upravovat konfigurační soubory a ukládat je pomocí CTRL + X, potvrdit a ukončit.

Ale já jsem použil Vim:

vim /etc/passwd

Můj první linka byla:

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

, Aby se ryby výchozí, změnit řádek:

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

Pak uložit a ukončit.

jsem si jistý, že existuje dobrý způsob, jak znovu zdroj shell, takže můžete začít používat hned. Ale nejsem si jistý, takže doporučuji vrátit se do prohlížeče aplikací, vynutit ukončení shellu a pro dobrou míru vypnout a restartovat iPad nebo iPhone. Znovu otevřete iSH, a nyní, kromě „Vítejte v Alpine!“zpráva a informace o Začínáme s apk, uvidíte výchozí ryby přihlášení uvítací zprávu: Vítejte na ryby, přátelské interaktivní shell. Hurá!

ish.png

rybí shell na Alpine Linuxu

(Lee Tusman, CC BY-SA 4.0)

nastavit Python a pip

rozhodl jsem se přidat Python (verze 3.x), nejen proto, abych mohl psát kód, ale proto, že se spoléhám na několik programů Python. Nainstalujte jej:

apk add python3

ačkoli Python 2.x je zastaralé, stále můžete nainstalovat:

apk add python

Instalovat Python package manager, pip, a setuptools:

python3 -m ensurepip --default-pip

To trvá nějaký čas, aby instalaci a nastavení správce balíčků, takže jen čekat.

pak si můžete stáhnout curl, nástroj pro přenos sítí:

apk add curl

Přečtěte si příručku

Fish používá vestavěné Automatické dokončování založené na manuálových stránkách. Stejně jako ostatní uživatelé příkazového řádku se spoléhám na příručku man a Alpine s ní není nainstalován. Takže jsem jej nainstaloval spolu s méně pagerem:

apk add man man-pages less less-doc

kromě man používám projekt fabulous TLDR pages, který poskytuje zjednodušené manuálové stránky řízené komunitou.

nainstaloval jsem ji s pip:

pip install tldr

tldr příkaz připojí k webu k načtení stránky vždy, když narazí na požadavek, pro novou. Pokud se potřebujete naučit používat příkaz, stačí zadat něco jako tldr curl, abyste získali prosté anglické vysvětlení a dobré příklady použití příkazu.

dalo by se, samozřejmě, automatizovat všechny tyto montážní práce s dotfiles nebo nainstalovat skript, ale to by nebylo opravdu spadají do Alpské způsob přizpůsobení minimální instalace přesně na vaše specifikace. Kromě toho, netrvalo to tak dlouho, že?

další informace

ish wiki obsahuje stránku „Co funguje“ se zprávami o tom, jaké balíčky aktuálně fungují. Za zmínku stojí, že se zdá, že npm v tuto chvíli nefunguje.

Další wiki stránka vysvětluje, jak můžete přistupovat k souborům iSH z aplikace iOS Files. To je jeden způsob, jak můžete přesouvat a přenášet soubory.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.