termux доступ к файлам, созданным в термукс из андроида
В общем, поставил этого зверя себе на телефон, хочу скопировать файл из андроида в термукс, нашёл, что можно сделать шару с помощью termux-setup-storage телефон запросил разрешение на доступ к какой-то папке, я разрешил и на этом всё, папок в проводнике андроида не прибавилось, попробовал выполнить следующее из термукса
$ cd external-1 $ ls $ touch test.txt $ echo "hello world" > test.txt
Проводник test.txt не может найти
Как меняться файлами между термуксом и андроидом?
Доступ к внешнему и внутреннему хранилищу
Для того, чтобы получить доступ к внутреннему (общему) или внешнему хранилищу, необходимо выполнить команду .
![]()
При выполнении termux-setup-storage происходит следующее:
- Будет запрошено разрешение на доступ к хранилищу.
- Termux создаст приватную директорию во внешнем и внутреннем хранилищах.
- Создаст директорию $HOME/storage в которой будут символьные ссылки на приватные директории приложения, а также ссылки на стандартные директории Android OS.
~/storage
Содержимое $HOME/storage представляет собой символьные ссылки на различные директории Termux и Android OS:
- Общее хранилище.
~/storage/shared
- Стандартная папка для загруженных файлов.
~/storage/downloads
- Стандартная папка для фотографий и видео записанных при помощи камеры.
~/storage/dcim
- Стандартная папка для хранения изображений.
~/storage/pictures
- Стандартная папка для хранения музыки.
~/storage/music
- Стандартная папка для хранения видео/фильмов.
~/storage/movies
- Приватная директория приложения на внешнем хранилище.
~/storage/external-1
Важно: не выполняйте сброс данных приложения если у вас есть важные файлы в приватных директориях Termux на внешнем или общем хранилище. В противном случае эти данные будут удалены.
Как открыть файл в Termux
Проблема в том что у меня куча файлов в termuxe (проверил через ls) но я незнаю команды что бы зайти в какой либо,объясните как их включить или где коренная папка termux-а (Извините, я новичок в этом)
f22
Codeby Academy
Gold Team
05.05.2019 1 754 203 BIT 361
Проблема в том что у меня куча файлов в termuxe (проверил через ls) но я незнаю команды что бы зайти в какой либо,объясните как их включить или где коренная папка termux-а (Извините, я новичок в этом)
Для того, чтобы узнать тип файла, можно использовать команду file
file my_text
my_text: ASCII text
/bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=ffe165dc81a64aea2b05beda07aeda8ad71f1e7c, stripped
Чтобы отобразить на экране содержимое текстового файла, можно использовать команду cat
cat my_text
Если файл очень длинный, используйте утилиту more или less
more my_text
less my_text
Используя стрелки, вы сможете перемещаться по строкам файла вверх и вниз.
Чтобы изменить содержимое, можно воспользоваться утилитой nano
nano my_text
Для перемещения по каталогами используйте команду cd
cd /usr/
Termux от А до Я. Часть 1

@termuxguide
Termux — приложение реализующее Linux-подобную среду взаимодействие с которой происходит посредством консоли без необходимости иметь root-права на устройстве. Его можно считать больше похожим на дистрибутив Linux, чем просто эмулятор, благодаря большому количеству доступных пакетов.
Что можно сделать с 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 — Следующей командой мы посмотрели что находится в предыдущей директории, если помните, точно такой же вывод был когда я проверял содержимое своей домашней папки будучи в ней. А сейчас я перешёл в папку находящуюся в домашней папке, и затем с неё посмотрел содержимое домашней.
. — текущая папка
.. — родительская
Некоторые опции команды ls
-a, --all не скрывать файлы начинающиеся с . -l использовать широкий формат -r, --reverse обратный порядок сортировки -t сортировать по времени изменения, сначала самые новые
cd (change directory) — смена директории
Вы наверняка уже поняли по прошлым примерам зачем нужна эта команда. Сейчас я покажу её некоторые опции и более обширные примеры.

1 — В первых двух примерах я взаимодействую с текущей и родительской папкой. Когда я ввожу
cd .
то остаюсь в той же директории, что и был до выполнения команды.
cd ..
то перехожу в директорию где текущая была создана.
2 — Если у вас имеются вложенные в какую-то папку другие папки, то чтобы перейти к какой либо из них не нужно переходить по одной папке несколькими командами. Это можно сделать одной, дополняя к названию директории слэш и название папки к которой вы хотите переместиться. Пример:
cd directory1/directory.2/directory_3/.directory4
3 — Этой командой мы возвращаемся в папку в которой были до этого в независимости от того где она находилась. Я выполнил эту команду два раза чтобы вернуться обратно в папку 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 — очищает терминал
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 — выходит из текущей сессии
Используется когда нужно выйти из сессии, иной оболочки, виртуальной среды и т.п
Справка о пакетах
В 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-chroot
Сперва сделаем так, чтобы при запуске 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 - содержит основные файлы устройств /etc - содержит конфигурационные файлы /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, но эта настройка решает проблему.
Панель дополнительных клавиш
Давайте настроим внешний вид дабы повысить удобство для нашей дальнейшей работы, начнём с панели дополнительных клавиш.

Если вы используете специальную клавиатуру и вам не нужна эта панель, тогда зажмите кнопку повышения громкости и одновременно нажмите на клавиатуре Q или K. Также можно свайпнуть слева направо и зажать надпись KEYBOARD.

После обновления Termux v0.66 строка дополнительных клавишей стала настраиваемой через файл «~/.termux/termux.properties«. Проверим есть ли у нас эта скрытая папка и файл в ней.
ls -la

У меня нету, чтож.. давайте создадим
mkdir .termux
touch .termux/termux.properties
Теперь отредактируем файл настройки
nano .termux/termux.properties
Чтобы вернуть двухстрочную панель, какой она была до обновления 0.66, копируем следующий текст, и вставляем его в файл
extra-keys = [['ESC','/','-','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]
Дополнительные клавиши также могут быть распределены по нескольким строкам, если это необходимо, путем «экранирования от обратной косой черты» перевода строки в конце каждой строки, таким образом:
extra-keys = [ ['ESC','|','/','HOME','UP','END','PGUP','DEL'], ['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN','BKSP'] ]
Это не все возможные дополнительные клавиши, полный список таков:
CTRL ALT FN ESC TAB HOME END PGUP PGDN INS DEL BKSP UP LEFT RIGHT DOWN ENTER BACKSLASH QUOTE APOSTROPHE F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12
Всё что приглянулось, вы можете добавить к себе на панель, тем самым сделав третью строку клавиш, или заменив существующие подменяя в файле конфигурации значения.
После сохранения файла необходимо перезагрузить настройки Termux’а выполнив команду
termux-reload-settings
Однако иногда после её выполнения панель может отображаться некорректно. Решается путём перезапуска Termux.
motd — (message of the day) файл который содержит «сообщение дня».

Теперь, когда мы добавили termux-chroot в автоматический запуск, путь к файлу значительно сократился, и сейчас чтобы получить к нему доступ нам не придётся прописывать «nano ~/../usr/etc/motd«, команда будет выглядеть так
nano /etc/motd

Этот текст отображается при входе в Termux, и как вы уже наверное догадались, его можно изменить. Если вы не хотите чтобы это приветствие выводилось каждый раз как вы запускаете Termux, то сотрите его, или удалите этот файл. Не забудьте сохранить изменения и проверить их открыв новую сессию.
Доступ к общему и внешнему хранилищу
В Termux есть три основных типа хранилищ:
- Личное хранилище приложения: файлы, помещенные в $HOME, доступные изнутри Termux (или при явном выборе, например, при прикреплении файла к почте).
- Общее внутреннее хранилище: хранилище на устройстве доступно для всех приложений. В Android 6.0 для этого требуется, чтобы пользователь предоставил доступ к Termux для доступа к нему.
- Внешнее хранилище: Хранение на внешних SD-картах. Каждое приложение имеет личную папку на внешней SD-карте, и для обмена между ними необходимо использовать специальный API.
Для доступа к общему и внешнему хранилищу вам нужно запустить
termux-setup-storage
Затем вам будет предложено «Разрешить Termux доступ к фотографиям, мультимедиа и файлам на вашем устройстве», на что мы должны дать согласие. При выполнении вышеприведённой команды создаётся директория storage в нашем домашнем каталоге, а также личная папка приложения на внешнем хранилище (если внешнее хранилище существует).
Содержимое созданной папки storage является символическими ссылками на разные папки хранения:
- Общее хранилище между всеми приложениями.
~/storage/shared
- Стандартный каталог для загрузок.
~/storage/downloads
- Хранилище для фотографий и видео с вашем камеры.
~/storage/dcim
- Стандартный каталог, в котором размещаются картинки, доступные пользователю.
~/storage/pictures
- Стандартный каталог, в который помещаются любые аудиофайлы, которые должны быть в обычном списке музыки для пользователя.
~/storage/music
- Стандартный каталог для размещения фильмов, доступных пользователю.
~/storage/movies
- Ссылка на личную папку Termux на внешнем хранилище (только если доступно внешнее хранилище).
~/storage/external
Спасибо за прочтение. Возникли вопросы? Есть желание что-то добавить/подправить?
Создатель чата и админ канала @reposit0r
Создатель канала и зам. главы чата @Enleann