Termux шаг за шагом
При первом знакомстве Termux, а я далеко не линуксоид, вызвал в моей голове две мысли: «Круть несусветная!» и «Как им пользоваться?». Порывшись в инетах, я не нашел ни одной статьи в полной мере позволяющей начать пользоваться Termux`ом так чтобы это приносило больше удовольствия чем гемора. Будем это исправлять.
Для начала определимся, что это за зверь такой Termux, и что он может. На главной странице WikiTermux (рекомендую ознакомиться) говорится, что “Termux — это эмулятор терминала и среда Linux”, т.е. установив его мы получим вполне работоспособный Linux терминал на своем Android устройстве. Несомненным плюсом является работа в виртуальном окружении (многое можно делать без root`а), благодаря чему навредить файловой системе Android практически нереально. А при наличии root`а ваши возможности ограничены только фантазией (ну и знанием матчасти).
За каким, собственно говоря, я полез к Termux`у? Во-первых хакинг, точнее желание немного в нем разобраться. Во-вторых отсутствие возможности пользоваться Kali Linux`ом.
Тут я постараюсь собрать воедино все полезное найденное мной по теме. Разбирающегося эта статья вряд ли чем удивит, но тем кто только познает прелести Termux`а, надеюсь, будет полезна.
Для лучшего понимания материала рекомендую повторять описанное мной не простой копипастой а самостоятельно вводить команды. Для удобства нам понадобится либо Android устройство с подключенной клавиатурой, либо как в моем случае Android устройство и ПК/Ноутбук (Windows) подключенные к одной сети. Android желательно с root`ом, но не обязательно. Иногда я что-то указываю в скобках, обычно, это позволит лучше понять материал (если написанное в скобках не совсем понятно, то смело пропускайте это, потом в процессе и по мере необходимости все разъяснится).
Шаг 1
Буду банален и чертовски логичен одновременно
Ставим Termux c Google Play Market:
Открываем установленное приложение и видим:
Далее стоит обновить предустановленные пакеты. Для этого по порядку вводим две команды, по ходу выполнения которых со всем соглашаемся, вводя Y:
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.txtcat 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
Облегчи себе жизнь
Чтобы не мучить себя без нужды вводом команд с экранной клавиатуры (в «полевых» условиях, конечно, от этого не уйти) есть два пути:
- Подключить к Android устройству полноценную клавиатуру любым удобным способом.
- Воспользоваться ssh. Проще говоря, у вас на компьютере будет открыта консоль Termux`а запущенного на вашем Android устройстве.
Я пошел по второму пути, хотя он и немного сложен в настройке, но все окупится удобством использования.
На компьютере необходимо установить программу ssh клиент, я пользуюсь Bitvise SSH Client, т.ч. все дальнейшие действия совершаются в этой программе.
Т.к. на данный момент Termux поддерживает только подключение по методу 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.
Впереди еще немало шагов, главное что движение начато!
Комментарии (21)
ivan2kh
23.03.2019 15:21Все думал, зачем может понадобится ssh сервер на смартфоне (есть же adb shell). Сделать из смартфона систему видеонаблюдения на дачу?
Ktulhy
23.03.2019 17:57… или просто поставить fish/zsh/иже с ним и не настраивать все руками, например :)
Очень полезная в этом плане HackerKeyboard, чтобы работать прямо с телефона
Куча плагинов, которые могут управлять практически усем телефоном (звонить, смс отсылать, вибрировать, etc).maxzhurkin
24.03.2019 00:19Вас кто-то избаловал предварительно настроенной zsh — по умолчанию она тоже требует настройки руками
taranarmo
26.03.2019 00:29Говоря о настройке руками и zsh, стоило сказать о Oh-My-Zsh, иначе его действительно нужно настраивать руками
Кстати о клавиатурах: уже около двух лет назад восстала из мёртвых AnySoftKeyboard, очень удобная клавиатура
LexxXell Автор
26.03.2019 01:15Господа, согласитесь, жмакать пальцами по «живой» клаве и приятнее и быстрее.
А в контексте обучения еще удобнее работа по ssh с компа.
Против zsh ни чего не имею (разве что в терминале Bitvise он плохо смотрится), но на bash`е мне показалось удобнее через переопределение переменной окружения PS1 рассказать про .bashrc и далее подвести тему к alias`ам.
r1sha
24.03.2019 13:38Статью можно было сократить до одного предложения: «Termux – замена Linux, когда под рукой нет компьютера». И используется он соответственно
twaikyont
25.03.2019 18:10Termux уже работает не только с Public Key. В последних версиях можно поставить пакет openssh (в нем sshd), и потом просто пустить команду passwd. Установленый пароль будет пускать по SSH.
ivanych
Не могли бы Вы добавить в начало статьи краткое пояснение о том, что такое вообще Termux?
kireevmp
Я думаю, что, хоть это и полезно, автор имеет своей целью создать справочник-учебник для людей, которые только нашли такое приложение, и ищут что с ним делать, но пока получается только путеводитель по линуксу.
maxzhurkin
Есть ещё люди, узнавшие о его существовании из статьи, и вот на них сея стройная идеологическая конструкция рушится
LexxXell Автор
Вы думаете стоит? Я писал с расчетом на тех, кто как и я раньше, нашли Termux сами (не думаю что это сложно), но из-за очень слабого знания *nix`образных, сталкиваются к кучей, казалось бы мелких, но раздражающих проблем.
ivanych
Никогда не помешает указать контекст.
LexxXell Автор
Пояснение добавил (второй абзац).
Как на Ваш взгляд, достаточное раскрытие контекста?
ivanych
Да, теперь очень хорошо, сразу понятно о чем дальше статья. Спасибо.