Что можно сделать через термекс

Программирование на телефоне используя эмулятор терминала 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 — наша програмка.

Теперь можем запустить нашу програмку и посмотреть, работает ли она:

Источник

Termux шаг за шагом (Часть 1)

Что можно сделать через термекс

При первом знакомстве Termux, а я далеко не линуксоид, вызвал в моей голове две мысли: «Круть несусветная!» и «Как им пользоваться?». Порывшись в инетах, я не нашел ни одной статьи в полной мере позволяющей начать пользоваться Termux’ом так чтобы это приносило больше удовольствия чем гемора. Будем это исправлять.

Для начала определимся, что это за зверь такой Termux, и что он может. На главной странице WikiTermux (рекомендую ознакомиться) говорится, что “Termux — это эмулятор терминала и среда Linux”, т.е. установив его мы получим вполне работоспособный Linux терминал на своем Android устройстве. Несомненным плюсом является работа в виртуальном окружении (многое можно делать без root’а), благодаря чему навредить файловой системе Android практически нереально. А при наличии root’а ваши возможности ограничены только фантазией (ну и знанием матчасти).

За каким, собственно говоря, я полез к Termux’у? Во-первых хакинг, точнее желание немного в нем разобраться. Во-вторых отсутствие возможности пользоваться Kali Linux’ом.
Тут я постараюсь собрать воедино все полезное найденное мной по теме. Разбирающегося эта статья вряд ли чем удивит, но тем кто только познает прелести Termux’а, надеюсь, будет полезна.

Для лучшего понимания материала рекомендую повторять описанное мной не простой копипастой а самостоятельно вводить команды. Для удобства нам понадобится либо Android устройство с подключенной клавиатурой, либо как в моем случае Android устройство и ПК/Ноутбук (Windows) подключенные к одной сети. Android желательно с root’ом, но не обязательно. Иногда я что-то указываю в скобках, обычно, это позволит лучше понять материал (если написанное в скобках не совсем понятно, то смело пропускайте это, потом в процессе и по мере необходимости все разъяснится).

Шаг 1

Буду банален и чертовски логичен одновременно

Ставим Termux c Google Play Market:

Что можно сделать через термекс

Открываем установленное приложение и видим:

Что можно сделать через термекс

Далее стоит обновить предустановленные пакеты. Для этого по порядку вводим две команды, по ходу выполнения которых со всем соглашаемся, вводя Y:

Первой командой мы проверяем список установленных пакетов и ищем те, которые можно обновить, а второй обновляем их. По этой причине команды нужно писать именно в такой последовательности.

Теперь у нас наиболее свежая версия Termux.

Еще несколько нужных команд

Более подробно по командам UNIX ищем в интернете (саморазвитие никто не отменял).
Сочетание клавиш Ctrl + C и Ctrl + Z прерывает и прекращает выполнение команд соответственно.

Шаг 2

Облегчи себе жизнь

Чтобы не мучить себя без нужды вводом команд с экранной клавиатуры (в «полевых» условиях, конечно, от этого не уйти) есть два пути:

Я пошел по второму пути, хотя он и немного сложен в настройке, но все окупится удобством использования.

На компьютере необходимо установить программу ssh клиент, я пользуюсь Bitvise SSH Client, и все дальнейшие действия совершаются в этой программе.

Что можно сделать через термекс

Поскольку мы будем подключаться по методу Publickey с использованием файла-ключа, необходимо этот файл создать. Для этого в программе Bitvise SSH Client на вкладке Login щелкаем по Client key manager в открывшемся окне генерируем новый публичный ключ и экспортируем его в OpenSSH формате в файл с названием termux.pub (на самом деле можно любое название). Созданный файл помещаем во внутреннюю память вашего Android устройства в папку Downloads (к этой папке, и еще к нескольким, Termux имеет упрощенный доступ без root).

Во вкладке Login в поле Host вводим IP вашего Android устройства (узнать можно введя в Termux команду ifconfig) в поле Port должно быть 8022.

Теперь переходим к установке OpenSSH в Termux, для этого вводим следующие команды:

Возвращаемся к Bitvise SSH Client и нажимаем кнопку Log in. В процессе подключения появится окно, в котором выбираем Method – publickey, Client key это Passphrase (если вы ее указали при генерации файла-ключа).

В случае успешного подключения (если все сделали, как написано, то должно подключиться без проблем) откроется окно.

Что можно сделать через термекс

Теперь мы можем вводить команды с ПК а выполняться они будут на вашем Android устройстве. Не сложно догадаться какие это дает преимущества.

Шаг 3

Настроим Termux, установим дополнительные утилиты

Прежде всего давайте установим bash-completion (сокращалку, волшебный-Tab, кто как называет). Суть утилиты в том что, вводя команды вы можете нажав Tab воспользоваться автозаполнением. Для установки пишем:

Ну что за жизнь без текстового редактора с подсветкой кода (если вдруг захочется покодить, а оно захочется). Для установки пишем:

Пользоваться vim`ом не сложно, чтобы открыть файл 1.txt (если его нет, то он создастся) пишем:

Раз мы теперь можем создавать и редактировать файлы, давайте немного улучшим вид и информативность командной строки Termux’а. Для этого нам нужно присвоить переменной окружения PS1 значение «[\033[1;33;1;32m]:[\033[1;31m]\w$ [\033[0m][\033[0m]» (если интересно что это и с чем его едят, прошу сюда). Чтобы это сделать нам нужно в файл ‘.bashrc’ (лежит в корне и выполняется при каждом запуске оболочки) добавить строку:

Для простоты и наглядности воспользуемся vim`ом:

Вписываем строку, сохраняем и выходим.

Добавить строку в файл можно и другим способом, воспользовавшись командой ‘echo’:

Для внесения строки можно воспользоваться vim’ом или командой echo (если не получается самостоятельно – см. ниже)

Синтаксис alias’ов таков:

Итак, добавляем сокращение:

Вот еще несколько полезных утилит

Ставить через apt install

man — Встроенная справка для большинства комманд.
man %commandname

ffmpeg — Один из лучших конвертеров аудио/видео. Инструкцию по использованию гуглите.

mc — Двухпанельный файловый менеджер наподобие Far.

Впереди еще немало шагов, главное что движение начато!

Источник

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.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *