Edcomp.ru

Советы по настройке и оптимизации компьютера
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как пользоваться Termux

С чего начать

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

Contents

Как это работает?

Фактически это приложение которое просто запускает бинарник утилиты командной строки при помощи системного вызова execve(2) и перенаправляет стандартные потоки ввода, вывода и ошибок на текстовый экран. Termux не является ни виртуальной машиной, ни иным видом эмулированной/симулированной системы. Программы выполняются прямо на устройстве, что обеспечивает максимально возможную производительность.

Так как набор стандартных утилит командной строки Android весьма ограничен, мы портировали более 1000 пакетов програмного обеспечения которые вы можете встретить в системах GNU/Linux. Все пакеты скомпилированы при помощи Android NDK и имеют лишь патчи совместимости для корректной работы на Android OS.

Так как операционная система не имеет директории определяемые стандартом FHS или же не предоставляет к ним доступ на запись, Termux не может использовать такие директории как /bin, /etc, /usr, /var. Вместо этого, все файлы находятся в приватной директории приложения, которая находится здесь:

Мы называем эту директорию «префикс» и обычно ссылаемся на нее как «$PREFIX» что также является переменной окружения командной оболочки. Префикс всегда постоянен и не может быть перенесен на карту SD, как минимум при обычных условиях. И на это есть причины:

  • Многие бинарники используют статические пути для обращения к файлам в /etc, /bin, /var и тд.
  • Заголовки исполняемых файлов формата ELF используют DT_RUNPATH установленый как $PREFIX/lib. Используется для динамической компоновки зависимостей.
  • Файловая система должна поддерживать параметры доступа (chmod) и специальные файлы, такие как сокеты и символьные ссылки. То есть ФС должна быть EXT4 или F2FS например, а не какой-нибудь там FAT32.

Также есть отдельная директория для пользовательских данных, то есть домашняя директория или $HOME. Она находится здесь:

Конечно, отличий среды Termux от GNU/Linux немного больше, чем перечислено здесь. Смотрите Differences from Linux для более подробной информации.

Является ли Termux таким же как дистрибутив Linux?

Termux предоставляет пакетную экосистему, как в дистрибутивах Linux. Однако Termux таковым не является и более того, он просто обычное приложение Android OS.

Это приводит к нескольким отличиям:

1. Как сказано выше, все устанавливается в $PREFIX, а не в стандартные директории вроде /bin или /etc.

2. Среда является однопользовательской. Будьте осторожны если работаете с правами root. Можно очень легко нарушить параметры доступа к файлам и контексты SELinux — это приведет к неприятным последствиям, разгребать которые придется вам самим.

3. Динамический компоновщик и libc предоставляются Android OS.

Все эти три отличия могут вызвать проблемы, если вы попытаетесь запустить в Termux программу скомпилированную под GNU/Linux систему.

Что я могу сделать при помощи Termux?

Типичные варианты использования:

  • Обработка данных при помощи Python.
  • Среда разработки.
  • Загрузка и управление файлами.
  • Изучение командной строки.
  • SSH клиент.
  • Синхронизация и резервное копирование данных.

Естественно, это далеко не все варианты использования приложения. У нас более 1000 пакетов в репозиториях. Если этого недостаточно, вы можете сами скомпилировать необходимое ПО прямо на устройстве. У нас есть пакеты различных компиляторов и интерпретаторов языков программирования, например C, C++, Go, Rust, Python, Ruby, Node.js.

Ну и для особо одаренных: Termux не является программой для рутования, хакинга и тд. Конечно, это все возможно при помощи Termux, если у вас есть необходимые навыки, для приобретения которых вам придется прилично потрудиться.

Нужны ли права root?

Для обычного использования права суперпользователя вам не понадобятся. Termux нацелен в первую очередь на пользователей устройств без root.

Права суперпользователя необходимы лишь в том случае, если вы собрались выполнять действия, перечисленные ниже:

  • Модификация системных файлов.
  • Изменение параметров ОС или ядра.
  • Установка приложений при помощи «pm» или «cmd».
  • Доступ на чтение/запись ко всем файловым системам устройства.
  • Полный доступ к аппаратному обеспечению, портам и тд.
  • Создание полноценного окружения chroot, а также контейнеризация.
  • Полноценный контроль над устройством.

В подавляющем большинстве случаев, вам root не нужен!

Есть ли какие-нибудь туториалы?

This section or list is incomplete. Please help to improve it.

Мы не можем поддерживать в актуальном состоянии подробную информацию о таких общих вещах как команды, shell-скриптинг и тд, по этому данная информация не размещается на Termux Wiki. Здесь предоставлены ссылки на сторонние ресурсы.

Команды

Изучите основные команды используемые в консоли Linux:

Shell скриптинг

Shell скриптинг является ключевым навыком для работы с терминалом. Без этого вы не сможете делать что-либо серьезное в Termux, да и в GNU/Linux системах вообще.

Эти ресурсы могут быть полезны также и для продвинутых пользователей командной оболочки:

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

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

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

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

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

Читайте так же:
Как на Windows phone установить Windows 10 Mobile

Шаг 1

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

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

image

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

image

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

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

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

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

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

Шаг 2

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

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

  1. Подключить к Android устройству полноценную клавиатуру любым удобным способом.
  2. Воспользоваться ssh. Проще говоря, у вас на компьютере будет открыта консоль Termux’а запущенного на вашем Android устройстве.

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

На компьютере необходимо установить программу 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 значение «[33[1;33;1;32m]:[33[1;31m]w$ [33[0m][33[0m]» (если интересно что это и с чем его едят, прошу сюда). Чтобы это сделать нам нужно в файл ‘.bashrc’ (лежит в корне и выполняется при каждом запуске оболочки) добавить строку:

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

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

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

В файл .bashrc так же можно вписать alias’ы – сокращения. Например мы хотим одной командой проводить update и upgrade сразу. Для этого в .bashrc добавляем строку:

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

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

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

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

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

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

imagemagick — Утилита для работы с изображениями(конвертирование, сжатие, обрезка). Поддерживает много форматов включая pdf.Пример: Сконвертировать все картинки из текущей папки в один pdf и уменьшить их размер.
convert *.jpg -scale 50% img.pdf

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

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

6) При необходимости запуска скриптов с помощью дополнения Termux Widget, создать специальные каталоги в домашней директории $HOME и скопировать туда скрипты (подробнее ниже).

7) При необходимости, установить и настроить git с использованием парольной аутентификации к удаленному репозиторию или с помощью ssh-ключей (описание в статье).

Подключение к Termux по ssh

Для подключения к оболочке Termux с компьютера (хоста) по протоколу ssh, нужно установить пакет OpenSSH:

Читайте так же:
Ошибка Download failed because the resources could not be found в Pubg Mobile — что делать

Запуск ssh-сервера осуществляется командой sshd , после чего на порту 8022 открывается порт для подключения.

Проверить работу ssh-сервера на нужном порту можно командой netstat :

Должны быть выведены 2 строки с надписью LISTEN .

Termux не поддерживает парольную аутентификацию по SSH и поэтому нужно будет использовать SSH-ключи. Более подробно про ssh-ключи и их использование написано в статье Работа с ssh-ключами.

Если имеющихся ssh-ключей хостовой машины нет, то их нужно создать. На Linux это делается с помощью команды ssh-keygen , на Windows с помощью программ BitVise-SSH или PuTTYgen.

Публичный ключ (по-умолчанию называется id_rsa.pub ) нужно будет загрузить на телефон и скопировать в файл

Например, подключаем телефон к хостовой машине как дисковый накопитель, копируем файл публичного ключа в корень памяти телефона. Затем в Termux выполняем команду:

Команда добавляет содержимое файла id_rsa.pub в файл authorized_keys .

Файл публичного ключа уже не нужен, удаляем:

Далее подключаем телефон к сети Wi-fi, узнаем его IP и подключаемся к нему с помощью SSH-клиента. С этого момента работа в Termux с клавиатуры компьютера становится намного удобнее.

Настройка горячих клавиш и клавиатуры

Панель горячих клавиш и клавиатуры можно настроить (FAQ: Touch Keyboard).

Редактирование панели с кнопками (создать файл при отсутствии):

/ .termux / termux .properties

Для себя настроил вот такие кнопки:

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

Клавиши, не попавшие в панель, можно вызвать с помощью комбинаций клавиш Up,Down и букв на клавиатуре (не уверен, что все).

Доступ к внешней памяти устройства

Чтобы запросить для Termux доступ к внешнему хранилищу телефона, нужно выполнить команду:

При этом запросится разрешение WRITE_EXTERNAL_STORAGE .

После этого в домашнем каталоге $HOME (

или / data / data / com .termux / files / home ) появится каталог storage , где будут содержаться симлинки на реальные каталоги внешнего хранилища:

  • shared – root внешнего хранилища
  • downloads
  • dcim
  • pictures
  • music
  • movies
  • external-1 – приватные данные Termux на внешнем хранилище. При удалении Termux эти данные также удалятся.

Если этого не сделать, то оболочке будет доступен только приватный для приложения участок памяти / data / data / com .termux / files , который недоступен любому файловому менеджеру, если у вас нет root прав на устройстве.

Дополнения

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.

По моим наблюдениям (на устройстве Redmi 4x), если не использовать команду termux-wake-lock , то при выполнении заданий в фоне с помощью termux-job-scheduler , когда телефон “спит”:

  • период времени запуска заданий может варьироваться. Например, вместо 30 минут может быть 30-35 минут. Но, тем не менее, задания все равно запускаются.
  • команды могут выполняться на порядок дольше. Например, команды git – несколько минут вместо нескольки секунд. В связи с чем, при запуске команды git commit , даже когда нечего коммитить, может возникнуть сообщение:
    It took 3.24 seconds to enumerate untracked files. ‘status -uno’
    may speed it up, but you have to be careful not to forget to add
    new files yourself (see ‘git help status’).

Некоторые параметры:
-s, —script path – путь к скрипту. Скрипт должен находиться в каталоге $HOME, т.к. только там файлам можно предоставить право выполнения (x).
—job-id id – id задания. Будет переопределено любое задание, имеющее такой же id.
—period-ms msec – периодичность выполнения скрипта. По-умолчанию 0 – выполнить 1 раз. Начиная с Android 7 минимальный период = 900,000ms (15 минут).

Ошибка: Cannot execute file: .
Причина: У файла не задано право на выполнение (x).

Примечание:
Файлам во внешней памяти нельзя предоставить право на выполнение. Только в каталоге $HOME .

termux — dialog widget [ options ] – отображение диалога Dialog с элементами управления. Результат выбора возвращается в формате json

Параметры:
widget – вид вьюшки: confirm/ checkbox/ counter /date /radio /sheet/ spinner /speech /text /time
-l, list – отобразить список вьюшек и их параметров
-t, title – заголовок диалога (не обязательно)

termux — notification [ options ] – отображение уведомления с вызовом скрипта при его нажатии

Некоторые параметры:
-i/—id id – id уведомления (будет переопределено любое предыдущее уведомление с таким же id)
-t/—title title – заголовок уведомления
—action action – действие для выполнения при нажатии на уведомление. Это может быть команда, несколько команд, разделенных через “;” или файл скрипта с правами на выполнение
—help-actions – документация по действиям, указываемым в параметре —action
—on-delete action – действие для выполнения при удалении уведомления из шторки
—priority prio – приоритет (high/low/max/min/default)
—vibrate pattern – паттерн вибрации (список значений через запятую: 500,1000,200)
—sound – включить звук уведомления

Примечание:
Не удалось добиться отображения уведомления при запуске скрипта в фоне с помощью termux-job-scheduler . Хотя, сообщение termux-toast выводится без проблем. При этом , доп.разрешения на отображение окон в фоне установлены.

termux — toast [ options ] [ text ] – отображение уведомления Toast

Дополнение Termux:Widget

С помощью дополнения Termux:Widget на рабочий стол устройства можно добавить виджет со списком bash-скриптов для их быстрого запуска.

При этом, скрипты могут быть запущены двумя способами:

а) в терминале Termux. Т.е. при запуске скрипта будет открыто окно терминала Termux, в котором и будет происходить выполнение скрипта.

В этом случае скрипты нужно положить в специальный каталог .shortcuts в домашнем каталоге.

б) в фоне. Т.е. скрипт будет выполнятся “сам по себе”, без окна терминала Termux.

