Věděli jste, že na svém iOS zařízení můžete spustit příkazový řádek Linuxu? Možná se ptáte:"Proč bych měl chtít na svém malém iPhonu používat textové aplikace?" Dobře, fér. To je docela rozumná otázka. Ale pokud čtete Opensource.com, pravděpodobně znáte odpověď:Uživatelé Linuxu chtějí mít možnost používat jakékoli zařízení a také chtějí používat svá vlastní přizpůsobení.
A ze všeho nejvíc chtějí výzvu.
Mám sedm let starý iPad 2 Mini, který stále funguje dobře pro čtení elektronických knih a další úkoly. Ale také jej chci použít pro přístup k příkazovému řádku pro aplikace a sadu programů a skriptů, bez kterých se zřejmě neobejdu. Chci prostředí, na které jsem zvyklý, a také své standardní vývojové prostředí. Tady je návod, jak jsem to udělal.
Připojení ke klávesnici
Použití příkazového řádku k programování na klávesnici na obrazovce telefonu nebo tabletu není příliš zábavné. Doporučuji připojit externí klávesnici, buď přes Bluetooth, nebo pomocí adaptéru sady pro připojení kamery pro připojení kabelové klávesnice (moje preference). Připojením své rozdělené klávesnice Kinesis Advantage k mému iPhonu 6 získáte podivnou optiku, jako je firemní kybernetická paluba z klasické hry na hrdiny Shadowrun.
Získejte prostředí pro iOS
Máte dvě možnosti, jak spustit kompletní systém Linux na iOS:
- Zabezpečte shell (SSH) do počítače se systémem Linux
- Spusťte virtualizovaný systém pomocí Alpine Linux s iSH, který je open source, ale musí být nainstalován pomocí patentované aplikace TestFlight společnosti Apple
Případně existují dvě aplikace emulátoru terminálu s otevřeným zdrojovým kódem, které poskytují nástroje s otevřeným zdrojovým kódem v omezeném prostředí. Toto je nejvíce omezená možnost – ve skutečnosti vám neumožňuje spouštět Linux, ale používáte nástroje Linuxu. Na to, co můžete na zařízení s těmito aplikacemi dělat, existují značná omezení, ale poskytují vám některé funkce příkazového řádku.
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Než prozkoumám náročnější řešení, podívám se na nejjednodušší přístup.
Možnost 1:Izolované prostředí
Jedním z nejjednodušších způsobů, jak začít, je aplikace LibTerm pro iOS. Toto je sandboxovaný open source shell příkazového řádku s 80+ příkazy sdruženými v aplikaci za 0 $. Dodává se s Python 2.7, Python 3.7, Lua, C, Clang a dalšími.
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 k souborovému systému a dodává se s Lua, Python, Tex, Vim, JavaScript, C a C++, spolu s Clang a Clang++. Dokonce vám umožňuje instalovat balíčky Pythonu pomocí pip.
Možnost 2:SSH kdekoli
Jeden krok před stažením aplikace je konfigurace klienta SSH. Již dlouhou dobu je možné používat 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 provozovat jakoukoli distribuci s jakýmkoli softwarem, který se vám líbí. Pracujete na dálku a váš výstup se pouze posílá do emulátoru terminálu vašeho zařízení iOS.
Blink shell je populární placená open source aplikace SSH. Mimo malou obrazovku je použití tohoto softwaru podobné připojení k serveru pomocí jakéhokoli jiného příkazového řádku. Terminál Blink vypadá nádherně, s řadou zahrnutých motivů a možností vytvářet si 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, jak získat přístup k výzvě, ale vyžaduje přístup k externímu serveru a připojení. Toto není nejhorší překážka vstupu, ale není ú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 na špičce vylomit něco trochu víc. TestFlight je proprietární služba pro nasazení aplikací ve vývoji před jejich odesláním do obchodu Apple App Store. Aplikaci TestFlight si můžete stáhnout z obchodu a poté se přihlásit k odběru řady testovacích aplikací. Aplikace v TestFlight umožňují omezenému počtu externích beta testerů (obecně až 10 000) po omezenou dobu. Chcete-li stáhnout testovací aplikaci, musíte přejít na odkaz přímo ze svého zařízení, který se obvykle nachází na webu vývojáře testovací aplikace.
Spusťte Alpine Linux pomocí iSH
iSH je otevřená aplikace TestFlight, která spouští virtuální stroj s distribucí Alpine Linux hned po vybalení (ale můžete spouštět i jiné distribuce s trochu větším úsilím).
Důležité upozornění:toto je experimentální . Vzhledem k tomu, že je iSH v současné době testovací aplikací, neočekávejte trvalou nebo robustní službu. Aplikace TestFlight jsou časově omezené. Moje současná stavba trvá 60 dní. To znamená, že za 60 dní budu uzamčen a musím se znovu zapojit do další testovací fáze iSH. Navíc o své soubory přijdu, pokud je neexportuji pomocí Files na iOS nebo je nezálohuji na hostitele Git nebo pomocí SSH. Aby bylo jasno:Nespoléhejte se na to, abyste mohli pokračovat v práci! Nedávejte sem nic podstatného! Zálohujte svou práci jinde!
Nainstalovat iSH
Začněte instalací TestFlight prostřednictvím App Store. Poté nainstalujte iSH získáním instalačního odkazu z jeho webových stránek. Existuje další způsob instalace, který používá AltStore, ale nezkoušel jsem to. Nebo, pokud máte placený vývojářský účet, můžete si stáhnout repozitář iSH z GitHubu a nasadit jej sami.
Pomocí odkazu TestFlight nainstaluje do vašeho zařízení aplikaci iSH. Jako každá jiná aplikace se na obrazovce objeví s ikonou.
Správa balíčků
iSH provozuje x86 emulátor s Alpine Linuxem. Alpine je malinká distribuce pod 5 MB. Bylo to poprvé, co jsem s Alpine běžel, a myslel jsem si, že budu frustrovaný tak minimálním distrem, ale ve skutečnosti jsem si to opravdu užil.
Alpine používá správce balíčků apk, který je jednodušší než dokonce apt nebo pacman.
Instalace balíčku:
apk add package
Odebrání balíčku:
apk del package
Další příkazy a informace najdete pomocí:
apk --help
Aktualizujte správce balíčků:
apk update
apk upgrade
Získejte textový editor
Výchozí textový editor Alpine je Vi, ale já preferuji Vim, takže jsem si ho nainstaloval:
apk add vim
Pokud chcete, můžete nainstalovat Nano nebo Emacs.
Změnit shell
Nevím jak vy, ale já potřebuji rybí skořápku. Ostatní lidé preferují Bash nebo Zsh. Ale Alpine používá popel! Ash je vidlice Dash shell, sama o sobě vidlice původního jasanu nebo Almquist shell. Je navržen pro rychlost. Rozhodl jsem se vyměnit rychlost za vestavěné automatické dokončování, barvy, ovládání pomocí kláves Vim a zvýraznění syntaxe, které znám a miluji v rybí skořápce.
Nainstalujte rybu:
apk add fish
Pokud místo toho chcete Bash a jeho dokončení a manuálové stránky, musíte si je nainstalovat a pár věcí navíc:
apk add bash bash-doc bash-completion
Minimalistická ideologie Alpine obecně znamená, že některé programy, které by v jiných distribucích byly jediným balíčkem, jsou rozděleny do několika menších balíčků. To také znamená, že si můžete přizpůsobit a zeštíhlit svůj systém přesně tak, jak chcete.
Více podrobností o instalaci Bash naleznete v tomto tutoriálu.
Změnit výchozí prostředí
Po instalaci ryby na ni můžete dočasně přepnout a vyzkoušet ji zadáním fish
a spadnout do skořápky. Ale chci, aby se mi jako výchozí shell staly ryby a chsh
příkaz, na který jsem zvyklý z jiných distribucí, nefunguje.
Nejprve zjistěte, kde je nainstalována ryba:
which fish
Můj výstup:
/usr/bin/fish
Dále upravte přihlašovací shell tak, aby používal fish. Můžete použít jakýkoli editor, který vám vyhovuje. Pokud jste začátečník, nainstalujte si Nano (pomocí apk add nano
), abyste mohli upravovat konfigurační soubory a ukládat je pomocí CTRL+X, potvrdit a ukončit.
Ale použil jsem Vim:
vim /etc/passwd
Můj první řádek byl:
root:x:0:0:root:/root:/bin/ash
Chcete-li nastavit ryby jako výchozí, změňte tento řádek na:
root:x:0:0:root:/root:/usr/bin/fish
Poté uložte a ukončete.
Jsem si jistý, že existuje dobrý způsob, jak obnovit zdroj prostředí, abyste jej mohli začít ihned používat. Nejsem si ale jistý, takže doporučuji vrátit se do prohlížeče aplikace, vynutit si ukončení shellu a pro jistotu také vypnout a restartovat iPad nebo iPhone. Znovu otevřete iSH a nyní kromě „Vítejte v Alpine!“ zprávu a informace o tom, jak začít s apk, uvidíte výchozí uvítací zprávu pro přihlášení k rybě:Vítejte v rybách, přátelském interaktivním prostředí . Hurá!
Nastavit Python a pip
Rozhodl jsem se přidat Python (verze 3.x), nejen proto, abych mohl psát kód, ale protože spoléhám na několik programů Python. Nainstalujte jej:
apk add python3
Přestože je Python 2.x zastaralý, stále jej můžete nainstalovat:
apk add python
Nainstalujte správce balíčků Python, pip a setuptools:
python3 -m ensurepip --default-pip
Instalace a nastavení správce balíčků nějakou dobu trvá, takže počkejte.
Poté 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 man
manuál a Alpine se nedodává s nainstalovaným. Takže jsem ho nainstaloval spolu s méně pagerem:
apk add man man-pages less less-doc
Kromě man používám báječný projekt tldr pages, který poskytuje zjednodušené, komunitou řízené manuálové stránky.
Nainstaloval jsem to pomocí pip:
pip install tldr
tldr
příkaz se připojí k webu a načte stránky, kdykoli narazí na požadavek na novou. Pokud se potřebujete naučit používat příkaz, stačí zadat něco jako tldr curl
abyste získali jednoduché anglické vysvětlení a dobré příklady použití příkazu.
Všechny tyto instalační práce byste samozřejmě mohli automatizovat pomocí souborů dot nebo instalačního skriptu, ale to by ve skutečnosti nespadalo do Alpine způsobu přizpůsobení minimální instalace přesně podle vašich požadavků. Kromě toho to netrvalo tak dlouho, že?
Další informace
Wiki iSH obsahuje stránku „co funguje“ se zprávami o tom, jaké balíčky aktuálně fungují. Je třeba poznamenat, že npm v tuto chvíli zřejmě nefunguje.
Další stránka wiki vysvětluje, jak můžete přistupovat k souborům iSH z aplikace Soubory iOS. Toto je jeden způsob, jak můžete přesouvat a přenášet soubory.
Můžete také nainstalovat Git (ano! apk add git
) a odeslat svou práci do vzdáleného úložiště nebo ji přenést na server přes SSH. A samozřejmě si můžete stáhnout a spustit libovolný počet úžasných open source projektů z GitHubu na vašem systému.
Další informace o iSH naleznete na těchto odkazech:
- Web iSH
- Subreddit
- Problémy s GitHub
- Wiki