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.


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

Support the author
Share post

Comments 22

    +2

    Не могли бы Вы добавить в начало статьи краткое пояснение о том, что такое вообще Termux?

      +2
      Я думаю, что, хоть это и полезно, автор имеет своей целью создать справочник-учебник для людей, которые только нашли такое приложение, и ищут что с ним делать, но пока получается только путеводитель по линуксу.
        +2
        Есть ещё люди, узнавшие о его существовании из статьи, и вот на них сея стройная идеологическая конструкция рушится
        0
        Вы думаете стоит? Я писал с расчетом на тех, кто как и я раньше, нашли Termux сами (не думаю что это сложно), но из-за очень слабого знания *nix`образных, сталкиваются к кучей, казалось бы мелких, но раздражающих проблем.
          0

          Никогда не помешает указать контекст.

            0
            Пояснение добавил (второй абзац).
            Как на Ваш взгляд, достаточное раскрытие контекста?
              0

              Да, теперь очень хорошо, сразу понятно о чем дальше статья. Спасибо.

        0
        Все думал, зачем может понадобится ssh сервер на смартфоне (есть же adb shell). Сделать из смартфона систему видеонаблюдения на дачу?
          0
          есть же adb shell
          1. А по вайфаю он работает?
          2. Множество утилит ожидают использования ssh как транспорта, напр. rsync.
            0
            1. да, но не секьюрно, так что ssh имеет смысл
          0

          … или просто поставить fish/zsh/иже с ним и не настраивать все руками, например :)
          Очень полезная в этом плане HackerKeyboard, чтобы работать прямо с телефона
          Куча плагинов, которые могут управлять практически усем телефоном (звонить, смс отсылать, вибрировать, etc).

            0
            Вас кто-то избаловал предварительно настроенной zsh — по умолчанию она тоже требует настройки руками
              0
              Говоря о настройке руками и zsh, стоило сказать о Oh-My-Zsh, иначе его действительно нужно настраивать руками
              Кстати о клавиатурах: уже около двух лет назад восстала из мёртвых AnySoftKeyboard, очень удобная клавиатура
                0
                Господа, согласитесь, жмакать пальцами по «живой» клаве и приятнее и быстрее.
                А в контексте обучения еще удобнее работа по ssh с компа.
                image
                Против zsh ни чего не имею (разве что в терминале Bitvise он плохо смотрится), но на bash`е мне показалось удобнее через переопределение переменной окружения PS1 рассказать про .bashrc и далее подвести тему к alias`ам.
                0

                YouTube-DL поддерживает?

                  0

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

                    0

                    Проект довольно старый. Если и есть шероховатости — то это не от сырости.

                  0
                  Использовал Termux для хостинга домашнего Node-RED сервера.
                    +1
                    Статью можно было сократить до одного предложения: «Termux – замена Linux, когда под рукой нет компьютера». И используется он соответственно
                      0
                      Как им пользоваться?

                      Как дебианом.


                      Весь пост помещается в это одно предложение.

                        0
                        Пост рассчитан на людей практически впервые столкнувшихся с миром *nix.
                        0
                        Termux уже работает не только с Public Key. В последних версиях можно поставить пакет openssh (в нем sshd), и потом просто пустить команду passwd. Установленый пароль будет пускать по SSH.

                        Only users with full accounts can post comments. Log in, please.