Знаете ли вы, что вы можете запустить командную строку Linux на своем устройстве iOS? Вы можете спросить: «Зачем мне использовать текстовые приложения на моем крошечном iPhone?» Хорошо, достаточно честно. Это вполне разумный вопрос. Вы, вероятно, знаете ответ: пользователи Linux хотят иметь возможность использовать любое устройство, и они также хотят использовать свои собственные настройки.
И больше всего им нужен вызов.
У меня есть iPad 2 Mini семилетней давности, который все еще отлично подходит для чтения электронных книг и других задач. Но я также хочу использовать его для доступа к командной строке для приложений и моего набора программ и скриптов, без которых я не могу обойтись. Мне нужна среда, к которой я привык, а также стандартная среда разработки. Вот как я это сделал.
Использование командной строки для программирования на экранной клавиатуре телефона или планшета не так уж и весело. Я рекомендую подключить внешнюю клавиатуру либо через Bluetooth, либо с помощью адаптера комплекта подключения камеры для подключения проводной клавиатуры (я предпочитаю). Подключение моей разделенной клавиатуры Kinesis Advantage к моему iPhone 6 создает странную оптику, как корпоративная кибердека из классической ролевой игры Shadowrun.
У вас есть два варианта запуска полной системы Linux на iOS:
В качестве альтернативы есть два приложения-эмулятора терминала с открытым исходным кодом, которые предоставляют инструменты с открытым исходным кодом в ограниченной среде. Это наиболее ограниченный вариант – он действительно не позволяет вам запускать Linux, но вы используете инструменты Linux. Существуют серьезные ограничения на то, что вы можете делать на устройстве с этими приложениями, но они предоставляют вам некоторые функции командной строки.
Я рассмотрю самый простой подход, прежде чем искать более сложные решения.
Один из самых простых способов начать работу – использовать приложение LibTerm для iOS . Это изолированная оболочка командной строки с открытым исходным кодом с более чем 80 командами, объединенными в приложение за $ 0. Он поставляется с Python 2.7, Python 3.7, Lua, C, Clang и другими.
В том же духе находится a-Shell , описываемый как «текстовый пользовательский интерфейс для экранной платформы». a-Shell является открытым исходным кодом , находится в активной разработке, предоставляет доступ к файловой системе и поставляется с Lua, Python, Tex, Vim, JavaScript, C и C ++, а также с Clang и Clang ++. Он даже позволяет вам устанавливать пакеты Python с помощью pip.
Один шаг до загрузки приложения – это настройка клиента SSH. Уже давно можно использовать одно из многих клиентских приложений SSH на iOS для подключения к серверу, на котором запущен дистрибутив Linux или BSD. Преимущество использования SSH заключается в том, что на вашем сервере может быть запущен любой дистрибутив с любым программным обеспечением, которое вам нравится. Вы работаете удаленно, и ваш вывод просто передается в эмулятор терминала вашего устройства iOS.
Blink shell – популярное платное SSH-приложение с открытым исходным кодом . За пределами маленького экрана использование этого программного обеспечения похоже на подключение к серверу через любую другую командную строку. Терминал Blink выглядит красиво, с рядом включенных тем и возможностью создавать свои собственные темы, включая настройку и добавление новых шрифтов.
Использование SSH для подключения к серверу под управлением Linux – отличный способ получить доступ к приглашению, но для этого требуется доступ к внешнему серверу и соединение. Это не самый плохой барьер для входа, но им нельзя пренебречь, и вы можете использовать Linux без этого требования к серверу.
Если это ваш случай, вам придется придумать что-то более передовое. TestFlight – это проприетарный сервис для развертывания приложений, находящихся в стадии разработки, перед их отправкой в Apple App Store. Вы можете загрузить приложение TestFlight из магазина, а затем подписаться на ряд тестовых приложений. Приложения в TestFlight позволяют использовать ограниченное количество внешних бета-тестеров (обычно до 10 000) в течение ограниченного времени. Чтобы загрузить тестовое приложение, вы должны получить доступ к ссылке прямо со своего устройства, которая обычно находится на веб-сайте разработчика тестового приложения.
iSH – это приложение TestFlight с открытым исходным кодом, которое запускает виртуальную машину с дистрибутивом Alpine Linux из коробки (но вы можете запускать другие дистрибутивы, немного повозившись).
Важный нюанс: это экспериментально . Поскольку iSH в настоящее время является тестовым приложением, не ожидайте постоянного или надежного обслуживания. Приложения TestFlight ограничены по времени. Моя текущая сборка длится 60 дней. Это означает, что через 60 дней я буду заблокирован, и мне придется вернуться к следующему этапу тестирования iSH. Кроме того, я потеряю свои файлы, если не экспортирую их с помощью файлов на iOS или не сохраню их на хосте Git или с помощью SSH . Чтобы было ясно: не полагайтесь на это, чтобы продолжить работу! Не кладите сюда ничего важного! Сделайте резервную копию своей работы в другом месте!
Начните с установки TestFlight через App Store. Затем установите iSH, получив ссылку для установки на его веб-сайте. Есть еще один метод установки, использующий AltStore, но я его не пробовал. Или, если у вас есть платная учетная запись разработчика, вы можете загрузить репозиторий iSH с GitHub и развернуть его самостоятельно.
Используя ссылку, TestFlight устанавливает приложение iSH на ваше устройство. Как и любое другое приложение, оно отображается на вашем экране со значком.
iSH запускает эмулятор x86 с Alpine Linux. Alpine – это крошечный дистрибутив размером менее 5 МБ. Это был мой первый запуск Alpine, и я подумал, что меня не расстроит такой минималистичный дистрибутив, но на самом деле он мне очень понравился.
Alpine использует диспетчер пакетов apk , который проще, чем даже apt или pacman.
Чтобы установить пакет:
apk add package
Чтобы удалить пакет:
apk del package
Найдите другие команды и информацию с помощью:
apk --help
Обновите менеджер пакетов:
apk update apk upgrade
Текстовым редактором Alpine по умолчанию является Vi, но я предпочитаю Vim, поэтому я установил его:
apk add vim
Вы можете установить Nano или Emacs, если хотите.
Не знаю, как вы, но мне нужна fish shell . Другие предпочитают Bash или Zsh . Но Alpine использует Ash! Ash – это ветка оболочки Dash, которая сама по себе является вилкой оригинальной оболочки Ash или Almquist . Он разработан для скорости. Я решил обменять скорость в пользу встроенного автозаполнения, цвета, управления Vim-key и подсветки синтаксиса, которые я знаю и люблю в fish shell.
Установите fish:
apk add fish
Если вместо этого вам нужен Bash, его дополнения и справочные страницы, вам нужно установить их и некоторые дополнительные вещи:
apk add bash bash-doc bash-completion
Идеология минимализма Alpine обычно означает, что некоторые программы, которые были бы одним пакетом в других дистрибутивах, делятся на несколько меньших пакетов. Это также означает, что вы можете настроить и уменьшить свою систему именно так, как вам нужно.
После установки fish вы можете временно переключиться на нее и попробовать ее, набрав fishи опустив в оболочку. Но я хочу сделать fish своей оболочкой по умолчанию, а chshкоманда, к которой я привык из других дистрибутивов, не работает.
fish
chsh
Для начала узнаем, где установлена fish:
which fish
Мой вывод:
/usr/bin/fish
Затем отредактируйте оболочку входа, чтобы использовать fish. Вы можете использовать любой удобный вам редактор. Если вы новичок, установите Nano (с apk add nano), чтобы вы могли редактировать файлы конфигурации и сохранять их с помощью CTRL + X, подтверждения и выхода.
apk add nano
Но я использовал 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, дружественную интерактивную оболочку . Ура!
Я решил добавить Python (версия 3.x) не только для того, чтобы писать код, но и потому, что полагаюсь на несколько программ Python. Установите его:
apk add python3
Хотя Python 2.x устарел, вы все равно можете его установить:
apk add python
Установите менеджер пакетов Python, pip и setuptools :
python3 -m ensurepip --default-pip
Для установки и настройки диспетчера пакетов требуется некоторое время, так что просто подождите.
Затем вы можете загрузить curl , инструмент передачи данных по сети:
apk add curl
Fish использует встроенное автозаполнение на основе страниц руководства. Как и другие пользователи командной строки, я полагаюсь на manруководство, а в Alpine оно не установлено. Итак, я установил его вместе с пейджером less :
man
apk add man man-pages less less-doc
В дополнение к man я использую великолепный проект tldr Pages , который предоставляет упрощенные, управляемые сообществом man-страницы.
Я установил его с помощью pip:
pip install tldr
Команда tldr подключается к Интернету для получения страниц всякий раз, когда встречает запрос на создание новой. Если вам нужно научиться использовать команду, вы можете просто ввести что-то вроде, tldr curlчтобы получить объяснение на простом английском языке и хорошие примеры того, как использовать команду.
tldr
tldr curl
Вы, конечно, можете автоматизировать всю эту установку с помощью точечных файлов или сценария установки, но это не соответствует способу Alpine настроить минимальную установку точно в соответствии с вашими требованиями. Кроме того, это не заняло так много времени, не так ли?
Вики iSH содержит страницу « Что работает » с отчетами о том, какие пакеты в настоящее время работают. Следует отметить, что в настоящее время npm не работает.
На другой странице вики объясняется, как получить доступ к файлам iSH из приложения iOS Files. Это один из способов перемещения и передачи файлов.
Вы также можете установить Git (да! apk add git) И отправить свою работу в удаленное репо или перенести ее на сервер по SSH. И, конечно же, вы можете загрузить и запустить любое количество потрясающих проектов с открытым исходным кодом с GitHub в своей системе.
apk add git
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies