
Знаете ли вие, че можете да стартирате команден ред на Linux на вашето iOS устройство? Може би се питате: „Защо да използвам текстови приложения на iPhone?“ Справедлив въпрос. Но ако четете Opensource.com, вероятно знаете отговора: потребителите на Linux искат да имат възможност да работят с него на всяко устройство и искат да използват собствените си настройки.
Но най-вече те жадуват да разрешат сложни задачи.
Имам седемгодишен iPad 2 Mini, който все още е подходящ за четене на електронни книги и други задачи. Въпреки това, искам да го използвам и за достъп до командния ред на приложенията с моя набор от програми и скриптове, без които не мога да работя. Нуждая се от среда, с която съм свикнал, както и от моя стандартен работен набор. И ето как успях да го постигна.
Свързване с клавиатура
Работата с командния ред за програмиране чрез екранната клавиатура на телефона или таблета е доста неудобна. Препоръчвам да свържете външна клавиатура, или чрез Bluetooth, или с помощта на адаптер за свързване на камера, за да свържете проводна клавиатура (аз избрах второто). При свързване на разделената клавиатура Kinesis Advantage към iPhone 6 се получава странно устройство, напомнящо на от класическата Shadowrun.
Инсталиране на обвивка на iOS
За да стартирате пълнофункционална система Linux на iOS, има два варианта:
- Secure shell (SSH), свързваща се с компютър с Linux
- Стартиране на виртуална система с помощта на Alpine Linux с iSH, който е с отворен код, но трябва да бъде инсталиран чрез собственото приложение TestFlight на Apple
Като алтернатива съществуват два приложения-емулатори на терминал с отворен код, които предоставят възможност за работа с инструменти с отворен код в ограничена среда. Това е най-опростеният вариант — всъщност вие стартирате не Linux, а инструментите на Linux. При работа с тези приложения съществуват строги ограничения на възможностите, но получавате частична функционалност на командния ред.
Преди да премина към сложни решения, ще разгледам най-простия начин.
Вариант 1: обвивка в „песочница“
Един от най-простите начини е да инсталирате приложение за iOS . Това команден интерфейс в „пясъчник“ с поддръжка на повече от 80 команди, на цена нула долара. Включва Python 2.7, Python 3.7, Lua, C, Clang и много други.
Примерно такава функционалност предлага , описвана от разработчиците като „тестов интерфейс за платформа с екранен вход“. Изходният код на a-Shell е публикуван , в активно развитие е, предоставя достъп до файловата система и идва с Lua, Python, Tex, Vim, JavaScript, C и C++, както и с Clang и Clang++. Позволява дори инсталирането на Python пакети с pip.
Вариант 2: SSH
Следващата стъпка в сравнение с изтеглянето на приложение е настройката на SSH клиент. Отдавна можем да използваме множество приложения за SSH клиенти за iOS, за да се свържем със сървър, на който работи Linux или BSD. Предимството на използването на SSH е, че на сървъра може да работи всеки дистрибутив с желания софтуер. Работите дистанционно и резултатите се предават само в терминалния емулатор на iOS устройството.
— популярно платено SSH приложение в . Ако не се вземе предвид малкият екран на устройството, използването на този софтуер е подобно на свързването със сървър чрез друг команден ред. Терминалът Blink изглежда страхотно, предлага множество готови теми и функция за създаване на собствени, включително възможността за настройка и добавяне на нови шрифтове.
Вариант 3: стартиране на Linux
Използването на SSH за свързване със сървър под Linux е отличен начин за достъп до командния ред, но изисква външен сървър и интернет връзка. Това не е най-голямата пречка, но не може да бъде игнорирана напълно, поради което може да се наложи да работите с Linux без сървър.
Ако това е вашият случай, ще трябва да направите още една стъпка напред. — това е собственост на услуга за инсталиране на разработки приложения, преди те да бъдат качени в Apple App Store. Приложението TestFlight може да се инсталира от App Store и след това да се използват тестови приложения. Приложенията в TestFlight позволяват на ограничен брой бета тестери (обикновено до 10 000) да работят с тях в рамките на ограничен период от време. За да изтеглите тестовото приложение, трябва да последвате линк от вашето устройство, който обикновено се намира на уебсайта на разработчика на тестовото приложение.
Стартиране на Alpine Linux с iSH
— е open-source приложение TestFlight, което стартира виртуална машина с готов дистрибутив (с малко усилия, можете да стартирате и други дистрибутиви).
Важно е да се отбележи: приложението е експериментално. Тъй като iSH в момента е тестово приложение, не очаквайте постоянно и надеждно функциониране. Приложенията TestFlight са ограничени по време. Моята текуща версия ще работи само 60 дни. Това означава, че след 60 дни ще бъда изключен и ще трябва отново да се присъединя към следващия етап на тестиране на iSH. Освен това ще загубя всичките си файлове, ако не ги експортирам с помощта на Files на iOS или не ги копирам в Git хост или . С други думи: Не се надявайте, че всичко това ще продължи да работи! Не поставяйте в системата нищо важно за вас! Направете резервно копие на друго място!
Инсталиране на iSH
Започнете с инсталиране от App Store. След това инсталирайте iSH, от уебсайта на приложението. Има и друг начин за инсталиране с AltStore, но не съм го пробвал. Или, ако имате платен разработчески акаунт, можете да изтеглите репозитория iSH от GitHub и да го инсталирате сами.
С помощта на линка TestFlight приложението iSH ще бъде инсталирано на устройството ви. Както и при всяко друго приложение, на екрана ще се появи иконка.
Управление на пакети
iSH изпълнява x86 емулатор с Alpine Linux. Alpine е малък дистрибутив с размер под 5 МБ. Това беше първият ми опит с Alpine, така че си помислих, че такъв минимализъм ще бъде досаден, но всъщност много ми хареса.

В Alpine се използва мениджър на пакети , който е по-прост дори от apt или pacman.
Как да инсталирате пакет:
apk add packageКак да премахнете пакет:
apk del packageКак да научите за други команди и информация:
apk --helpАктуализиране на мениджъра на пакети:
apk update
apk upgradeИнсталиране на текстов редактор
Стандартният текстов редактор на Alpine е Vi, но аз предпочитам Vim, затова го инсталирах:
apk add vimАко желаете, можете да инсталирате Nano или Emacs.
Смяна на обвивката
Не знам за вас, но на мен ми трябваше . Други хора предпочитат или . Въпреки това, в Alpine се използва ash! Ash е fork на обвивката Dash, която сама по себе си е fork на оригиналния ash или . Неговият приоритет е скоростта. Аз реших да заменя скоростта с вградено автозапълване, цветове, управление на клавишните комбинации Vim и синтактична поддръжка, които обичам и познавам от fish shell.
Инсталиране на fish:
apk add fishАко искате Bash с неговото автозапълване и man-страници, инсталирайте ги:
apk add bash bash-doc bash-completionМинималистичната идеология на Alpine означава обикновено, че някои програми, които в други дистрибуции са един пакет, ще бъдат разпределени на няколко по-малки пакета. Това също означава, че можете да конфигурирате и намалите размера на системата така, както искате.
Повече информация за инсталирането на Bash можете да намерите в .
Смяна на обвивката по подразбиране
След инсталирането на fish можете временно да се превключите на нея, като въведете fish и влезете в обвивката. Но искам да направя fish обвивка по подразбиране, а командата chsh, която използвах в други дистрибуции, не работеше.
Първо, нека разберем къде е инсталирана fish:
which fishЕто какво получих:
/usr/bin/fish След това ще променим login shell на fish. Можете да използвате всеки удобен редактор за вас. Ако сте начинаещ, то инсталирайте Nano (с командата apk add nano), за да можете да редактирате конфигурационни файлове и да ги запазите чрез CTRL+X, потвърдете и излезте.
Но аз използвах Vim:
vim /etc/passwdПървият ред при мен беше такъв:
root:x:0:0:root:/root:/bin/ashЗа да направим fish обвивка по подразбиране, ще променим този ред на следния:
root:x:0:0:root:/root:/usr/bin/fishСлед това запазваме файла и излизаме.
Сигурен съм, че съществува добър начин да промените пътя на обвивката, за да може да се използва веднага. Но не го знам, затова препоръчвам да се върнете в браузъра на приложенията, принудително да излезете от обвивката и за сигурност да изключите и рестартирате iPad или iPhone. Отново отворете iSH и сега освен съобщението „Добре дошли в Alpine!“ и информацията за стартиране с apk ще видите стандартното приветствено съобщение за входа на fish: Добре дошли в fish, приятелски интерактивен шел. Ура!

Настройка на Python и pip
Реших да добавя Версия 3.x, не само за да пиша код, а и защото ползвам няколко програми на Python. Нека я инсталираме:
apk add python3Въпреки че Python 2.x е остарял, можем да го инсталираме:
apk add pythonНека инсталираме пакетния мениджър на Python, наречен pip и :
python3 -m ensurepip --default-pipЗа инсталирането и настройката на пакетния мениджър ще е необходимо известно време, така че просто чакайте.
След това ще можем да изтеглим инструмент за предаване на файлове през мрежата :
apk add curlЧетем ръководствата
Fish използва вградено автоматично допълване на базата на man-страници. Както и другите потребители на командния ред, използвам ръководството man, а в Alpine то не е инсталирано. Затова го инсталирах с терминален пейджър :
apk add man man-pages less less-docВ допълнение към man, използвам невероятния , предоставящ опростени и управлявани от общността man-страници.
Инсталирах го с помощта на pip:
pip install tldr Екип tldr се свързва с уеба, за да получи страници, когато срещне искане за нова страница. Ако искате да разберете как да използвате команда, можете да напишете нещо като tldr curl и да получите описание на прост английски език и добри примери за използване на командата.
Разбира се, цялата тази работа по инсталирането може да бъде автоматизирана с помощта на или инсталационен скрипт, но наистина не съответства на идеологията на Alpine — настройването на минимална инсталация, строго според собствените нужди. Освен това, отдели толкова много време, нали?
Допълнителна информация
В Wiki iSH има страница "" с отчети за това, кои пакети в момента работят. Между другото, изглежда, че .
На още една вики-страница е обяснено как от приложението iOS Files. Това е един от начините, по които можете да премествате и копирате файлове.
Можете също да инсталирате Git (да! apk add git ) и да качвате работата си в отдалечен репозиторий или да я предавате на сървър през SSH. И, разбира се, можете да изтеглите и стартирате всяко количество страхотни open-source проекти от GitHub.
Повече за iSH можете да научите от тези връзки:
Реклама
Вдсина предлага или Windows. Използваме изключително , най-добрата в своя клас панел за управление на сървъри, създадена от нас, и едно от най-добрите дата центрове в Русия и ЕС. Побързайте и поръчайте!
Източник: habr.com
