Открыть сервис

Termux: эмулятор терминала для Android

Termux — свободно распространяемый эмулятор терминала для операционной системы Android, который предоставляет среду выполнения Linux-подобных команд без необходимости получения root-прав. Приложение позволяет устанавливать и запускать тысячи пакетов программного обеспечения через собственный менеджер пакетов, включая компиляторы, интерпретаторы языков программирования, текстовые редакторы и сетевые утилиты. Termux сочетает в себе функции эмулятора терминала и минималистичного дистрибутива Linux, работающего в изолированном пространстве пользовательского профиля Android.

История

Проект Termux был основан Фредриком Форнваллем (швед. Fredrik Fornwall) в 2015 году. Первоначально приложение распространялось через магазин приложений F-Droid, а затем появилось в Google Play. Основной целью разработчика было создание мощной командной строки на Android, которая не требовала бы модификации системы или наличия привилегий суперпользователя. В 2017 году Termux был включён в репозиторий Google Play, что значительно расширило аудиторию. Однако в 2024 году приложение было удалено из Google Play из-за изменений политики в отношении приложений, использующих устаревшие версии API; разработчики продолжили распространение через F-Droid и GitHub. Проект активно развивается сообществом, а его исходный код опубликован под лицензией GPLv3.

Архитектура и принцип работы

В основе Termux лежит использование нативного исполняемого кода Android, который взаимодействует с ядром Linux через стандартные системные вызовы (syscall). Поскольку Android базируется на ядре Linux, но не включает стандартный набор утилит GNU, Termux предоставляет собственную среду, устанавливаемую в домашний каталог приложения (/data/data/com.termux/files). Эта среда содержит минимальный набор базовых программ, включая оболочку Bash, и работает в песочнице Android, что ограничивает доступ к системным файлам, но обеспечивает безопасность и отсутствие необходимости в root-правах.

Репозиторий пакетов

Ключевой компонент Termux — собственный репозиторий программного обеспечения, который поддерживается разработчиками и волонтёрами. Пакеты собираются для архитектур ARM, ARM64, x86 и x86_64. Менеджер пакетов pkg (обёртка над apt) позволяет устанавливать, обновлять и удалять программное обеспечение. В репозитории насчитывается несколько тысяч пакетов, включая такие крупные проекты, как Python, Node.js, Ruby, Go, GCC, Clang, OpenSSH, Git, Vim, Emacs и многие другие. Особенность сборок Termux — адаптация пакетов для работы в ограниченной среде Android: например, пути к файлам конфигурации изменены, а часть функций, требующих системных привилегий, отключена.

Дополнительные возможности

Termux поддерживает установку дополнительных приложений-плагинов: Termux:API (доступ к аппаратным функциям устройства через API), Termux:Boot (запуск скриптов при загрузке устройства), Termux:Widget (виджеты для запуска скриптов с рабочего стола) и Termux:Tasker (интеграция с приложением автоматизации Tasker). Эти плагины расширяют функциональность и позволяют автоматизировать действия на устройстве.

Основные области применения

Termux используется в нескольких ключевых сценариях:

  • Программирование и разработка: установка интерпретаторов Python, Node.js, Ruby, компиляторов C/C++ и Java (через OpenJDK) позволяет писать и запускать код непосредственно на устройстве. Поддерживается работа с Git, а также удалённая разработка через SSH.
  • Системное администрирование: наличие OpenSSH-клиента и сервера, утилит curl, wget, rsync, nmap и других сетевых инструментов делает Termux компактным инструментом для управления удалёнными серверами.
  • Образовательные цели: Termux часто используется для изучения Unix-подобных систем, командной строки и языков программирования на мобильных устройствах.
  • Автоматизация: с помощью планировщика cron (доступен через пакет cronie) и скриптов Bash можно автоматизировать рутинные задачи, такие как резервное копирование или мониторинг сети.
  • Запуск полноценного рабочего окружения: через установку пакета proot-distro возможно развертывание полноценных дистрибутивов Linux (например, Ubuntu, Debian, Arch Linux) внутри Termux без root-прав, что позволяет использовать графические приложения через VNC-сервер.

Ограничения и безопасность

Termux работает в песочнице Android, что накладывает определённые ограничения. Приложение не имеет доступа к системным каталогам, таким как /system или /etc, и не может изменять настройки ядра. Сетевые порты ниже 1024 недоступны для прослушивания без дополнительных настроек. Доступ к внутренней памяти устройства осуществляется через разрешения Android, а не напрямую через файловую систему. Эти ограничения делают Termux безопасным для повседневного использования, однако снижают его функциональность по сравнению с полноценным Linux-дистрибутивом.

Вопросы безопасности включают риск установки вредоносных пакетов из неофициальных источников. Официальный репозиторий считается безопасным, однако пользователям рекомендуется устанавливать пакеты только из него. Также стоит учитывать, что Termux предоставляет среду, в которой возможно выполнение произвольного кода, поэтому при использовании на рабочих устройствах следует соблюдать осторожность.

Примечательные факты

  • Termux поддерживает запуск сервера SSH, что позволяет подключаться к устройству с компьютера и управлять им удалённо.
  • С помощью пакета termux-api можно отправлять SMS, получать данные с датчиков, управлять камерой и другими аппаратными функциями устройства.
  • В Termux доступен пакет python, который позволяет запускать скрипты машинного обучения и анализа данных на мобильном устройстве.
  • Приложение поддерживает несколько сессий терминала одновременно и настраиваемые схемы цветов и шрифтов.

См. также

  • GNU/Linux
  • Android
  • Командная строка

Источники

  • Официальная документация Termux (termux.dev)
  • Репозиторий Termux на GitHub
  • Статьи и обзоры в профильных изданиях о мобильной разработке