Termux что можно сделать
Termux Wiki (на русском)
Contents
The Termux Wiki
Информация по использованию Termux и его пакетов.
Введение
Минимальный набор программ устанавливается автоматически, дополнительные пакеты можно установить при помощи пакетного менеджера.
С чего начать Информация для новичков. Пользовательский интерфейс Как пользоваться приложением. Настройки Как настроить приложение. Программы Работа с программной средой (пакетами). Оборудование Использование аппаратной мыши, клавиатуры и USB-OTG.
Установка
Обратите внимание что Termux не поддерживает устройства на ARM без NEON SIMD, например устройства на процессорах Nvidia Tegra 2.
Официально доступен для установки с данных источников:
Дополнения
Функциональность Termux может быть расширена при помощи установки следующих дополнений:
Termux:API Использование возможностей предоставляемых ОС Android. Termux:Boot Автоматический запуск скриптов после загрузки ОС. Termux:Float Запуск приложения во всплывающем окне. Termux:Styling Изменение шрифтов или цветовой схемы терминала. Termux:Tasker Обеспечивает возможность выполнения команд Termux приложением Tasker. Termux:Widget Позволяет запускать пользовательские скрипты при помощи виджетов.
Сообщество
Посмотрите страницы сообщества. Будь то для удовольствия или серьезной работы, пожалуйста, присоединяйтесь к нам.
Termux – Linux-терминал в Android
Termux – приложение с открытым исходным кодом, реализующее Linux-подобную среду, взаимодействие с которой происходит посредством консоли без необходимости иметь root-права на устройстве. Доступно для устройств с Android >= 7 (раньше было 5).
Termux бесплатен. Имеет несколько дополнительных модулей (см.ниже), которые можно купить на Google Play, свободно скачать на F-Droid или самостоятельно собрать из исходников на github. При этом, нельзя смешивать установку приложения, скачанного, например, на Google Play с установкой модуля, скачанного на F-Droid, т.к. они будут несовместимы из-за разных ключей подписи, используемых при сборке (сам не проверял).
Источники:
Basic use of termux (sqlsec.com) – огромная статья с обзором установки и настройки среды, множества пакетов, описанием API-команд, горячих клавиш (осторожно, китайский! есть eng-версия на fatalerros.org)
Android+Termux – карманный друг хакера (codeby.net) – хороший обзор, подключение по ssh с компа
Правильный Git-клиент на Android (pedronveloso.com) – (en) хорошая статья о Termux и git с помощью него
Установка и настройка
2) Обновить внутренние пакеты
3) При необходимости, настроить ssh-сервер и подключиться удаленно к оболочке Termux с компьютера (подробнее ниже, а также в статье)
3) При необходимости, настроить панель горячих клавиш и клавиатуру (подробнее ниже)
4) Открыть доступ к внешнему хранилищу устройства (подробнее ниже)
5) При необходимости, установить пакет для поддержки команд Termux API (подробнее ниже):
$ pkg install termux-api
7) При необходимости, установить и настроить git с использованием парольной аутентификации к удаленному репозиторию или с помощью ssh-ключей (описание в статье).
Подключение к Termux по ssh
Для подключения к оболочке Termux с компьютера (хоста) по протоколу ssh, нужно установить пакет OpenSSH:
Проверить работу ssh-сервера на нужном порту можно командой netstat :
Termux не поддерживает парольную аутентификацию по SSH и поэтому нужно будет использовать SSH-ключи. Более подробно про ssh-ключи и их использование написано в статье Работа с ssh-ключами.
Публичный ключ (по-умолчанию называется id_rsa.pub ) нужно будет загрузить на телефон и скопировать в файл
Например, подключаем телефон к хостовой машине как дисковый накопитель, копируем файл публичного ключа в корень памяти телефона. Затем в Termux выполняем команду:
Файл публичного ключа уже не нужен, удаляем:
Далее подключаем телефон к сети Wi-fi, узнаем его IP и подключаемся к нему с помощью SSH-клиента. С этого момента работа в Termux с клавиатуры компьютера становится намного удобнее.
Настройка горячих клавиш и клавиатуры
Панель горячих клавиш и клавиатуры можно настроить (FAQ: Touch Keyboard).
Редактирование панели с кнопками (создать файл при отсутствии):
Для себя настроил вот такие кнопки:
Можно настроить многострочное отображение панели (но оказалось неудобно, строчки узкие).
Клавиши, не попавшие в панель, можно вызвать с помощью комбинаций клавиш Up,Down и букв на клавиатуре (не уверен, что все).
Доступ к внешней памяти устройства
Чтобы запросить для Termux доступ к внешнему хранилищу телефона, нужно выполнить команду:
Дополнения
API – набор специальных команд для расширения функциональности устройства (подробнее ниже).
Boot – запуск скриптов при запуске устройства
Float – запуск Termux во всплывающем окне поверх других окон
Styling – настройка цветовой схемы и шрифта в терминале Termux
Tasker – запуск скриптов Termux из заданий Tasker‘а
Widget – виджет на рабочем столе для запуска скриптов Termux (подробнее ниже)
Дополнение Termux:API
Дополнение API – расширение функциональности устройства с помощью вызова специальных команд в Termux.
Для запуска команд нужно установить пакет termux-api :
Некоторые интересные команды:
termux-wake-lock – использовать блокировку Termux, чтобы процессор не засыпал
termux-wake-unlock – убрать блокировку Termux, чтобы процессор мог засыпать
Т.к. оболочка входа по-умолчанию – bash, то при использовании одного сеанса можно автоматизировать включение/отключение блокировки так:
1) добавить вызов termux-wake-lock в файл
/.bash_profile )
2) добавить вызов termux-wake-unlock в файл
Для нескольких сеансов придется самостоятельно управлять вызовом разблокировки. Но есть возможность вызвать bash один раз и использовать byobu для запуска нескольких сеансов bash в рамках одного сеанса Termux.
Termux шаг за шагом (Часть 2)
В прошлой части мы с вами познакомились с базовыми командами Termux’а, настроили SSH соединение с ПК, научились создавать alias’ы и установили несколько полезных утилит. В этот раз нам предстоит шагнуть еще дальше, мы с вами:
Поскольку мы теперь понимаем, что делают вводимые команды, то со следующего шага я не буду так подробно расписывать каждое действие, но там где могут быть затруднения, пояснять буду обязательно.
Я часто применяю alias’ы, поэтому используемые в этой части сокращения показаны здесь:
План готов, можно приступать! И конечно же не забывайте про «волшебный Tab» (См. Часть 1).
Шаг 4
Погружаемся в кроличью нору Termux:API
API как много в этом слове для сердца кодера слилось
Если не затрагивать тему Termux:API, то все наши шаги можно было свести к простому пересказу какой-нибудь брошюры типа «Линукс для чайников», как было справедливо подмечено в комментариях к первой части.
Для начала установим Termux:API из Google Play Market’а (после не помешает перезапустить Termux):
Далее нам нужно установить пакет API в консоли Termux’а:
Теперь стоит поближе познакомится с приобретенными возможностями. Самое свежее и подробное описание Termux:API можно найти на wiki проекта. Я же постараюсь выбрать самое наглядное и интересное, что позволит набить руку для самостоятельной работы в дальнейшем.
Несколько примеров Termux:API
Нетрудно заметить, что возвращаемые значения являются строками, словарями, списками словарей, в общем типами данных, с которыми прекрасно работает Python, поэтому следующим шагом мы его установим.
Шаг 5
Установим Python и nano
Для установки Python’а пишем в терминале:
Теперь у нас установлен 2 и 3 Python.
За время работы над статьей, я открыл для себя еще один текстовый редактор nano, который приглянулся мне больше чем vim, давайте его установим:
Пользоваться им проще чем vim’ом, и nano имеет более дружественный интерфейс. На Android устройстве все же удобнее vim.
HelloWorld на Python в Termux
По большому счету можно было обойтись и без этого пункта, но поставить Python в Termux и не написать HelloWorld, на мой взгляд, моветон.
Я не ставлю своей целью учить кого-либо Python’у, так что не знающие могут просто скопировать код (или начать изучать самостоятельно, благо литературы хватает), а знающие могут и сами что-нибудь наваять. А я «под шумок» еще покажу способ вводить текст в терминале без редактора.
Если в процессе ввода вы не заметили ошибку и уже нажали Enter, то перейти на строку выше не получится, для этого закончите ввод нажав Ctrl + D (можно вообще прервать Ctrl + Z) и повторите все с начала. Поскольку мы использовали ‘>’ то файл будет переписан полностью. По этой причине не рекомендую использовать такой метод ввода, если вы не уверены что напишете код сразу без ошибок.
Шаг 6
Bash-скрипты
При помощи скриптов можно автоматизировать практически все монотонные действия. Напишем простейший bash-скрипт выводящий значение из созданной им же переменной, я снова воспользуюсь cat’ом, вы же можете использовать нормальный текстовый редактор, а особо желающие себя потренировать могут использовать echo.
Bash-скрипт с Termux:API
Давайте напишем уже что-нибудь отличающееся от пресловутых HelloWorld’ов, но столь же бесполезное. Наш скрипт будет:
Сначала создадим папку для работы и скопируем туда hello-world.py как test.py, создадим в этой папке файлы test.sh и test.txt:
Теперь любым удобным способом в файл test.sh запишем скрипт:
Вот мы и написали запланированный bash-скрипт. Можно разбавить его выводом в консоль информации по выполнению каждого действия (при помощи echo), это оставлю для читателей.
Шаг 7
Сделаем хоть что-то полезное
Сформулируем техзадание
Приложение должно после запуска помещать в буфер обмена случайную строку из файла и оповещать об этом всплывающим сообщением.
За основу возьмем bash-скрипт, случайную строку из файла будем извлекать при помощи подпрограммы на Python’е. Составим план работы скрипта:
Определимся с названиями директории и файлов приложения:
Создаем директорию приложения и переместившись в нее создаем там файлы.
Первые два пункта плана скрипта можно объединить конвейером, в итоге, используя Termux:API получаем:
В файл source вы можете поместить любой текст логически разделенный на строки, я решил поместить афоризмы:
Нам осталось создать подпрограмму извлекающую случайную строку из файла source.
Распишем алгоритм работы подпрограммы:
Реализуем алгоритм на Python (я пишу под Python 3.7):
Теперь введя в терминале rnst мы получим в буфер обмена случайный афоризм, который, например, можно использовать в переписке.
Вот мы и написали хоть что-то полезное. Относительно полезное.
Я намеренно в последнем шаге не стал приводить скриншоты и не разобрал подробно некоторые действия, расписав только содержимое файлов, чтобы у читателей была возможность поработать самостоятельно.
Изначально я планировал показать в этом цикле как пользоваться nmap, sqlmap, но и без меня уже много статей на эту тему. Если есть желание, чтобы я продолжил «Termux шаг за шагом», то ниже есть опрос, а в комментариях можете предложить о чем еще написать.
Программирование на телефоне используя эмулятор терминала Termux
Приветствую читателей! В этой статье я расскажу о том, как можно, имея android телефон, писать программы. Говорю сразу — root права не нужны.
Что нам понадобится?
Первое, что нам понадобится — андроид телефон со установленным на него приложением Termux (есть в Google Play). Для полноценной работы с терминалом, нам нужно достаточно памяти. У меня с десятками установленных пакетов приложение занимает 1.5 ГБ памяти.
Так же, для комфортного кодинга желательно, чтобы телефон был с поддержкой OTG, и у вас была клавиатура с подключением по USB, чтобы писать код на клавиатуре (куда удобнее). Если уж нет этого, то качаем клавиатуру Hacker’s Keyboard. В ней есть клавиша Ctrl, что нам важно.
Почему именно Termux?
Termux имеет в арсенале достаточно пакетов для работы с языками программирования: C/C++, Python, Golang, PHP, Lua.
Так же присутствуют базы данных, я знаю только о mariadb и postgresql.
Начало
Для кодинга нам понадобится текстовой редактор. Здесь есть разные варианты, я выбирал Vim и вкратце расскажу, как с ним работать.
Установка vim:
Для примера работы с vim напишем «Hello World» на С.
После этого запустится Vim. Чтобы начать писать код, нужно нажать на клавишу «i».
Пишем код:
После этого нажимаем на клавишу «Esc», ставим двоеточие и пишем wq («:wq»). Это сохранит наш файл и изменения в нём (w — write) и закроет его (q — quit).
Важно знать!
w — сохранить изменения в файле
wa — сохранить изменения во всех файлах
q — закрыть файл
qa — закрыть все файлы
wq — сохранить изменения и закрыть файл
Теперь нам нужно скомпилировать этот код. Для начала установим компилятор:
Далее пишем следуюющее:
main.c — файл с нашим кодом
program — наша програмка.
Теперь можем запустить нашу програмку и посмотреть, работает ли она:
С чего начать
Contents
Как это работает?
Фактически это приложение которое просто запускает бинарник утилиты командной строки при помощи системного вызова execve(2) и перенаправляет стандартные потоки ввода, вывода и ошибок на текстовый экран. Termux не является ни виртуальной машиной, ни иным видом эмулированной/симулированной системы. Программы выполняются прямо на устройстве, что обеспечивает максимально возможную производительность.
Так как набор стандартных утилит командной строки Android весьма ограничен, мы портировали более 1000 пакетов програмного обеспечения которые вы можете встретить в системах GNU/Linux. Все пакеты скомпилированы при помощи Android NDK и имеют лишь патчи совместимости для корректной работы на Android OS.
Так как операционная система не имеет директории определяемые стандартом FHS или же не предоставляет к ним доступ на запись, Termux не может использовать такие директории как /bin, /etc, /usr, /var. Вместо этого, все файлы находятся в приватной директории приложения, которая находится здесь:
Мы называем эту директорию «префикс» и обычно ссылаемся на нее как «$PREFIX» что также является переменной окружения командной оболочки. Префикс всегда постоянен и не может быть перенесен на карту SD, как минимум при обычных условиях. И на это есть причины:
Конечно, отличий среды Termux от GNU/Linux немного больше, чем перечислено здесь. Смотрите Differences from Linux для более подробной информации.
Является ли Termux таким же как дистрибутив Linux?
Termux предоставляет пакетную экосистему, как в дистрибутивах Linux. Однако Termux таковым не является и более того, он просто обычное приложение Android OS.
Это приводит к нескольким отличиям:
3. Динамический компоновщик и libc предоставляются Android OS.
Все эти три отличия могут вызвать проблемы, если вы попытаетесь запустить в Termux программу скомпилированную под GNU/Linux систему.
Что я могу сделать при помощи Termux?
Типичные варианты использования:
Естественно, это далеко не все варианты использования приложения. У нас более 1000 пакетов в репозиториях. Если этого недостаточно, вы можете сами скомпилировать необходимое ПО прямо на устройстве. У нас есть пакеты различных компиляторов и интерпретаторов языков программирования, например C, C++, Go, Rust, Python, Ruby, Node.js.
Ну и для особо одаренных: Termux не является программой для рутования, хакинга и тд. Конечно, это все возможно при помощи Termux, если у вас есть необходимые навыки, для приобретения которых вам придется прилично потрудиться.
Нужны ли права root?
Для обычного использования права суперпользователя вам не понадобятся. Termux нацелен в первую очередь на пользователей устройств без root.
Права суперпользователя необходимы лишь в том случае, если вы собрались выполнять действия, перечисленные ниже:
В подавляющем большинстве случаев, вам root не нужен!
Есть ли какие-нибудь туториалы?
This section or list is incomplete. Please help to improve it.
Мы не можем поддерживать в актуальном состоянии подробную информацию о таких общих вещах как команды, shell-скриптинг и тд, по этому данная информация не размещается на Termux Wiki. Здесь предоставлены ссылки на сторонние ресурсы.
Команды
Изучите основные команды используемые в консоли Linux:
Shell скриптинг
Shell скриптинг является ключевым навыком для работы с терминалом. Без этого вы не сможете делать что-либо серьезное в Termux, да и в GNU/Linux системах вообще.
Эти ресурсы могут быть полезны также и для продвинутых пользователей командной оболочки:
Могу ли я сотрудничать?
Вот вам предложения, если решите внести свой вклад в развитие проекта: