А ви знали, що можна запустити командний рядок Linux на iOS? Можливо, ви запитаєте: "Навіщо мені користуватися текстовими додатками на iPhone?" Справедливе питання. Але якщо ви читаєте Opensource.com, то, напевно, знаєте на нього відповідь: користувачі Linux хочуть мати можливість працювати з ним на будь-якому пристрої і хочуть користуватися власними налаштуваннями.
Але найбільше вони прагнуть розв'язання складних завдань.
У мене є семирічний iPad 2 Mini, який, як і раніше, непогано підходить для читання електронних книг та інших завдань. Однак я хочу використовувати його і для доступу до командного рядка програм з моїм набором програм та скриптів, без яких не можу працювати. Мені потрібне оточення, до якого я звик, а також моє стандартне середовище розробки. І ось як мені вдалося цього досягти.
Підключення до клавіатури
Працювати з командним рядком для програмування за допомогою екранної клавіатури телефону або планшета досить незручно. Я рекомендую підключити зовнішню клавіатуру, або через Bluetooth, або скориставшись адаптером підключення камери, щоб підключити провідну клавіатуру (я вибрав друге). При підключенні розділеної клавіатури Kinesis Advantage до iPhone 6 виходить дивний пристрій, що нагадує
Встановлюємо оболонку на iOS
Для запуску повнофункціональної системи Linux на iOS є два варіанти:
- Secure shell (SSH), що підключається до комп'ютера з Linux
- Запуск віртуальної системи за допомогою Alpine Linux з iSH, який є open source, але повинен встановлюватися за допомогою пропрієтарної програми TestFlight компанії Apple
Як альтернатива існують два додатки-емулятора терміналу в open source, що надають можливість роботи з open-source-інструментами в обмеженому оточенні. Це найбільш урізаний варіант - насправді так ви запускаєте не Linux, а Linux інструменти. При роботі з цими програмами існують жорсткі обмеження можливостей, однак ви отримуєте часткову функціональність командного рядка.
Перш ніж перейти до складних рішень, я розгляну найпростіший спосіб.
Варіант 1: оболонка у «пісочниці»
Один із найпростіших способів — встановити програму для iOS
Приблизно таку ж функціональність має
Варіант 2: SSH
Ще одним кроком вперед у порівнянні зі скачуванням програми є налаштування SSH-клієнта. Вже довгий час ми могли використовувати будь-яку з багатьох програм SSH-клієнтів для iOS, щоб підключатися до сервера, на якому запущено Linux або BSD. Перевага використання SSH полягає в тому, що на сервері може працювати будь-який дистрибутив із будь-яким програмним забезпеченням. Ви працюєте віддалено і результати роботи просто передаються в емулятор терміналу на iOS.
Варіант 3: запуск Linux
Використання SSH для підключення до сервера під Linux – це відмінний спосіб доступу до командного рядка, але для нього потрібний зовнішній сервер та мережне підключення. Це не найбільша перешкода, але її не можна повністю ігнорувати, тому вам може знадобитися працювати з Linux без сервера.
Якщо це ваш випадок, вам потрібно буде зробити ще один крок вперед.
Запуск Alpine Linux з iSH
Важлива особливість: додаток експериментальний. Оскільки iSH зараз поки є тестовим додатком, не чекайте постійної та надійної роботи. Програми TestFlight обмежені за часом. Моя поточна збірка буде працювати лише 60 днів. Це означає, що через 60 днів мене виключать і доведеться знову приєднуватись до наступного етапу тестування iSH. Більше того, я втрачу всі свої файли, якщо не експортую їх за допомогою Files на iOS або не скопіюю їх на Git-хост або
Встановлення iSH
Почніть з установки
За допомогою посилання TestFlight встановить програму iSH на ваш пристрій. Як і у випадку з будь-якою іншою програмою, на екрані з'явиться значок.
Управління пакетами
iSH виконує емулятор x86 з Alpine Linux. Alpine це крихітний дистрибутив розміром менше 5 МБ. Я вперше працював з Alpine, тому думав, що такий мінімалізм дратуватиме, але насправді він мені дуже сподобався.
В Alpine використовується менеджер пакетів
Як встановити пакет:
apk add package
Як видалити пакет:
apk del package
Як дізнатися інші команди та інформацію:
apk --help
Оновлення менеджера пакетів:
apk update
apk upgrade
Встановлення текстового редактора
Стандартним текстовим редактором Alpine є Vi, але я віддаю перевагу Vim, тому встановив його:
apk add vim
За бажанням можна встановити Nano або Emacs.
Зміна оболонки
Не знаю, як щодо вас, а мені потрібна була
Установка:
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 і тепер окрім повідомлення "Welcome to Alpine!" та інформації про запуск з apk ви побачите стандартне вітальне повідомлення логіна fish: Ласкаво просимо до риби, дружньої інтерактивної оболонки. Ура!
Налаштування Python та pip
Я вирішив додати
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 я використовую чудовий
Я встановив його за допомогою pip:
pip install tldr
Команда tldr
з'єднується з Інтернетом для отримання сторінок, коли зустрічає запит на нову сторінку. Якщо вам потрібно дізнатися, як користуватися командою, ви можете написати щось типу tldr curl
і отримати опис простою англійською мовою і хороші приклади з використання команди.
Зрозуміло, всю цю роботу з установки можна автоматизувати за допомогою
Додаткова інформація
У Вікі iSH є сторінка "
Ще на одній вікі-сторінці пояснюється, як
Можна також встановити Git (так! apk add git
) і пушити свою роботу у віддалений репозиторій або передавати його на сервер через SSH. І, зрозуміло, можна завантажувати та запускати будь-яку кількість чудових open-source-проектів з GitHub.
Докладніше про iSH можна дізнатися за цими посиланнями:
На правах реклами
Вдсіна пропонує
Джерело: habr.com