Читайте так же:
Лучшие программы для шифрования файлов и папок на компьютере

Для запуска фоновых скриптов их нужно поместить в подкаталог .shortcuts / tasks домашнего каталога.

Если скрипт запускается в фоне, и открытает какие-либо визуальные окна (например, запускает другое приложение), то в системе Android (начиная, примерно, с версии 7) приложению Termux нужно добавить соответствующее разрешение. Например, в Android 9: Свойства приложения (О приложении) -> Другие разрешения -> Отображать всплывающие окна, когда запущено в фоновом режиме . Иначе ничего не отобразится.

Я храню сами файлы скриптов во внешней памяти устройства, а не в приватном участке памяти для приложения (например, каталог $HOME , или / data / data / com .termux / files / home ). Т.к., если приложение Termux будет удалено, то его приватный каталог тоже очистится.

Для этого, с помощью команды ln , на сами файлы скриптов можно создать символьные ссылки (симлинки), которые положить в каталог .shortcuts :

$ ln — s $HOME / storage / shared / real_path_to_scripts / script .sh $HOME / .shotcuts / script .sh

Также, не забудьте сделать исходный файл скрипта исполняемым:

Интерпретаторы скриптов

Чтобы работали скрипты с интерпретаторами (т.н. shebangs), к примеру, типа #!/bin/sh или #!/usr/bin/env python , нужен termux-exec, который устанавливается как зависимость apt (при apt версии >= 1.4.8-1). Если termux — exec вдруг не установлен, нужно запустить pkg upgrade и перезапустить Termux.

Если скрипты с такими интерпретаторами, как #!/bin/sh , не запускаются, даже если установлен termux — exec , попробуйте сбросить переменную среды LD_PRELOAD :

и перезапустите сеанс Termux.

Также, исправить обращение к интерпретаторам можно “вручную” с помощью команды termux-fix-shebang.

Она заменяет путь к интерпретатору / bin на / data / data / com .termux / files / usr / bin (сокращенно $PREFIX / bin ) в самих файлах скриптов. Но это устаревший способ.

А вообще, при проблемах в скриптах с путями к интерпретаторам возникает ошибка:

«Bad Interpreter: No such file or directory»

Выполнение скриптов из сторонних приложений

Как оказалось, 20.09.2020 раздел FAQ с вопросом “ How to run Termux commands from other application? ” был обновлен. Этот вопрос был решен точь в точь как мне и было нужно, но я об этом не знал.

Как было раньше: (развернуть) Как было раньше: (свернуть)

К сожалению, выполнить пользовательский bash-скрипт Termux “напрямую” из сторонних приложений (например, с помощью того же механизма передачи Intent) нельзя. Это связано с тем, что в Termux (пока?) не реализован контроль доступа для каждого приложения, а у пользователей Termux, например, в домашнем каталоге может храниться конфиденциальная информация (к примеру, ключи SSH).

How to run Termux commands from other application?

This is not supported currently.

That feature will not be implemented until Termux will have a solution for at least per-app access control.

Many users use it for accessing remote services and this requiring to store SSH keys, API tokens and other sensitive information in $HOME. Termux obviously do not have privilege separation and we need to somehow protect user’s data from third party eyes.

На данный момент, с помощью сервиса RunCommandService из своего приложения можно отправлять намерения ( Intent ) в среду Termux для выполнения необходимых команд.

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

В прошлой части мы с вами познакомились с базовыми командами Termux’а, настроили SSH соединение с ПК, научились создавать alias’ы и установили несколько полезных утилит. В этот раз нам предстоит шагнуть еще дальше, мы с вами:

  • узнаем про Termux:API
  • установим Python и nano, а также напишем «Hello, world!» на Python
  • узнаем про bash-скрипты, и напишем скрипт с использованием Termux:API
  • используя bash-скрипт, Termux:API и Python напишем простую программку

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

Я часто применяю alias’ы, поэтому используемые в этой части сокращения показаны здесь:

План готов, можно приступать! И конечно же не забывайте про «волшебный Tab» ( См. Часть 1 ).

Шаг 4

Погружаемся в кроличью нору Termux:API

API как много в этом слове для сердца кодера слилось

Если не затрагивать тему Termux:API, то все наши шаги можно было свести к простому пересказу какой-нибудь брошюры типа «Линукс для чайников», как было справедливо подмечено в комментариях к первой части.

Для начала установим Termux:API из Google Play Market’а (после не помешает перезапустить Termux):

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

Далее нам нужно установить пакет API в консоли Termux’а:

Для экспериментов я использую Android 5.1.1, для владельцев Android 7 нужно «защитить» Termux: API, зайдя в ‘Настройки’ > ‘Защищенные приложения’, в противном случае вызовы API, такие как termux-battery-status , будут зависать. (См. wiki проекта )

Теперь стоит поближе познакомится с приобретенными возможностями. Самое свежее и подробное описание Termux:API можно найти на wiki проекта . Я же постараюсь выбрать самое наглядное и интересное, что позволит набить руку для самостоятельной работы в дальнейшем.

Несколько примеров Termux:API

  • termux-battery-status
    Возвращает состояние батареи
    Termux шаг за шагом (Часть 2)
  • termux-brightness
    Устанавливает яркость экрана от 0 до 255
    Termux шаг за шагом (Часть 2)
  • termux-toast
    Показывает временное всплывающее уведомление
    Termux шаг за шагом (Часть 2)
  • termux-torch
    Включает фонарик
    Termux шаг за шагом (Часть 2)
  • termux-wifi-scaninfo
    Возвращает информацию о последнем сканировании сетей Wi-Fi
    Termux шаг за шагом (Часть 2)

Нетрудно заметить, что возвращаемые значения являются строками, словарями, списками словарей, в общем типами данных, с которыми прекрасно работает Python, поэтому следующим шагом мы его установим.

Шаг 5

Установим Python и nano

Для установки Python’а пишем в терминале:

Теперь у нас установлен 2 и 3 Python.

За время работы над статьей, я открыл для себя еще один текстовый редактор nano, который приглянулся мне больше чем vim, давайте его установим:

Пользоваться им проще чем vim’ом, и nano имеет более дружественный интерфейс. На Android устройстве все же удобнее vim.

HelloWorld на Python в Termux

По большому счету можно было обойтись и без этого пункта, но поставить Python в Termux и не написать HelloWorld, на мой взгляд, моветон.

Я не ставлю своей целью учить кого-либо Python’у, так что не знающие могут просто скопировать код (или начать изучать самостоятельно, благо литературы хватает), а знающие могут и сами что-нибудь наваять. А я «под шумок» еще покажу способ вводить текст в терминале без редактора.

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

Если в процессе ввода вы не заметили ошибку и уже нажали Enter, то перейти на строку выше не получится, для этого закончите ввод нажав Ctrl + D (можно вообще прервать Ctrl + Z) и повторите все с начала. Поскольку мы использовали ‘>’ то файл будет переписан полностью. По этой причине не рекомендую использовать такой метод ввода, если вы не уверены что напишете код сразу без ошибок.

Читайте так же:
Красивый шрифт для Инстаграм онлайн на русском и английском языке

Шаг 6

Bash-скрипты

Bash-скрипты это замечательный способ автоматизации работы с терминалом. Скрипт представляет из себя файл с расширением .sh (расширение не обязательно) содержащий набор команд терминала часть из которых мы уже изучили. Вот список большинства команд , все должно работать, но обратите внимание, что это список для «взрослого» Linux’а, а не для Termux’а, а вот просто шикарный материал по bash-скриптам .

При помощи скриптов можно автоматизировать практически все монотонные действия. Напишем простейший bash-скрипт выводящий значение из созданной им же переменной, я снова воспользуюсь cat’ом, вы же можете использовать нормальный текстовый редактор, а особо желающие себя потренировать могут использовать echo.

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

Bash-скрипт с Termux:API

Давайте напишем уже что-нибудь отличающееся от пресловутых HelloWorld’ов, но столь же бесполезное. Наш скрипт будет:

  1. выполнять запрос API termux-battery-status
  2. сохранять полученные данные в файл test.txt
  3. выводить данные из файла на экран
  4. выполнять написанную ранее программу hello-world.py
  5. полученные от программы данные записывать в файл test.txt
  6. выводить данные из файла на экран
  7. переносить данные из файла в буфер обмена
  8. выводить на экран содержимое буфера обмена
  9. выводить всплывающее сообщение с данными из буфера обмена

Сначала создадим папку для работы и скопируем туда hello-world.py как test.py, создадим в этой папке файлы test.sh и test.txt:

Теперь любым удобным способом в файл test.sh запишем скрипт:

Теперь находясь в папке bashscript пишем ./test.sh наблюдаем в терминале на Android устройстве:

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

Вот мы и написали запланированный bash-скрипт. Можно разбавить его выводом в консоль информации по выполнению каждого действия (при помощи echo), это оставлю для читателей.

Шаг 7

Сделаем хоть что-то полезное

Относительно полезное

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

За основу возьмем bash-скрипт, случайную строку из файла будем извлекать при помощи подпрограммы на Python’е. Составим план работы скрипта:

  1. Запустить подпрограмму
  2. Передать результат работы подпрограммы в буфер обмена
  3. Вывести всплывающее сообщение

Определимся с названиями директории и файлов приложения:

  • папка rndstr в домашней директории
    • source — файл из которого будем брать строки
    • rndstr.py — подпрограмма выводящая в консоль случайную строку из файла source
    • rndstr.sh — файл скрипта

    Создаем директорию приложения и переместившись в нее создаем там файлы.

    Первые два пункта плана скрипта можно объединить конвейером, в итоге, используя Termux:API получаем:

    В файл source вы можете поместить любой текст логически разделенный на строки, я решил поместить афоризмы:

    Листинг файла sourse

    Нам осталось создать подпрограмму извлекающую случайную строку из файла source.
    Распишем алгоритм работы подпрограммы:

    1. Открываем файл source
    2. Считаем количество строк в открытом файле
    3. Закрываем файл (нечего его лишнее время открытым держать)
    4. Генерируем случайное целое число в пределах количества строк файла source
    5. Открываем файл source
    6. Выводим строку под номером сгенерированного числа
    7. Закрываем файл

    Реализуем алгоритм на Python (я пишу под Python 3.7):

    После того как файлы созданы и записаны, нужно дать права на исполнение файлу rndstr.sh , и создать alias для быстрого запуска.

    Теперь введя в терминале rnst мы получим в буфер обмена случайный афоризм, который, например, можно использовать в переписке.

    Вот мы и написали хоть что-то полезное. Относительно полезное.

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

    На этом «Termux шаг за шагом», думаю, стоит закончить. Конечно же это только самые первые шаги, но теперь вы можете двигаться вперед сами.

    Изначально я планировал показать в этом цикле как пользоваться nmap, sqlmap, но и без меня уже много статей на эту тему. Если есть желание чтобы я продолжил цикл «Termux шаг за шагом», то ниже есть опрос а в комментариях можете предложить о чем еще написать.

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите , пожалуйста.

    Как использовать командную строку Linux на Android с Termux

    Как использовать командную строку Linux на Android с Termux

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

    Одним из решений является использование скрытой Linux-инфраструктуры Android. Приложение Termux предоставляет среду командной строки и позволяет устанавливать честные приложения Linux на ваше устройство Android. Вот как можно использовать приложение Termux.

    Зачем использовать Termux?

    В Play Store уже есть некоторые приложения, которые являются портами Android для приложений Linux. Они отличаются от Termux тем, что они копируют эти приложения для Linux, но сделаны «по-Android».

    Termux, напротив, является автономной средой Linux. Его программы (для всех намерений и целей) такие же, как их аналоги в Linux. Это дает некоторые преимущества перед портированными приложениями:

    • Согласованность: приложения Linux, которые были портированы на Android, требуют какого-либо пользовательского интерфейса. Пользовательский опыт на Android во многом зависит от того, сколько усилий приложит к нему разработчик. И наоборот, приложения Termux такие же, как версии Linux, от сочетаний клавиш до их установки.
    • Компактность: добавление кода Android может привести к тому, что некоторые тонкие приложения станут тяжелыми. Например, SSH-клиент Android может иметь размер от 2 до 12 МБ. Сравните это с Dropbear, доступным в Termux, который весит 396 КБ (это килобайт). И это обеспечивает SSH-сервер тоже.

    Получить командную строку Linux на Android с Termux

    • Своевременность. Когда приложение получает обновление, вы остаетесь во власти разработчика приложения для Android. В отличие от приложений Termux являются стандартными пакетами Linux, которые требуют меньше обслуживания. Они могут даже быть созданы автоматически вместе с настольными версиями. Вы, вероятно, получите доступ к новым функциям быстрее с Termux.
    • Цена. Существует вероятность того, что с любым приложением, приобретенным в магазине Play Store, будет взиматься плата. Все приложения в Termux являются бесплатными (и с открытым исходным кодом) с открытым исходным , как и сам Termux.

    Как использовать Termux

    Прежде чем погрузиться в игру, поймите, что Termux — это прежде всего среда командной строки. Здесь нет необычного пользовательского интерфейса с блестящими кнопками. Это касается не только базового пакета Termux, но и его приложений. Вы не получите самую последнюю версию LibreOffice с этим методом.

    Что наиболее важно, вы должны быть знакомы с командной строкой, чтобы установить и использовать эти программы в Termux. Чтобы развить знакомство, ознакомьтесь с нашим списком наиболее часто используемых команд терминала Linux.

    Когда вы будете готовы, возьмите свой телефон или планшет и установите Termux.

    Скачать: Termux (бесплатно)

    Основные команды Termux, которые вы должны знать

    Запуск Termux приведет вас прямо в среду командной строки. Отсюда вы можете установить новые инструменты. Termux использует тот же установщик пакетов, что и в Debian, Ubuntu и связанных дистрибутивах Linux.

    Advanced Packaging Tools (чаще называемый APT) используется для поиска, установки и удаления программного обеспечения в Termux. Начните с обновления пакетов и обновления с помощью этих команд:

    Обновление пакетов в командной строке Termux

    Далее выясните, какие приложения доступны:

    Чтобы узнать больше об одном из этих пакетов, используйте

    Это покажет имя, сопровождающий, размер файла, зависимости и другие полезные детали. Чтобы установить приложение, просто используйте:

    Наше руководство по использованию APT расскажет вам больше об этом инструменте, например, как обновить пакеты. Вы можете запустить установленный инструмент, введя его имя в командной строке терминала в командной строке Termux.

    В дополнение к apt, этот список встроенных команд работает в Termux на Android:

    • cp позволяет копировать файл
    • mv переместит файл
    • ls перечисляет содержимое каталога
    • rm удаляет (удаляет) данные
    • ln создает символическую ссылку (например, ln /data/data/com.termux/files/home/documents to /sdcard/Documents )

    С помощью этих встроенных инструментов вы уменьшите потребность в файловом менеджере Android. Они также избавляют вас от необходимости рутировать свой телефон, чтобы наслаждаться такой функциональностью.

    Приложения для Linux, которые вы можете установить с помощью командной строки Termux

    Используя apt с Termux, вы можете установить несколько полезных приложений для Linux на Android. Они делятся на несколько категорий — давайте рассмотрим некоторые основные моменты.

    Текстовые редакторы

    Termux предоставляет последние версии обоих популярных текстовых редакторов Linux: VIM и Emacs. Другие редакторы, такие как минималистский нано, также доступны.

    Конечно, в Android уже есть много текстовых редакторов. Так что же Emacs и Vim приносят на платформу? Что ж, если вам нравится работать в Markdown, оба хорошо его поддерживают. В «без отвлечения» мышления? Он не получает намного больше отвлекающих факторов, чем VIM.

    Нужно что-то делать заметки и предоставлять задачи? Org-mode в Emacs вас охватывает. Вы даже можете использовать Emacs в качестве файлового менеджера , приложения для создания сценариев , клиента Trello , музыкального проигрывателя или для игры в Minesweeper .

    Зачем переключаться? Текстовые редакторы Android имеют тенденцию фокусироваться на одной выдающейся функции. Например, один может сосредоточиться на черчении без отвлечения внимания, другой может предварительно просмотреть Markdown и другое форматирование, а третьи могут быть построены на ведении заметок (хотя они на самом деле просто текстовые редакторы по своей сути).

    Терминальные редакторы могут удовлетворить эти потребности в одной программе, а также доступны на настольных платформах.

    Утилиты командной строки Termux

    Пакеты Termux включают несколько полезных утилит командной строки Linux:

    • gnuplot: математическая графическая программа
    • ImageMagick: инструментарий для обработки и преобразования изображений
    • p7zip: утилита архивирования для схемы сжатия 7-Zip
    • UnRAR: другой инструмент архивирования для формата RAR
    • Wget: программа для извлечения файлов через Интернет через HTTP или FTP

    Зачем переключаться? Это специальные программы, которые могут многое предложить.

    Установить серверы в Termux

    Мы уже показали, как вы можете превратить ваше устройство Android в веб-сервер с конкретными приложениями. Termux также предоставляет подлинные веб-серверы Linux, такие как Apache, nginx и Lighttpd.

    Но зачем вам запускать веб-сервер на вашем Android-устройстве?

    В дополнение к программированию, помните, что многие из лучших на сегодняшний день приложений — это веб-приложения. Например, вы можете установить nginx, базу данных PostgreSQL и Python, а затем использовать платформу управления проектами Taiga . Это много полезности, и все это без необходимости подписки на сторонние сервисы или хостинг.

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

    Зачем переключаться? Такие приложения, как Tiny Web Server, позволяют раскрутить веб-сервер. Но что может быть интереснее, чем легкий сервер, который вы можете запустить из командной строки?

    Разработка приложений в командной строке Termux

    Хотя многие приложения для Android (в списке «редакторы кода») предоставляют возможность писать код, они могут не предоставлять сами языки. С Termux вы можете проверить свой код на своем телефоне или планшете.

    Установите инструменты разработки Python в командной строке Termux

    Он предлагает стандартные дистрибутивы языков программирования, такие как:

    • Оболочка BASH (по умолчанию доступна из коробки, и отличный способ начать взламывать)
    • Python (доступны как v2, так и v3)
    • PHP
    • Рубин

    Также доступны системы контроля версий git и Subversion, которые используются не только в разработке. Если вам нравится управлять своими собственными данными, контроль версий позволяет вам хранить ваши файлы в любом месте. Вы также управляете отправкой обновлений на другие устройства и можете использовать «теги» для маркировки версий.

    Зачем переключаться? Существует несколько языковых пакетов для Android, таких как QPython . Но они предоставляют свои собственные громоздкие интерфейсы. Они также могут потребовать дополнительных приложений, чтобы быть полностью полезными.

    Приложения для Android доступны как для git, так и для svn. Тем не менее, вам нужно иметь отдельное приложение для каждого типа управления источником. Termux предоставляет оба в одном пакете бесплатно. Используя систему контроля версий, вы также можете сократить количество клиентов для облачных служб синхронизации, таких как Dropbox.

    Добавьте Linux в Android с помощью команд Termux

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

    И кто знает, возможно, увлечение этими приложениями убедит вас попробовать Linux и на рабочем столе. Ознакомьтесь с нашим списком команд для для некоторой помощи, давая это попробовать.

    голоса
    Рейтинг статьи
Ссылка на основную публикацию