Spouštíme příkazový řádek Linuxu na iOS

Spouštíme příkazový řádek Linuxu na iOS

Věděli jste, že můžete spustit terminál Linux na zařízení iOS? Možná se ptáte: „Proč bych měl používat textové aplikace na iPhonu?“ To je spravedlivá otázka. Ale pokud čtete Opensource.com, pravděpodobně znáte odpověď: uživatelé Linuxu chtějí mít možnost pracovat na jakémkoliv zařízení a chtějí používat své vlastní nastavení.

Ale nejvíce touží po řešení složitých úloh.

Mám sedmiletý iPad 2 Mini, který je stále docela dobrý pro čtení elektronických knih a další úkoly. Chtěl bych ho však používat i pro přístup k terminálu aplikací se svým souborem programů a skriptů, bez kterých se neobejdu. Potřebuji prostředí, na které jsem zvyklý, stejně jako své standardní d Developerské prostředí. A tady je, jak jsem to dokázal.

Připojení klávesnice

Práce s terminálem pro programování prostřednictvím obrazovkové klávesnice telefonu nebo tabletu je dost nepohodlná. Doporučuji připojit externí klávesnici, buď přes Bluetooth, nebo pomocí adaptéru pro připojení kamery pro připojení drátové klávesnice (vybral jsem druhou možnost). Po připojení dělené klávesnice Kinesis Advantage k iPhonu 6 to vypadá jako podivný přístroj, který připomíná korporátní kybernetickou stanici z klasického role-playing game Shadowrun.

Instalace shellu na iOS

K provozu plnohodnotného systému Linux na iOS existují dvě možnosti:

  • Secure shell (SSH), připojený k počítači s Linuxem
  • Spuštění virtuálního systému pomocí Alpine Linux s iSH, což je open source, ale musí být nainstalováno pomocí proprietární aplikace TestFlight od Apple

Alternativně existují dvě terminálové emulátory v open source, které umožňují práci s open-source nástroji v omezeném prostředí. To je nejúspornější varianta - ve skutečnosti nespouštíte Linux, ale nástroje Linuxu. Při práci s těmito aplikacemi existují přísná omezení funkcí, ale získáte částečnou funkčnost terminálu.

Než se dostanu k složitějším řešením, seznámím vás s nejjednodušším způsobem.

Možnost 1: shell v „písku“

Jedním z nejjednodušších způsobů je nainstalovat aplikaci pro iOS LibTerm. To je open source příkazový řádek v „sandboxu“ s podporou více než 80 příkazů za cenu nula dolarů. Společně s ním jsou dodávány Python 2.7, Python 3.7, Lua, C, Clang a mnoho dalšího.

Přibližně stejnou funkcionalitou disponuje a-Shell, která je vývojáři popisována jako „testovací uživatelské rozhraní pro platformu se vstupem na obrazovce“. Zdroje a-Shell jsou zveřejněny jako open source, je aktivně vyvíjena, poskytuje přístup k souborovému systému a dodává se s Lua, Python, Tex, Vim, JavaScript, C a C++, stejně jako s Clang a Clang++. Dokonce umožňuje instalaci Python balíčků pomocí pip.

Varianta 2: SSH

Dalším krokem vpřed oproti stažení aplikace je nastavení SSH klienta. Již dlouho jsme mohli používat jakoukoli z mnoha aplikací SSH klientů pro iOS, abychom se připojili k serveru, na kterém běží Linux nebo BSD. Výhoda použití SSH spočívá v tom, že na serveru může běžet jakákoli distribuce s jakýmkoli softwarem. Pracujete vzdáleně a výsledky jsou jednoduše přenášeny do terminálového emulátoru na zařízení iOS.

Blink shell — je populární placená SSH aplikace v open source. Pokud nebudeme brát v úvahu malou obrazovku zařízení, používání tohoto softwaru připomíná připojení k serveru prostřednictvím jakéhokoli jiného příkazového řádku. Terminál Blink vypadá skvěle, má mnoho hotových témat a možnost vytvářet vlastní, včetně možnosti úpravy a přidávání nových písem.

Varianta 3: spuštění Linuxu

Použití SSH k připojení k serveru s Linuxem je skvělý způsob, jak získat přístup k příkazovému řádku, ale vyžaduje to externí server a síťové připojení. To není největší překážka, ale nelze ji úplně ignorovat, takže možná budete potřebovat pracovat s Linuxem bez serveru.

Pokud je to váš případ, budete muset udělat další krok vpřed. TestFlight — to je proprietární služba pro instalaci vyvíjených aplikací ještě před tím, než byly zveřejněny v Apple App Store. Aplikaci TestFlight si můžete stáhnout z App Store a používat testovací aplikace. Aplikace v TestFlight umožňují pracovat s nimi po omezenou dobu omezenému počtu beta testerů (obvykle až 10 000). Chcete-li stáhnout testovací aplikaci, musíte přejít ze svého zařízení na odkaz, který je obvykle na webových stránkách vývojáře testovací aplikace.

Spuštění Alpine Linux s iSH

iSH — je open-source aplikace TestFlight, která spouští virtuální stroj s hotovým distribucí Alpine Linux (se správným úsilím lze spouštět i jiné distribuce).

Důležitá vlastnost: aplikace je experimentální. Protože je iSH zatím testovací aplikací, neočekávejte stálou a spolehlivou funkčnost. Aplikace TestFlight jsou časově omezeny. Moje současná verze bude fungovat pouze 60 dní. To znamená, že za 60 dní budu vyloučen a budu se muset znovu připojit k dalšímu testování iSH. Navíc ztratím všechny své soubory, pokud je neexportuji pomocí aplikace Soubory na iOS nebo je neokopíruji na Git hostitel nebo přes SSH. Jinými slovy: Nedoufejte, že to všechno bude stále fungovat! Není dobré ukládat do systému nic důležitého pro vás! Provádějte zálohy na jiné místo!

Instalace iSH

Začněte instalací TestFlight z App Store. Poté nainstalujte iSH, získáním instalačního odkazu z webových stránek aplikace. Existuje také další způsob instalace pomocí AltStore, ale ten jsem nezkoušel. Nebo, pokud máte placený účet vývojáře, můžete si stáhnout repozitář iSH z GitHub a nainstalovat ho sami.

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

Správa balíčků

iSH provozuje emulátor x86 s Alpine Linux. Alpine je malá distribuce o velikosti méně než 5 MB. První zkušenost s Alpine mě překvapila, myslel jsem, že mi takový minimalismus bude vadit, ale ve skutečnosti se mi opravdu líbí.

Spouštíme příkazový řádek Linuxu na iOS
V Alpine se používá správce balíčků apk, který je jednodušší než apt nebo pacman.

Jak nainstalovat balíček:

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

Výchozím textovým editorem Alpine je Vi, ale já preferuji Vim, proto jsem ho nainstaloval:

apk add vim

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

Změna shellu

Nevím, jak to máte vy, ale já potřeboval fish shell. Jiní lidé preferují Bash nebo Zsh. V Alpine se však používá ash! Ash je fork shelly Dash, která sama je forkem původního ash, nebo Almquist shell. Jeho priorita je rychlost. Rozhodl jsem se vyměnit rychlost za vestavěné automatické dokončování, barvy, ovládání klávesami Vim a zvýraznění syntaxe, které mám rád a znám z fish shell.

Instalace fish:

apk add fish

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

apk add bash bash-doc bash-completion

Minimalistická ideologie Alpine obvykle znamená, že některé programy, které v jiných distribucích jsou jedním balíčkem, budou rozděleny na několik menších balíčků. Také to znamená, že si můžete svůj systém přizpůsobit a zmenšit velikost přesně podle svých představ.

Více o instalaci Bash se dozvíte z tohoto tutoriálu.

Změna výchozího shellu

Po instalaci fish se můžete dočasně přepnout na ni zadáním fish a přepnout se do shellu. Ale chci udělat fish shell výchozím, a příkaz chsh, který jsem používal v jiných distribucích, nefungoval.

Nejdříve zjistíme, kam se fish nainstalovala:

which fish

Tady je, co jsem dostal:

/usr/bin/fish

Pak změníme login shell na fish. Můžete použít jakýkoliv editor, který vám vyhovuje. Pokud jste nováčka, nainstalujte Nano (příkazem apk add nano), abyste mohli upravit konfigurační soubory a uložit je přes CTRL+X, potvrdit a ukončit.

Ale já jsem použil Vim:

vim /etc/passwd

Můj první řádek byl takový:

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

Abych udělal fish shell výchozím, změníme tento řádek na následující:

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

Pak uložíme soubor a výjdeme.

Jsem si jistý, že existuje dobrý způsob, jak změnit cestu k shellu, aby se dala použít hned. Ale nevím jak, proto doporučuji vrátit se do aplikace prohlížeče, nutně se odhlásit ze shellu a pro jistotu vypnout a restartovat iPad nebo iPhone. Znovu otevřete iSH a nyní kromě zprávy „Vítejte v Alpine!“ a informace o spuštění s apk uvidíte standardní uvítací zprávu pro přihlášení fish: Vítejte v fish, přátelském interaktivním shellu. Hurá!

Spouštíme příkazový řádek Linuxu na iOS

Nastavení Pythonu a pip

Rozhodl jsem se přidat CouchDB (verzi 3.x), nejen proto, abych mohl psát kód, ale také proto, že používám několik programů v Pythonu. Nainstalujeme ho:

apk add python3

I když je Python 2.x zastaralý, můžete nainstalovat i jeho:

apk add python

Nainstalujeme správce balíčků Python, nazývaný pip a setuptools:

python3 -m ensurepip --default-pip

Pro instalaci a konfiguraci správce balíčků bude potřeba nějaký čas, takže si prostě počkejte.

Poté si budete moci stáhnout nástroj pro přenos souborů přes síť curl:

apk add curl

Čteme manuály

Fish používá vestavěné automatické doplňování na základě man-stránek. Jako ostatní uživatelé příkazové řádky používám manuál man, a v Alpine není nainstalován. Proto jsem ho nainstaloval s terminálovým pagerem less:

apk add man man-pages less less-doc

Kromě manuálu používám skvělý projekt tldr pages, který poskytuje zjednodušené a komunitou spravované man-stránky.

Nainstaloval jsem ho pomocí pip:

pip install tldr

Tým tldr se spojuje s webem pro získání stránek, když se setká s požadavkem 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ískat popis v jednoduché angličtině a dobré příklady použití příkazu.

Samozřejmě, že veškerou tuto práci kolem instalace lze automatizovat pomocí dotfiles nebo instalačního skriptu, ale to vlastně moc neodpovídá ideologii Alpine — konfiguraci minimální instalace přesně podle vlastních potřeb. Kromě toho to zabralo tolik času, že?

Další informace

Na wiku iSH je stránka "what works" s reporty o tom, které balíčky nyní fungují. Mimochodem, vypadá to, že npm nyní nefunguje.

Na další wikipedii je vysvětleno, jak získat přístup k souborům iSH z aplikace iOS Files. To je jeden ze způsobů, jak lze přesouvat a kopírovat soubory.

Můžete také nainstalovat Git (ano! apk add git ) a posílat svou práci do vzdáleného úložiště nebo ji přenášet na server přes SSH. A samozřejmě, můžete stahovat a spouštět libovolné množství úžasných open-source projektů z GitHubu.

Více o iSH se můžete dozvědět na těchto odkazech:

Na základě reklamy

VDS nabízí virtuální servery na Linuxu nebo Windows. Používáme výhradně značkové vybavení, nejlepší ve své třídě řídicí panel serverů vyvinutý námi a jedno z nejlepších datových center v Rusku a EU. Nezapomeňte si objednat!

Spouštíme příkazový řádek Linuxu na iOS

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster