Введение: Termux - приложение реализующее Linux-подобную среду взаимодействие с которой происходит посредством консоли без необходимости иметь root-права на устройстве. Его можно считать больше похожим на дистрибутив Linux, чем просто эмулятор, благодаря большому количеству доступных пакетов. Содержание этой статьи: Что можно сделать с Termux? Установка Termux Первый взгляд Справка о командах Базовые команды Справка о пакетах Эмуляция клавиатуры Первичная настройка Что можно сделать с Termux? Теоретически Термукс может быть использован для всего, что может быть сделано в типичном дистрибутиве Linux. К примеру его можно использовать для изучения основ командной строки Linux, как среду разработки, как веб-сервер, как SSH клиент. Однако это ничтожно малая часть перечисленых вещей. В его репозиториях хранится более 1200 пакетов, у каждого из которых есть свой функционал. Установка Termux Первым делом разберёмся откуда его скачивать, я рекомендую устанавливать с F-Droid или Kali NetHunter Store . Также возможно установить с PlayMarket. В F-Droid и PlayMarket обновляется он гораздо чаще. С первых двух маркетов вы также сможете бесплатно установить дополнения (Тут важный момент, если Termux вы к примеру скачивали из PlayMarket'а, и вам захотелось установить бесплатно дополнения с первых двух, то этого не выйдет. Необходимо скачивать весь набор приложений Termux с одного маркета. Ошибка возникающая при установке с двух и более маркетов возникает потому, что каждый APK должен быть подписан одним и тем же ключом, тогда как разработчик не может использовать один и тот же ключ подписи для различных источников установки) Первый взгляд При запуске, Termux показывает интерфейс терминала 1 - Сообщение дня (motd) 2 - Панель дополнительных клавиш 3 - Приветствие shell'a Размер текста можно регулировать путем увеличения масштаба удержанием двойного нажатия и перетаскивания содержимого к себе или от себя. Помимо этого доступно дополнительные элементы интерфейса: контекстное меню, панель навигации и уведомление. Контекстное меню может быть показано долгим нажатием в любом месте терминала Это обеспечивает пункты меню для: Выделения и вставки текста (copy/past) Если нажать MORE, то и Выбора URL (Select URL) Отправки текста из терминала в другие приложения (например, электронная почта или SMS)(Share transcript) Сброса терминала (Reset) Выхода из текущего сеанса терминала (Kill process) Стилизации терминала путем выбора шрифта и цветовой схемы (Style) Режима презентации (Keep screen on) Help (Переход на оф. wiki по Termux) Панель навигации можно открыть свайпнув слево направо, при этом откроется вот такой бар Он состоит из трёх элементов: Список сессий. Щелчок по сеансу показывает его в терминале, а длительное нажатие позволяет указать название сеанса. Кнопка для переключения видимости сенсорной клавиатуры. Кнопка для создания новых сеансов терминала (длительное нажатие для создания именованного сеанса или отказоустойчивого сеанса). Уведомление, доступное во время сеанса терминала, доступно при раскрытии меню уведомлений. Нажатие на уведомление приводит к самой последней терминальной сессии. Уведомление также может быть расширено чтобы раскрыть два действия: EXIT - Выход из всех запущенных терминальных сессий. ACQUIRE WAKELOCK - Функция WakeLock, чтобы не давать Termux переходить в спящий режим. С активированным WakeLock (понять можно по надписи "wake lock held") фоновые процессы Termux будут доступны, даже если не запущен сеанс терминала, что позволяет сервисам и другим фоновым процессам работать более надежно. Справка о командах У команд есть определённая структура, она состоит из двух элементов: опции и аргументы. Опции изменяют поведение команды. Как правило это буквы перед которыми идёт " - " (минус). Можно использовать несколько опций в одной команде. Чтобы посмотреть справку к команде, используется command -h или command --help В данном случае "-h" и "--help" являются опциями. В справке можно узнать что делает команда, как её можно использовать, а также приведены некоторые примеры выполнения команды. Аргументы это дополнительная информация которая указывает команде с чем работать. Базовые команды Прежде чем мы узнаем базовые команды, запомните, Linux чувствителен к регистру. К примеру папка Directory и папка directory являются совершенно разными папками. Чтобы взаимодействовать с файлами и папками потребуется вводить их полное чёткое название учитывая регистр. Команды: pwd - отображает папку в которой вы в данный момент находитесь ls - отображает содержимое текущей папки cd - переходит в папку touch - создаёт файл less - посматривает содержимое файла rm - удаляет файл/папку mkdir - создаёт папку rmdir - удаляет пустую папку cp - копирует файл или папку mv - перемещает или переименовывает файл или папку clear - очищает терминал head - выводит первые строки файла tail - выводит последние строки файла exit - выходит из термнальной сессии Примеры pwd (print working directory) - отобразить текущую директорию (папку) Команда pwd отображает директорию в коей вы сейчас находитесь. В каждой Linux системе когда вы открываете терминал, то попадаете в домашнюю папку своего пользователя. Termux не исключение, вы также автоматически попадаете в папку home. Это папка вашего пользователя. Вывод команды, которая отображает текущую директорию в которой вы оказываетесь когда заходите в термукс или создаете новую сессию. Обратите внимание на своеобразную ветвь. Папка home находится в папке files, а папка files в папке com.termux, и так далее. Сама папка откуда начинаются все вышеперечисленные называется корень " / ". Следующей командой мы узнаем что находится в текущей папке, то есть в папке home. Синим подсвечиваются папки, а не имеющие цвета подсвечиваются файлы. После перемещения в другую папку и повторном использовании команды pwd, она будет выводить папку в которую вы перешли. Как видим на фотографии выше после того как я напечатал команду cd, а затем дописал имя папки и отправил эту команду терминалу - вывода не последовало. В случае с первыми двумя командами, после их выполнения нам выводилась информация на экран. Однако с командой cd это не так. На самом деле так и должно быть. По умолчанию когда вы успешно переходите в какую-либо папку, никаких результатов не сообщается. Чтобы убедиться что я действительно сейчас нахожусь в другой папке, ввожу команду pwd. И как видим, я успешно перешёл в другую папку. ls - выдаёт информацию о файлах и папках (по умолчанию в текущем каталоге) При выполнении команды без опций, команда выводит информацию о файлах и папках в текущей папке где вы находитесь 1 - Как уже упоминалось, синим подсвечиваются папки, а те что не имеют расскраски - файлы, если файл исполняемый, тогда он подсвечивается зелёным. 2 - Используя опции мы можем изменить выводимую информацию, в этом случае она более подробная. 3 - Как видим, при опции -a, нам отобразилось две папки которые мы не видели ранее. Всё дело в том, что файлы и папки название которых начинается на точку - скрыты. Эти папки присутствуют в каждой директории. Они создаются автоматически и по сути служат переходом в текущую папку, или предыдущую. То есть, если мы проверим содержимое папки " . ", то это будет тоже самое если мы проверим содержимое текущей директории. А если мы проверим содержимое папки " .. ", то это будет равносильно тому, что мы проверим предыдущую родительскую папку. Проверим: 1 - Наблюдаем что вывод в обоих командах практически идентичен 2 - Следующей командой мы посмотрели что находится в предыдущей директории, если помните, точно такой же вывод был когда я проверял содержимое своей домашней папки будучи в ней. А сейчас я перешёл в папку находящуюся в домашней папке, и затем с неё посмотрел содержимое домашней. Просто запомните: . - текущая папка .. - родительская папка Некоторые опции команды ls -a, --all не скрывать файлы начинающиеся с . -l использовать широкий формат -r, --reverse обратный порядок сортировки -t сортировать по времени изменения, сначала самые новые cd (change directory) - смена директории Вы наверняка уже поняли по прошлым примерам зачем нужна эта команда. Сейчас я покажу её некоторые опции и более обширные примеры. 1 - В первых двух примерах я взаимодействую с текущей и родительской папкой. Когда я ввожу cd . то остаюсь в той же директории, что и был до выполнения команды. Если же cd .. то перехожу в директорию где текущая была создана. 2 - Если у вас имеются вложенные в какую-то папку другие папки, то чтобы перейти к какой либо из них не нужно переходить по одной папке несколькими командами. Это можно сделать одной, дополняя к названию директории слэш и название папки к которой вы хотите переместиться. Пример: cd directory1/directory.2/directory_3/.directory4 Этой командой мы возвращаемся в папку в которой были до этого в независимости от того где она находилась. Я выполнил эту команду два раза чтобы вернуться обратно в папку packages. Если бы не эта команда, то чтобы вернуться обратно, мне нужно было бы вводить cd ../../ и ещё обратно cd downloads/packages Как видите, это печатать гораздо дольше нежели cd - Чтобы быстро перейти в домашний каталог используем следующие команды cd cd ~ touch - создаёт файл Создание пустого файла file: touch file Создание нескольких файлов: touch file1 file2 file3 file4 file5 file6 file7 file8 file9 less - просмотр содержимого файла Просматриваем файл readme.txt: less readme.txt При выполнении этой команды у нас на весь экран выводится область с содержимым файла. Можно перещаться вниз или вверх как вы это делаете когда читаете книги с телефона rm (remove) - удаляет файлы и директории Удаление файла file: rm file Удаление нескольких файлов: rm file2 file3 file4 Удаление пустой директории temp_dir: rm -d temp_dir Как видим, мы использовали опцию -d. Команда rm имеет и другие опции, вот некоторые из них: -f, --force игнорировать несуществующие файлы и аргументы, ни о чем не спрашивать -i запрашивать подтверждение перед каждым удалением -r, -R, --recursive рекурсивно удалять каталоги и их содержимое -d, --dir удалять пустые каталоги -v, --verbose пояснять производимые действия Опция -f или --force будет полезна в случаях когда вы ошиблись в названии файла, или когда перед удалением файла/папки запрашивается подтверждение на удаление. Опция -r или -R или --recursive используется для удаления папок в коих присутствуют файлы и другие директории. Часто опции -r и -f используются вместе, это позволит рекурсивно удалить каталог без каких либо запросов, в следующем примеры мы принудительно удалим папку dir4: rm -rf dir4/ mkdir (make dir(s) - Создает КАТАЛОГ(и), если он ещё не существует Создаём папку .hidden_dir mkdir .hidden_dir Создаём несколько папок mkdir termux one love Создаём несколько папок чтобы одна находилась в другой mkdir -p newdir/all_documents Некоторые опции: -p, --parents не выдавать ошибку, если существует, создавать родительские каталоги, если необходимо -v, --verbose печатать сообщение о каждом созданном каталоге rmdir (remove dir(s) - Удаляет КАТАЛОГ(и), если они пусты Удаляем пустую директорию dir6 rmdir dir6 Некоторые опции: --ignore-fail-on-non-empty игнорировать все ошибки, которые возникают из-за того, что каталог не пуст -p, --parents удалить КАТАЛОГ и его потомков. Например, «rmdir -p a/b/c» делает то же, что и «rmdir a/b/c a/b a» -v, --verbose выводить сообщение для каждого обработанного каталога cp (copy) - копирует файлы и папки Копируем файл file1 в папку .hidden_dir cp file1 .hidden_dir/ Имейте в виду: по умолчанию команда cp перезаписывает, если целевой файл уже существует. Копируем несколько файлов в папку temp-dir cp file5 file6 file7 temp-dir/ Копируем каталог temp-dir, включая все его файлы и подкаталоги в родительскую директорию cp -r temp-dir .. Копируем несколько каталогов с их содержимым в каталог all_dir cp -r dir1 dir2 dir3 all_dir/ mv (move) - перемещает/переименовывает файлы и папки Перемещаем файл File в папку diR: mv File diR/ Перемещаем несколько файлов в папку Dir_OnE mv file1 File4 fiLE Dir_OnE/ Перемещаем несколько папков в папку dirS mv dir1 dir2 di3 dir4 dirS/ Переименовываем файлы и папки mv file new_file_name В это примере мы переименовали файл file на new_file_name. Также это работает и с папками. Обратите внимание что по умолчанию как и команда cp, mv перезаписывает файлы и папки если таковые уже существуют. Некоторые опции команды mv -f, --force переписывать существующие файлы не спрашивая -i, --interactive спрашивать перед тем как переписывать -v, --verbose пояснять производимые действия clear - очищает терминал clear head - выводит первые строки файла Иногда нету желания открывать файл через редактор или less, тут на помощь приходит команда head, с помощью которой мы можем просматривать только определённую часть файла. По умолчанию команда выводит первые 10 строк указаного файла head termux-set Однако это значение можно изменить используя опцию -n head -n 14 termux-set tail - выводит последние строки файла Команда tail имеет схожий функционал с head, но выводит последние строки, по умолчанию тоже 10 tail termux-set Однако как и с командой head при опции -n можно указать своё число желаемых выводимых строк tail -n 54 termux-set exit - выходит из текущей сессии Используется когда нужно выйти из сессии, иной оболочки, виртуальной среды и т.п exit Справка о пакетах В Linux пакеты = программное обеспечение. Пакет обычно содержит полный комплект файлов, необходимых для реализации определённого набора команд или возможностей. Для управления пакетами в Termux есть четыре основных пакетных менеджера: apt, apt-get, pkg и dpkg. APT был реализован, чтобы упростить работу с менеджером пакетов и объединить несколько команд в одну. Функционал apt-get был переработан, таким образом, чтобы правильно работать в apt. PKG всего лишь обёртка над APT, я бы не стал его использовать из-за его медлительности. Далее стоит обновить предустановленные пакеты. Для этого по порядку вводим две команды, по ходу выполнения которых со всем соглашаемся, вводя Y: apt update apt upgrade Первой командой мы проверяем список установленных пакетов и ищем те, которые можно обновить, а второй обновляем их. По этой причине команды нужно писать именно в такой последовательности. Основные команды: apt install <пакет> - установка пакета/пакетов apt remove <пакет> - удаление пакета/пакетов apt show <пакет> - отображение информации о пакете/пакетах apt reinstall <пакет> - переустановка пакета/пакетов Пока что нам потребуются только два пакета: apt install proot nano Эмуляция клавиатуры Использование клавиш типа Alt, Ctrl, Esc необходимо для работы с терминалом. Обычные сенсорные клавиатуры подобных клавиш не поддерживают. Поэтому Termux использует кнопку уменьшения громкости для эмуляции клавиши Ctrl. Например, зажимая кнопку Громкость вниз + L на сенсорной клавиатуре отправляет тот же ввод, что и нажатие Ctrl + L на аппаратной клавиатуре. Результат использования Ctrl в сочетании с клавишей зависит от того, какая программа используется, но для многих инструментов командной строки работают следующие сочетания клавиш: Ctrl+A → Переместить курсор в начало строки Ctrl+E → Переместить курсор в конец строки Ctrl+K → Удаляет от курсора до начала строки Ctrl+U → Удаляет от начала строки до курсора Ctrl+L → Очищает терминал Ctrl+D → Выходит из сессии, аналог команды exit Ctrl+Alt+C → Открывает новую сессию (работает только с Hacker's Keyboard) Ctrl+C → Прерывает (завершает) текущий процесс Ctrl+Z → Усыпляет (приостанавливает) текущий процесс, затем можно вывести команду из сна командой fg Клавиша увеличения громкости также служит специальной клавишей для получения определенного ввода: Volume Up+E → Escape Volume Up+T → Tab Volume Up+1 → F1 (Volume Up+2 → F2, и так далее) Volume Up+0 → F10 Volume Up+B → Alt+B, перемещает курсор в начало слова Volume Up+F → Alt+F, перемещает курсов в конец слова Volume Up+X → Alt+X Volume Up+W → Стрелка вверх Volume Up+A → Стрелка влево Volume Up+S → Стрелка вниз Volume Up+D → Стрелка вправо Volume Up+L → | (символ трубы) Volume Up+H → ~ (символ тильды) Volume Up+U → _ (символ нижнего подчёркивания) Volume Up+P → Page Up Volume Up+N → Page Down Volume Up+. → Ctrl+ (SIGQUIT) Volume Up+V → Отобразить громокость Volume Up+Q → Отобразить/скрыть панель Volume Up+K → Тоже самое Первичная настройка Сперва сделаем так, чтобы при запуске Termux'а мы попадали в классическую структуру файловой системы Linux. Для этого нам необходимо добавить эти строки в файл bash.bashrc который находится в каталоге ~/../usr/etc/ nano ~/../usr/etc/bash.bashrc if [ -z "$TERMUX_CHROOT" ]; then export TERMUX_CHROOT=1 exec termux-chroot fi Сохраняем "Ctrl + O" Выходим из редактора "Ctrl + X" После сохранения файла перезапустите Termux, и проверьте вывод команды pwd и содержимое корневой директории / командой ls / Каждый каталог имеет своё предназначение, так / - корневой каталог, содержащий всю файловую иерархию /bin - содержит основные утилиты (cd, ls, pwd и т.д.) /data - содержит установленные приложения, личные настройки юзера /dev - содержит основные файлы устройств /home - домашний каталог, содержит файлы и папки пользователя /lib - библиотеки, необходимые для работы программ из /bin, /sbin /proc - состояние ядра Android и запущенных процессов /root - домашний каталог пользователя root /sbin - программы для администрирования и настройки системы /share - архитектурно-независимые общие данные /storage - файлы и папки пользователя Android /system - системные папки и файлы для функционирования Android /tmp - временные файлы и папки /usr - Вторичная иерархия для данных пользователя /var - изменяемые файлы: регистрации, спулеры, временные почтовые /vendor - информация об устройствах, драйверах, свойствах ядра Для чего нужна эта настройка? Во-первых это удобно, теперь команды для взаимодействия с содержимым будет начинаться так (пример) nano /etc/bash.bashrc а не так nano ../usr/etc/bash.bashrc Во-вторых для некоторых модулей при установке необходимы стандартные пути папок обычно присущи какому-либо дистрибутиву Linux, не Termux, но эта настройка решает проблему. Доступ к общему и внешнему хранилищу В Termux есть три основных типа хранилищ: 1. [color="rgb(1, 191, 255)"][/color][size="6"][/size][size="5"][/size]Личное хранилище приложения: файлы, помещенные в $HOME, доступные изнутри Termux (или при явном выборе, например, при прикреплении файла к почте).[/SIZE][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][/COLOR] 2. Общее внутреннее хранилище: хранилище на устройстве доступно для всех приложений. В Android 6.0 для этого требуется, чтобы пользователь предоставил доступ к Termux для доступа к нему. [size="6"][/size][size="6"][/size][size="6"][/size][size="6"][/size][size="6"][/size][size="6"][/size][size="5"][/size]3. Внешнее хранилище: Хранение на внешних SD-картах. Каждое приложение имеет личную папку на внешней SD-карте, и для обмена между ними необходимо использовать специальный API.[/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE] [size="6"][/size][size="6"][/size][size="6"][/size][size="6"][/size][size="6"][/size][size="6"][/size][size="6"][/size][size="6"][/size]Для доступа к общему и внешнему хранилищу вам нужно запустить[/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE] [size="6"][/size][size="6"][/size][size="6"][/size][size="6"][/size][size="6"][/size][size="6"][/size][size="6"][/size][size="6"][/size][size="5"][/size]termux-setup-storage[/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE][/SIZE] Затем вам будет предложено «Разрешить Termux доступ к фотографиям, мультимедиа и файлам на вашем устройстве», на что мы должны дать согласие. При выполнении вышеприведённой команды создаётся директория storage в нашем домашнем каталоге, а также личная папка приложения на внешнем хранилище (если внешнее хранилище существует). Содержимое созданной папки storage является символическими ссылками на разные папки хранения: Общее хранилище между всеми приложениями. ~/storage/shared Стандартный каталог для загрузок. ~/storage/downloads Хранилище для фотографий и видео с вашем камеры. ~/storage/dcim Стандартный каталог, в котором размещаются картинки, доступные пользователю. ~/storage/pictures Стандартный каталог, в который помещаются любые аудиофайлы, которые должны быть в обычном списке музыки для пользователя. ~/storage/music Стандартный каталог для размещения фильмов, доступных пользователю. ~/storage/movies Ссылка на личную папку Termux на внешнем хранилище (только если доступно внешнее хранилище). ~/storage/external Спасибо за прочтение.
зачем ты текст голубым сделал ? ты же в курсе, что синий свет пиздец какой вреден для глаз ? ты нас покалечить хочешь?
Кокосовый, в этой теме рассказывается о приложении Termux, которое предоставляет Linux-подобную среду на Android устройствах. Оно позволяет выполнять команды Linux, использовать его как среду разработки, веб-сервер или SSH клиент. В статье также обсуждаются установка Termux и его основные возможности.
Толку от статьи, если есть soflow и ответы? Юзеру который ставит там ботов с раздела python надо знать что такое venv, git clone, pip3/pip install и pkg install. Ну и pkg update && pkg upgrade -y
На практике использование термкуса на мобилке показывает что он подойдет в большинстве как хостик для местной локалки.
Привет, krutyshkin! Давай я выделю основные моменты из статьи о Termux: 1. **Что такое Termux?** - Termux — это приложение, которое предоставляет Linux-подобную среду на Android-устройстве. Оно позволяет взаимодействовать через консоль без необходимости root-прав. 2. **Возможности Termux:** - Используется для изучения основ командной строки Linux. - Может служить средой разработки, веб-сервером, SSH клиентом и многим другим. - В репозиториях Termux доступно более 1200 пакетов. 3. **Установка Termux:** - Рекомендуется скачивать с F-Droid или Kali NetHunter Store. Также доступно в PlayMarket. - В F-Droid и PlayMarket обновления выходят чаще. Если у тебя есть конкретные вопросы по Termux или хочешь узнать больше о каком-то из пунктов, дай знать!