Что можно сделать с помощью termux на андроид
Перейти к содержимому

Что можно сделать с помощью termux на андроид

  • автор:

С чего начать

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

Contents

  • 1 Как это работает?
  • 2 Является ли Termux таким же как дистрибутив Linux?
  • 3 Что я могу сделать при помощи Termux?
  • 4 Нужны ли права root?
  • 5 Есть ли какие-нибудь туториалы?
    • 5.1 Команды
    • 5.2 Shell скриптинг

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

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

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

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

    /data/data/com.termux/files/usr

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

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

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

    /data/data/com.termux/files/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 системах вообще.

    • http://mywiki.wooledge.org/BashGuide
    • https://www.tldp.org/LDP/Bash-Beginners-Guide/html/

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

    • https://wiki-dev.bash-hackers.org/ — справочник с примерами для встроеных команд интерпретатора Bash.

    Могу ли я сотрудничать?

    Вот вам предложения, если решите внести свой вклад в развитие проекта:

    • Написание страниц Termux Wiki: исправляйте ошибки, дополняйте и поддерживайте в актуальном состоянии уже имеющуюся информацию.
    • Информируйте об ошибках. Пожалуйста, шлите отчеты об ошибках которые относятся только к приложению или пакетам. Нас не волнуют баги в скриптах, которые вы нашли где-то в Интернете.
    • Шлите предложения о пакетах, которые вы бы хотели видеть в официальном репозитории.
    • Шлите патчи с исправлениями и улучшениями.

    Весь исходный код и скрипты сборки вы можете найти здесь: https://github.com/termux.

    Смотреть также

    • FAQ
    • Development Environments
    • Editors
    • Differences from Linux
    • Package Management
    • Recover a broken environment
    • Software

    Termux Wiki (на русском)

    Termux — приложение реализующее Linux-подобную среду взаимодействие с которой происходит посредством консоли без необходимости иметь root-права на устройстве.

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

    С чего начать Информация для новичков. Пользовательский интерфейс Как пользоваться приложением. Настройки Как настроить приложение. Программы Работа с программной средой (пакетами). Оборудование Использование аппаратной мыши, клавиатуры и USB-OTG.

    Установка

    • Android 7.0 — 12.0 (известные проблемы)
    • CPU: AArch64, ARM, i686, x86_64.
    • Минимум 200 MB свободного места на внутренней памяти.

    Обратите внимание что Termux не поддерживает устройства на ARM без NEON SIMD, например устройства на процессорах Nvidia Tegra 2.

    Официально доступен для установки с данных источников:

    Дополнения

    Функциональность Termux может быть расширена при помощи установки следующих дополнений:

    Termux:API Использование возможностей предоставляемых ОС Android. Termux:Boot Автоматический запуск скриптов после загрузки ОС. Termux:Float Запуск приложения во всплывающем окне. Termux:Styling Изменение шрифтов или цветовой схемы терминала. Termux:Tasker Обеспечивает возможность выполнения команд Termux приложением Tasker. Termux:Widget Позволяет запускать пользовательские скрипты при помощи виджетов.

    FAQ

    • Что такое Termux?
    • Я новичок. Для чего я могу использовать Termux?
    • Могу ли я осуществить хакерство с помощью Termux?
    • Как получить справку о конкретном пакете?
    • Могу ли я внести свой вклад?

    Сообщество

    Не нашли решение в FAQ ?

    Просто хотите познакомиться с нами ?

    Хотите помочь разработчикам и пользователям Termux, внося свой вклад в проект ?

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

    Эмулятор терминала Termux: как установить и пользоваться

    Эмулятор терминала Termux

    С его помощью можно установить и использовать различные инструменты и приложения Linux, такие как Python, Ruby, Git и многие другие. Это делает его полезным инструментом для разработки и тестирования приложений на мобильных устройствах.

    Termux позволяет использовать SSH для удаленного доступа к другим компьютерам или серверам, что делает его еще более полезным для разработчиков и системных администраторов.

    Как установить?

    Для установки выполните следующие шаги:

    1. Откройте Google Play Store на своем мобильном устройстве.
    2. Введите «Termux» в строку поиска и нажмите «Поиск».
    3. Найдите приложение в списке результатов поиска и нажмите на него.
    4. Нажмите кнопку «Установить» и подождите, пока процесс установки завершится.
    5. После установки откройте приложение и начните использовать его для запуска команд Linux на своем мобильном устройстве.

    После установки вы можете установить и использовать различные инструменты и приложения Linux, используя команды в терминале.

    Что умеет?

    Эмулятор способен установить:

    • пакетный менеджер apt для установки пакетов и программ;
    • редакторы текста, такие как nano, vim, emacs;
    • интерпретаторы языков программирования, такие как Python, Ruby, Perl, PHP, Node.js;.
    • утилиты для работы с файлами и каталогами, такие как ls, cd, cp, mv, rm, mkdir;
    • сетевые утилиты, такие как ping, curl, wget, ssh;
    • инструменты для работы с базами данных, такие как SQLite, PostgreSQL и MySQL;
    • инструменты для работы с графикой, такие как ImageMagick;
    • многое другое.

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

    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:

    image

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

    image

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

    apt update apt upgrade

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

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

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

    ls # – отображает список файлов и директорий в текущей директории cd # – перемещает в указанную директорию, например: Важно понимать: если путь не указан прямо (~/storage/downloads/1.txt) он будет от текущей директории cd dir1 # – переместит в dir1 если в текущей директории она есть cd ~/dir1 # – переместит в dir1 по указанному пути от корневой папки cd # или cd ~ # - переместить в корневую папку clear # – очищаем консоль ifconfig # – можно посмотреть IP, а можно и сеть настроить cat # – позволяет работать с файлами/устройствами (в рамках одного потока) например: cat 1.txt # – просмотрим содержимое файла 1.txt cat 1.txt>>2.txt # – копируем файл 1.txt в файл 2.txt (файл 1.txt останется) rm # - используемая для удаления файлов из файловой системы. Ключи, использующиеся с rm: -r # – обрабатывать все вложенные директории. Данный ключ необходим, если удаляемый файл является директорией. Если удаляемый файл не является директорией, то ключ -r не влияет на команду rm. -i # – выводить запрос на подтверждение каждой операции удаления. -f # – не возвращать код ошибочного завершения, если ошибки были вызваны несуществующими файлами; не запрашивать подтверждения операций. Например: rm -rf mydir # – удалить без подтверждения и кода ошибочного завершения файл (или каталог) mydir. mkdir # – создает директорию по указанному пути echo # – может служить для записи строки в файл, если используется ‘>’ файл будет перезаписан, если ‘>>’ строка будет дописана в конец файла: echo "string" > filename

    Более подробно по командам 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, для этого вводим следующие команды:

    apt install openssh # в процессе, если потребуется, вводим ‘y’ pkill sshd # этой командой останавливаем OpenSSH) termux-setup-storage # подключить внутреннюю память cat ~/storage/downloads/termux.pub>>~/.ssh/authorized_keys # копируем файл-ключ sshd # запускаем ssh хост

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

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

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

    Шаг 3

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

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

    apt install bash-completion # Работает автоматически по нажатию Tab

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

    apt install vim # Тут уже можно пользоваться автозаполнением - пишем ‘apt i’ теперь нажимаем Tab и наша команда дописывается до ‘apt install’.

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

    vim 1.txt # Чтобы начать вводить текст нажмите ‘i’ # Чтобы закончить вводить текст нажмите ESC # Перед вводом команды должно быть двоеточие ‘:’ # ‘:q!’ – выйти без сохранения # ‘:w’ – сохранить # ‘:wq’ – сохранить и выйти

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

    PS1 = "\[\033[1;33;1;32m\]:\[\033[1;31m\]\w$ \[\033[0m\]\[\033[0m\]"

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

    cd vim .bashrc

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

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

    echo PS1='"\[\033[1;33;1;32m\]:\[\033[1;31m\]\w$ \[\033[0m\]\[\033[0m\]"'>>.bashrc # Обратите внимание, что для отображения двойных кавычек # всю строку с ними нужно заключить в одинарные кавычки. # В этой команде стоит ‘>>’ потому файл будет дополнен, # чтобы переписать ‘>’.

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

    alias updg = "apt update && apt upgrade"

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

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

    alias

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

    echo alias updg='"apt update && apt upgrade"' >> .bashrc

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

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

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

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

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

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

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

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

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