Spuštění příkazového řádku Linuxu na iOS

Spuštění příkazového řádku Linuxu na iOS

Věděli jste, že na zařízení se systémem iOS můžete spustit příkazový řádek Linuxu? Možná se ptáte: "Proč bych měl používat textové aplikace na iPhone?" Spravedlivá otázka. Ale pokud čtete Opensource.com, pravděpodobně znáte odpověď: uživatelé Linuxu chtějí mít možnost jej používat na jakémkoli zařízení a chtějí používat svá vlastní nastavení.

Ale nejvíce ze všeho touží po řešení složitých problémů.

Mám sedm let starý iPad 2 Mini, který je stále dobrý pro čtení e-knih a další úkoly. Chci jej však použít také pro přístup k příkazové řádce aplikací s mojí sadou programů a skriptů, bez kterých nemohu pracovat. Potřebuji prostředí, na které jsem zvyklý, a také své standardní vývojové prostředí. A tady je návod, jak se mi toho podařilo dosáhnout.

Připojení ke klávesnici

Práce s příkazovým řádkem pro programování přes obrazovkovou klávesnici telefonu nebo tabletu je značně nepohodlná. Doporučuji připojit externí klávesnici, ať už přes Bluetooth, nebo pomocí adaptéru pro připojení fotoaparátu k připojení drátové klávesnice (já zvolil druhou). Připojení rozdělené klávesnice Kinesis Advantage k iPhone 6 má za následek podivné zařízení, které vypadá firemní kybernetická paluba z klasického hraní rolí stínový běh.

Instalace shellu na iOS

Chcete-li provozovat plně funkční systém Linux na iOS, existují dvě možnosti:

  • Zabezpečený shell (SSH) připojený k počítači se systémem Linux
  • Spuštění virtuálního systému pomocí Alpine Linux s iSH, který je open source, ale musí být nainstalován pomocí proprietární aplikace TestFlight společnosti Apple

Alternativně existují dvě aplikace emulátoru terminálu s otevřeným zdrojovým kódem, které poskytují možnost pracovat s nástroji s otevřeným zdrojovým kódem v omezeném prostředí. Toto je nejvíce okleštěná možnost – ve skutečnosti takto nespouštíte Linux, ale nástroje Linuxu. Při práci s těmito aplikacemi existují vážná omezení, ale získáte částečnou funkčnost příkazového řádku.

Než přejdu ke komplexním řešením, zvážím nejjednodušší způsob.

Možnost 1: Shell v karanténě

Jedním z nejjednodušších způsobů je instalace aplikace pro iOS LibTerm. To open source sandbox příkazový shell s podporou více než 80 příkazů za nula dolarů. Dodává se s Python 2.7, Python 3.7, Lua, C, Clang a dalšími.

Funkčnost přibližně stejná jako peklo, popsaný vývojáři jako „testovací uživatelské rozhraní pro platformu se vstupem z obrazovky“. zveřejněny zdroje a-Shell open source, je 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++ a Clang a Clang++. Dokonce vám umožňuje instalovat balíčky Pythonu pomocí pip.

Možnost 2: SSH

Dalším krokem za stažením aplikace je nastavení klienta SSH. Po dlouhou dobu jsme byli schopni používat kteroukoli z mnoha klientských aplikací iOS SSH pro připojení k serveru se systémem Linux nebo BSD. Výhodou použití SSH je, že na serveru může běžet jakákoli distribuce s libovolným softwarem. Pracujete na dálku a výsledky vaší práce se jednoduše přenesou do emulátoru terminálu na vašem iOS zařízení.

blikající skořápka je populární placená aplikace SSH v open source. Pokud nevěnujete pozornost malé obrazovce zařízení, pak je použití tohoto softwaru jako připojení k serveru pomocí jakéhokoli jiného příkazového řádku. Terminál Blink vypadá skvěle, má mnoho předpřipravených motivů a možnost vytvářet si vlastní, včetně možnosti upravovat a přidávat nové fonty.

Možnost 3: Spusťte Linux

Použití SSH pro připojení k serveru pod Linuxem je skvělý způsob přístupu k příkazovému řádku, ale vyžaduje externí server a síťové připojení. Toto není největší překážka, ale nelze ji zcela ignorovat, takže možná budete muset pracovat s Linuxem bez serveru.

Pokud je to váš případ, budete muset udělat ještě jeden krok dále. TestFlight je proprietární služba pro instalaci aplikací ve vývoji před jejich vydáním do obchodu Apple App Store. Aplikaci TestFlight si můžete nainstalovat z App Store a poté používat testovací aplikace. Aplikace v TestFlight umožňují omezenému počtu beta testerů (obvykle až 10 000) pracovat s nimi po omezenou dobu. Chcete-li stáhnout testovací aplikaci, musíte na svém zařízení přejít na odkaz, který se obvykle nachází na webu vývojáře testovací aplikace.

Spuštění Alpine Linuxu s iSH

ISH je open-source aplikace TestFlight, která provozuje virtuální stroj s hotovou distribucí Alpine Linux (s trochou práce můžete provozovat i jiné distribuce).

Důležitá funkce: aplikace experimentální. Vzhledem k tomu, že iSH je v současnosti testovací aplikace, neočekávejte konzistentní a spolehlivý výkon. Aplikace TestFlight jsou časově omezené. Moje aktuální sestavení poběží pouze 60 dní. To znamená, že po 60 dnech budu vyloučen a budu se muset znovu zapojit do další fáze testování iSH. Navíc o všechny své soubory přijdu, pokud je neexportuji pomocí Files na iOS nebo je nezkopíruji na hostitele Git nebo přes SSH. Jinými slovy: Nečekejte, že to všechno bude dál fungovat! Nedávejte do systému nic pro vás důležitého! Zálohujte na samostatné místo!

Instalace iSH

Začněte instalací TestFlight z App Store. Poté nainstalujte iSH, získání odkazu k instalaci z webu aplikace. Existuje další způsob instalace pomocí 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 nainstalovat si ho sami.

Pomocí odkazu TestFlight nainstaluje aplikaci iSH do vašeho zařízení. Stejně jako u jakékoli jiné aplikace se na obrazovce objeví ikona.

Správa balíků

iSH provozuje x86 emulátor s Alpine Linuxem. Alpine je malá distribuce, která má velikost menší než 5 MB. Bylo to poprvé, co jsem pracoval s Alpine, takže jsem si myslel, že minimalismus bude otravný, ale opravdu se mi to líbilo.

Spuštění příkazového řádku Linuxu na iOS
Alpine používá správce balíčků apkcož je snadnější než dokonce apt nebo pacman.

Jak balíček nainstalovat:

apk add package

Jak odstranit balíček:

apk del package

Jak zjistit další příkazy a informace:

apk --help

Aktualizace správce balíčků:

apk update
apk upgrade

Instalace textového editoru

Standardní textový editor Alpine je Vi, ale já preferuji Vim, takže jsem ho nainstaloval:

apk add vim

Pokud chcete, můžete nainstalovat Nano nebo Emacs.

Změna skořápky

Nevím jak vy, ale já to potřeboval rybí mušle. Ostatní lidé preferují Praštit nebo Zsh. Alpine však používá jasan! Jasan je vidlice skořepiny Dash, která je sama o sobě vidlicí původního jasanu, popř Almquist shell. Její prioritou je rychlost. Rozhodl jsem se vyměnit rychlost za vestavěné automatické dokončování, barvy, správu klíčů Vim a zvýraznění syntaxe, které miluji a znám z rybí skořápky.

instalace ryb:

apk add fish

Pokud potřebujete Bash s automatickým dokončováním a manuálovými stránkami, nainstalujte je:

apk add bash bash-doc bash-completion

Minimalistická ideologie Alpine obvykle znamená, že některé programy, které jsou v jiných distribucích jediným balíčkem, budou rozděleny do několika menších balíčků. Znamená to také, že můžete systém vyladit a zmenšit přesně tak, jak chcete.

Další informace o instalaci Bash viz tento tutoriál.

Změna výchozího shellu

Jakmile je ryba nainstalována, můžete na ni dočasně přepnout zadáním fish a jít do skořápky. Ale chci udělat z ryby výchozí shell a příkaz chsh, který jsem používal v jiných distribucích, nefungoval.

Nejprve zjistíme, kde jsou ryby nainstalovány:

which fish

Stalo se mi toto:

/usr/bin/fish

Dále změňte přihlašovací shell na fish. Můžete použít libovolný editor, který se vám líbí. Pokud jste začátečník, nainstalujte Nano (pomocí příkazu apk add nano), abyste mohli upravit konfigurační soubory a uložit 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 rybu jako výchozí skořápku, změňte tento řádek na následující:

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

Poté soubor uložte a ukončete.

Jsem si jistý, že existuje dobrý způsob, jak změnit cestu skořápky, aby se dala hned použít. Já ho ale neznám, takže doporučuji vrátit se do prohlížeče aplikace, vynutit opuštění shellu a pro jistotu vypnout a restartovat iPad nebo iPhone. Otevřete iSH znovu a nyní, kromě zprávy „Vítejte v Alpine!“ a informace o spuštění z apk, uvidíte standardní uvítací zprávu pro přihlášení ryb: Vítejte na rybách, přátelské interaktivní skořápce. Hurá!

Spuštění příkazového řádku Linuxu na iOS

Nastavení Pythonu a pipu

Rozhodl jsem se přidat PYTHON (verze 3.x), nejen kvůli psaní kódu, ale také proto, že používám několik programů Python. Pojďme to nainstalovat:

apk add python3

Přestože je Python 2.x zastaralý, můžete jej nainstalovat také:

apk add python

Nainstalujte správce balíčků Pythonu s názvem pip a instalační nástroje:

python3 -m ensurepip --default-pip

Instalace a konfigurace správce balíčků bude nějakou dobu trvat, takže buďte trpěliví.

Poté si můžete stáhnout nástroj pro přenos souborů po síti kadeř:

apk add curl

Čtení manuálů

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 používám manuál mana Alpine ji nemá nainstalovanou. Tak jsem to nainstaloval pomocí terminálového pageru méně:

apk add man man-pages less less-doc

Kromě člověka používám velkolepé projekt stránek tldr, který poskytuje zjednodušené a komunitou řízené manuálové stránky.

Nainstaloval jsem to pomocí pip:

pip install tldr

Tým tldr připojí k webu za účelem načtení stránek, když narazí na požadavek na novou stránku. Pokud potřebujete vědět, jak používat příkaz, můžete napsat něco jako tldr curl a získejte popis v jednoduché angličtině a dobré příklady použití příkazu.

Všechny tyto instalační práce lze samozřejmě pomocí automatizovat dotfiles nebo instalační skript, ale ve skutečnosti to není příliš v souladu s ideologií Alpine - přizpůsobení minimální instalace jasně vašim potřebám. Navíc to trvalo tak dlouho, že?

doplňující informace

iSH Wiki má stránku "co funguje" se zprávami o tom, které balíčky aktuálně běží. Mimochodem, vypadá to tak npm právě nefunguje.

Další wiki stránka vysvětluje jak přístup k souborům iSH z aplikace Soubory pro iOS. Toto je jeden ze způsobů, jak můžete přesouvat a kopírovat soubory.

Můžete také nainstalovat Git (ano! apk add git ) a odeslat svou práci do vzdáleného úložiště nebo ji odeslat na server přes SSH. A samozřejmě si můžete stáhnout a spustit libovolný počet skvělých open-source projektů z GitHubu.

Více informací o iSH naleznete na těchto odkazech:

Jako reklama

Vdsina nabízí virtuální servery na Linuxu nebo Windows. Používáme výhradně značkové vybavení, nejlepší interní serverový ovládací panel svého druhu a jedno z nejlepších datových center v Rusku a EU. Pospěšte si s objednávkou!

Spuštění příkazového řádku Linuxu na iOS

Zdroj: www.habr.com

Přidat komentář