Команды терминала Андроид

Терминал — это специальная оболочка для текстовых команд, которую используют как фронтенд-, так и бэкенд-разработчики. Первым он полезен в создании и управлении проектами (в основном npm и git), а вторым — для управления ресурсами на сервере.

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

Интерфейс терминала представляет собой командную строку, в которой вы вводите команды.

Для git есть множество оболочек, но терминал всё равно остаётся востребованным для работы с ним, так как позволяет более прозрачно управлять процессом.

Как запустить терминал

На системах macOS и Linux уже есть встроенный терминал. Если работаете на Windows, можно скачать отдельный клиент. Он также потребуется для действий с git, если вы выберете работу с консолью. При установке будет много вкладок с галочками — для начала можно оставить всё дефолтно.

Чтобы воспользоваться терминалом, нужно запустить Git Bash:

Git Bash выглядит очень похоже с терминалом Linux — здесь вводятся команды, о которых мы будем говорить дальше:

Основные команды для работы в терминале

    pwd— полный путь до папки, в которой находитесь сейчас:

ls— просмотр содержимого открытой папки:

У команд есть ключи — например, можно написать команду ls с ключом -a и увидеть список всех файлов, в том числе скрытых. Как правило, у всех команд терминала есть такие дополнительные ключи. Их может быть довольно много — например, как в списке ключей для команды ls.

ls -laвыводит дополнительную информацию (о правах, владельце, дате редактирования и размере).

ls путьдо папки поможет посмотреть содержимое в папке, в которую вы прокладываете навигацию относительно вашего текущего места. Например, вы находитесь в папке ~geekbrains и хотите просмотреть файлы в ~geekbrains/adaptive — тогда вам нужно написатьls adaptive. 

Студенты курсов GeekBrains наверняка уже знают, что названия папок и файлов в проектах пишутся с маленьких букв и без пробелов — так удобнее. 

Лайфхак: если вы начнёте набирать имя папки и нажмёте Tab, то сработает автокомплит (автодополнение) и терминал сам подставит оставшиеся буквы. Это часто спасает от опечаток в названиях.

cd прокладывает навигацию к корневой папке, то есть к user.

cdназвание папки прокладывает навигацию к любой папке. Это происходит примерно по той же схеме, что в проводнике или Finder.

cd .. — поднимает вас на один уровень в файловой системе. Например, если находились в ~geekbrains/adaptive, то после команды окажетесь в ~geekbrains. Также можно использовать запись cd ../.. — так вы подниметесь на два уровня. Уточним пример: будем использовать pwd, чтобы видеть, где мы находимся, иls, чтобы смотреть содержимое папок:

mkdir название папки — создаёт папку. В примере сначала и в конце просматриваем папки при помощи ключа ls, чтобы убедиться, что папка создалась:

touch название файла — создаёт файл, а также указывает расширение, например touch index.html. На скриншоте при первой командеls ничего не вывелось в терминал, потому что папка была пустой.

cat название — показывает текстовое содержимое файла. На скриншоте видим его у файла index.html, открытого в VSCode, а также наблюдаем вывод в консоли.

mv старое_имя новое_имя — переименовывает файл:

rm имя файла — удаляет его:

cp путь до файла, который копируем, и путь, куда помещаем копию (и имя, если нужно) — создаёт копию, также может переименовать файл при необходимости:

clear — очищает консоль от предыдущих команд и выводов.

node файл — запускает js-файл. Чтобы это сделать, нужно установить на свой компьютер node. В примере использован файлик со строкой, поэтому в консоли появляется вывод «script»:

console.log('script');

В этой статье мы рассказали лишь о небольшой части команд для работы с терминалом — необходимом минимуме для новичков. Если вам будет интересно прочитать про другие команды, напишите в комментариях.

“>

Терминал — это специальная оболочка для текстовых команд, которую используют как фронтенд-, так и бэкенд-разработчики. Первым он полезен в создании и управлении проектами (в основном npm и git), а вторым — для управления ресурсами на сервере.

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

Интерфейс терминала представляет собой командную строку, в которой вы вводите команды.

Для git есть множество оболочек, но терминал всё равно остаётся востребованным для работы с ним, так как позволяет более прозрачно управлять процессом.

Как запустить терминал

На системах macOS и Linux уже есть встроенный терминал. Если работаете на Windows, можно скачать отдельный клиент. Он также потребуется для действий с git, если вы выберете работу с консолью. При установке будет много вкладок с галочками — для начала можно оставить всё дефолтно.

Чтобы воспользоваться терминалом, нужно запустить Git Bash:

Git Bash выглядит очень похоже с терминалом Linux — здесь вводятся команды, о которых мы будем говорить дальше:

Основные команды для работы в терминале

    pwd— полный путь до папки, в которой находитесь сейчас:

ls— просмотр содержимого открытой папки:

У команд есть ключи — например, можно написать команду ls с ключом -a и увидеть список всех файлов, в том числе скрытых. Как правило, у всех команд терминала есть такие дополнительные ключи. Их может быть довольно много — например, как в списке ключей для команды ls.

ls -laвыводит дополнительную информацию (о правах, владельце, дате редактирования и размере).

ls путьдо папки поможет посмотреть содержимое в папке, в которую вы прокладываете навигацию относительно вашего текущего места. Например, вы находитесь в папке ~geekbrains и хотите просмотреть файлы в ~geekbrains/adaptive — тогда вам нужно написатьls adaptive. 

Студенты курсов GeekBrains наверняка уже знают, что названия папок и файлов в проектах пишутся с маленьких букв и без пробелов — так удобнее. 

Лайфхак: если вы начнёте набирать имя папки и нажмёте Tab, то сработает автокомплит (автодополнение) и терминал сам подставит оставшиеся буквы. Это часто спасает от опечаток в названиях.

cd прокладывает навигацию к корневой папке, то есть к user.

cdназвание папки прокладывает навигацию к любой папке. Это происходит примерно по той же схеме, что в проводнике или Finder.

cd .. — поднимает вас на один уровень в файловой системе. Например, если находились в ~geekbrains/adaptive, то после команды окажетесь в ~geekbrains. Также можно использовать запись cd ../.. — так вы подниметесь на два уровня. Уточним пример: будем использовать pwd, чтобы видеть, где мы находимся, иls, чтобы смотреть содержимое папок:

mkdir название папки — создаёт папку. В примере сначала и в конце просматриваем папки при помощи ключа ls, чтобы убедиться, что папка создалась:

touch название файла — создаёт файл, а также указывает расширение, например touch index.html. На скриншоте при первой командеls ничего не вывелось в терминал, потому что папка была пустой.

cat название — показывает текстовое содержимое файла. На скриншоте видим его у файла index.html, открытого в VSCode, а также наблюдаем вывод в консоли.

mv старое_имя новое_имя — переименовывает файл:

rm имя файла — удаляет его:

cp путь до файла, который копируем, и путь, куда помещаем копию (и имя, если нужно) — создаёт копию, также может переименовать файл при необходимости:

clear — очищает консоль от предыдущих команд и выводов.

node файл — запускает js-файл. Чтобы это сделать, нужно установить на свой компьютер node. В примере использован файлик со строкой, поэтому в консоли появляется вывод «script»:

console.log(‘script’);

В этой статье мы рассказали лишь о небольшой части команд для работы с терминалом — необходимом минимуме для новичков. Если вам будет интересно прочитать про другие команды, напишите в комментариях.

Если у вас есть смартфон на Android и вы знакомы с Linux то наверное хоть раз интересовались как использовать терминал в Android. Как вы знаете операционная система Android основана на ядре Linux, а это значит что здесь есть командная оболочка и в ней доступны множество стандартных команд Linux. По умолчанию стандартной утилиты терминала в Android нет. Получить к нему доступ можно несколькими путями:

  • первый – скачать приложение Android Terminal Emulator с GooglePlay.
  • второй подключиться к смартфону с компьютера с помощью отладчика adb.

Но наша статья не об этом, сегодняшняя тема: команды в Aandroid Terminal Emulator или точнее команды терминала Android.

В интернете есть много статей на эту тему но во всех них чего-то не хватает, описана пара специфичных команд и на этом все, а хочется полный список, включая команды Linux, тогда я и решил написать эту статью. Я не говорю что я опишу все команды, но постараюсь охватить большинство. Здесь приведено лишь короткое описание о некоторых командах Android я расскажу подробнее в следующих статьях, а о командах Linux можно найти подробную информацию в интернете.

Теперь об обозначениях — для некоторых команд необходимы права root, перед ними я буду ставить знак @.

Начнем. Команды терминала это ничто иное как небольшие консольные утилиты, большинство системных утилит находиться в папке /system/bin и еще несколько в /vendor/bin. Те что в vendor мы трогать не будем. Чтобы было удобнее расположу все команды по алфавиту.

adb – Отладчик андроид. Поскольку Android это все же Linux, к нему по USB можно подключать другие устройства в том числе смартфоны, adb позволяет ими управлять и дает доступ к их терминалу. описание его команд и возможностей тянет на целую статью, я опишу все в одной из следующих статей.

am – Менеджер окон (Action Manager), с помощью него можно запустить и остановить любое приложение или сервис. Например запуск приложения настройки:

badblocks — проверка флешки на наличие битых секторов:

Результат можно записать в файл:

или вывести на экран:

bmgr — управление резервным копированием Android.

cat — консольная утилита для просмотра содержимого файла.

chmod — аналогична команде Linux, меняет права доступа файла, доступен только восьмеричный формат записи.

Например дать все права (чтение, запись, выполнение):

chown — меняет владельца файла в Linux, Например:

cmp — сравнивает два файлы

cp — копирует файл, из источника(параметр 1) в приемник(параметр 2).

Подробнее о cp можно почитать в статье копирование файлов в linux

date — показать текущую дату в системе.

Sat Nov 14 13:44:56 EET 2015

dd — создать образ диска, Параметры if= файл устройства диска, of=файл для записи

Например:

Будет создан образ флешки mmcblk0.

df — анализ свободного места на диске. Например:

Filesystem Size Used Free Blksize /mnt/secure 484.5M 0.0K 484.5M 4096 /mnt/asec 484.5M 0.0K 484.5M 4096 /mnt/obb 484.5M 0.0K 484.5M 4096 /system 1.4G 971.7M 435.8M 4096

dmesg — просмотр лога сообщений ядра.

du — просмотр размера файла.

@ ext4_resize изменение размера раздела с файловой системой ext4.

@ fsck_msdos — проверка флешки на ошибки.

grep — утилита для фильтрации текста. Например вывести только строки содержащие terminal:

@ ifconfig — просмотр и управление сетевыми устройствами. Например просмотр информации о карте wifi:

Или отключение wifi:

Узнать список сетевых устройств можно командой:

iptables — управление настройками фаервола iptables, это очень обширная тема которой мы касаться не будем.

kill — уничтожить процесс по его PID.

Чтобы узнать pid можно использовать утилиту ps.

ln — создать ссылку на файл или папку, если указан параметр -s — символическую ссылку.

log — записать строку в лог системы.

logcut — просмотр лога системы в реальном времени.

ls — просмотр списка файлов и папок в директории:

lsmod — просмотр загруженных модулей ядра

lsof — просмотр открытых в системе файлов.

make_ext4fs — форматировать флешку в файловую систему ext4

md5 — подсчитать контрольную суму файла.

mkdir — создать папку, в текущем каталоге.

make2fs — форматировать флешку в файловую систему ext2

mount — примонтировать диск, образ или папку. Например:

Подробнее о монтировании можно почитать в моей статье: Монтирование в Android

mv — переместить файл, аналогично cp

netcfg — просмотр информации об сетевых соединениях.

notify — утилита для слежения за изменениями в файловой системы с помощью подсистемы ядра inotify.

ping — известная утилита для проверки доступности сетевого узла.

pm — пакетный менеджер android, позволяет, устанавливать, удалять и просматривать установленные пакеты.

ps — просмотр всех запущенных процессов и информации о них.

USER PID PPID VSIZE RSS WCHAN PC NAME root 1 0 1000 848 c0106ef8 0001bfb4 S /init root 2 0 0 0 c006e038 00000000 S kthreadd root 3 2 0 0 c0057a54 00000000 S ksoftirqd/0

reboot — перезагрузить смартфон из консоли.

resize2fs — аналогично resize_ext4, только для ext2

rm — удалить файл.

rmdir — удалить папку.

rmmod — выгрузить модуль ядра.

route — управление таблицей маршрутизации.

touch — создать пустой файл.

top — интерактивный вариант списка запущенных процессов.

@ screenshot — сделать снимок экрана.

shutdown — выключить смартфон.

service — управление сервисами. Например посмотреть список запущенных сервисов:

Это были все команды описание которых я нашел, по возможности список будет пополняться.

Десерт на сегодня – обзор новой версии Android 6.0 Marshmallow:

Android shell

Создан: 4 июня 2013

Если Вы знакомы с Linux, то прекрасно понимаете насколько эффективна консоль для решения задач самого разного спектра. С помощью консоли получаем контроль над системой итд. Так, вооружившись консолью и правами root, мы сможем очистить смартфон от ненужных приложений, изменить анимацию загрузки, установить новые шрифты, сделать приложения системными, найти приложения, которые грузят ось, перенести приложения на карту памяти и сделать многое другое. Конечно лучше вбивать команды с компа, чем вводить на экране смартфона. Тем не менее все то же самое можно сделать, установив Android Terminal на смартфон и воспользовавшись USB-или Bluetooth-клавиатурой.ADB (Android Debug Bridge) И так, для того чтобы получить доступ к консоли Android с компа, Google придумал замечательный инструмент ADB, предназначенный для выполнения разного рода сервисных задач, а также для отладки приложений и операционной системы. ADB состоит из двух компонент: сервера, работающего на смартфоне, и клиента, который запускается на компе, предварительно подключив смартфон с помощью USB-кабеля. Сам клиент ADB — это небольшая консольная утилита, которая поставляется в комплекте с Android SDK. Её можно найти в каталоге platform-tools внутри корневого каталога SDK. Например, C://Android SDK/platform-tools/adb в Windows или /home/user/android-sdk-linux/platfrom-tools/adb в Linux. Запускаем ADB из командной строки DOS в Windows или эмулятора терминала в Linux. Все управление естественно через команды: $ adb devices список доступных для управления устройств с помощью ADB. Подключаем смартфон/ планшет через USB-кабель, включаем режим отладки в Android: «Настройки —» Для разработчиков» и включаем опцию «Отладка по USB». Получаем доступ к консоли:

$ adb shell  $ adb shell pm list packages список установленных пакетов с помощью pm
$ adb install /путь до приложения.apk

для загрузки фотографий с карты памяти такую:

$ adb pull /sdcard/DCIM/Camera
$ adb /каталог/фильм.avi /sdcard/Video

Более того, совместив возможности ADB со знанием Linux-систем, можно делать и вовсе неожиданные вещи. Например, снять скриншот:

$ adb pull /dev/graphics/fb0

Правда, файл fb0 еще придется преобразовать в нормальное изображение с помощью ffmpeg (Linux):

$ ffmpeg -vframes 1 -f rawvideo -pix_fmt rgb32 -s 720x1280 -i fb0 fb0.png

Итак, команда adb shell открывает консоль Android. Это вполне стандартная Linux-консоль, но с не полным набором команд. Теперь для нас доступны все стандартные unix-команды. Например, копировать, перемещать и удалять файлы с помощью команд ср, mv и rm. Ходить по каталогам с помощью cd. Узнать версию ядра Linux, используя uname:

$ uname -а

Узнать, сколько прошло времени с последней перезагрузки:

$ uptime

Команда top как обычно покажет много интересного, в том числе, какое приложение грузит ось , df – отобразит кол-во свободного пространства на внутренней памяти и SD-карте. Доступны также стандартные Linux-инструменты для работы с сетевыми интерфейсами, такие как ifconfig, netcfg, netstat и iftop (показывающий используемые интерфейсы и количество прошедшего по ним трафика). Удаленные серверы можно попинговать с помощью стандартного ping, убить приложение — с помощью kill (предварительно посмотрев список запущенных процессов, используя команду ps). Отмечаю особенно полезность команд nice и renice, которые позволяют назначить низ¬кий приоритет исполнения для особо прожорливых приложе¬ний. Установим, например, для телефона низкий приоритет исполнения:

$ ps | grep phone  radio 726 129 539044 40908 ffffffff 401d7830 S com.android.phone  $ renice 5 726

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

$ Is /system/bin /system/xbin

Кроме стандартных Linux-команд, о которых можно узнать из любого справочника, в Android есть несколько своих специализированных инструментов. Но, чтобы использовать их, придется получить на смартфоне права root и, что немаловажно, перед запуском консоли заставить сервер ADB перезапуститься с правами root с помощью такой команды:

$ adb root

Команды pm и am Две наиболее важных и полезных Android-команды — это pm (package manager) и am (activity manager). Предназначены они для управления установленными пакетами и активностями запущенными приложениями. pm — это полноценный консольный менеджер пакетов по типу линуксовых rpm или deb. Он имеет простой синтаксис и с его помощью можно сделать следующее:

$ pm list packages

Указав флаг -s, мы увидим только системные приложения, а -3 вывод сторонних:

$ pm list packages -3

Смотрим пути установки пакетов:

$ pm list packages –f
$ pm list features

Управлять пользователями (пока бессмысленно из-за неполной реализации функционала в текущих версиях Android):

$pm list users  $pm create-user name_user  $pm remove-user name_user

6. Устанавливать и удалять приложения, а также очищать их данные:

$ pm install /sdcard/porno.apk  $ pm uninstall com.drweb  $ pm clear com.drweb
$ for р in /sdcard/apk/*; do pm install -s $p; done

Или, может быть, удалить все приложения сразу:

$ for р in `pm list packages -s`; do pm uninstall $p; done

Сделаем бэкап всех приложений на карту памяти:

$ FILES=`pm list packages -f | cut -d ':' -f 2 | cut -d '=' -f 1`  $ for f in $FILES; do cp $f /sdcard/backup; done
$ sh /sdcard/backup
$ am start -n com.android.settings/.Settings  $ am start -n com.android.browser/. BrowserActivity

А вот еще интересный пример. Запуск номеронабирателя с указанным номером (останется только нажать кнопку «звонок»):

$ am start tel:012-345-6789

2. Завершать приложения. В этот раз понадобится только полное имя пакета (которое можно получить с помощью pm):

$ am kill com.drweb

Чтобы убить все приложения, можно использовать такую команду (вот он, простейший таск-киллер):

$ am kill-all

3.Посылать широковещательные сообщения, которые будут приняты всеми приложениями:

$ am broadcast -a android, intent .act ion. ACTI0N_P0WER_C0NNECTED

4.Изменять DPI. Очень интересная функция, которая позволяет общесистемно изменить масштаб элементов экрана и текста. Например, если стандартный DPI смартфона составляет 320, следующая команда сделает текст и элементы более крупными:

$ am display-density 400

А такая — наоборот:

$ am display-density 240

Вернуть все обратно можно так:

$ am display-density reset

5. Переключаться между пользователями. Команда pm позволяет создать нового пользователя, а для переключения на него можно использовать am:

$ am switch-user 1
$ am broadcast -a android, intent .action.CAMERA BUTTON

2. Смартфон переведен в режим полета (и он действительно будет в него переведен):

$ am broadcast -a android, intent .action. AIRPLANE MODE --ez state true

3. Была подключена карта памяти (приводит к запуску сканера медиа):

$ am broadcast -a android.intent.action.MEDIA MOUNTED -d file:///sdcard

Из других интересных применений am можно назвать принудительный перезапуск домашнего экрана:

$ am start -a android.intent.action.MAIN -с android.intent.category.HOME

И открытие указанной ссылки в браузере:

$ am start -a android.intent.action.VIEW * -n com.android.browser/.BrowserActivity  'http://info-linux.ru’  
$ adb pull /data/арр

Рассмотрим еще одну небольшую утилиту –svc. В Android она позволяет управлять состоянием различных интерфейсов и питанием системы. С помощью svc можно сделать следующее: 1. Включить/выключить Wi-Fi:

$ svc wifi enable  $ svc wifi disable

2. Включить/выключить передачу данных по мобильным сетям: $ svc data enable

$ svc data disable

3.Включить/выключить отладку no USB (ADB):

$ svc usb setFunction adb

4.Заставить смартфон оставаться включенным при подключении к USB-nopтy/зарядке/Wi-Fi-сети или всегда:

$ svc power stayon usb  $ svc power stayon ac  $ svc power stayon wireless  $ svc power stayon true

продолжение следует полезные команды для Android

Автор: xvzL Просмотров: 21649

Рейтинг статьи: 724

image

Пользователи Android телефонов и планшетов, которые используют их на всю мощь, что-то постоянно модернизируют, знают что некоторые операции происходят в терминале. Чтобы пользоваться терминалом необходимо знать команды. В этой статье описаны команды терминала андроид и что они делают. Для большинства пользователей Linux все эти команды знакомы.Открываем терминал его нужно скачать здесь (Эмулятор Терминала) и мы видим:

su – команда su дает вам права Root, права администратора, то есть можно выполнять с устройством после этой команды все (до этого нет), также вам необходимо получить root на ваше android устройство.

pwd – показывает текущий каталог, в котором вы находитесь.

ls – команда показывает что находится в текущей директории, а именно файлы и директории.ПримерName_device:/ # lssystemdatamntbinитп…

ls -a – команда показывает что находится в текущей директории, а именно файлы и директории, но со скрытыми файлами.Примечание: Скрытые файлы, в отличие от Windows выглядят как .Name (точка и Имя файла)

clear – очистить экран терминала.

cd – команда для перехода в какую либо директорию (каталог).ПримерName_device:/ # cd systemName_device:/system #Примечание: Директория или Каталог означает Папкаcd .. – перейти в директорию уровнем выше

mkdir – команда создает директорию (папку).ПримерName_device:/sdcard # mkdir androidПримечание: Папка Name и name это две разные папки

rm – удаляетт файл.

rm -r удаляет каталог (Примечание: если вы не укажете параметр –r выдаст ошибку о невозможности удалить каталог).ПримерName_device:/sdcard # rm -r dom

rm -rf – удаляет файл и не выдает сообщения, если такого файла нет или нет прав на запись в него rm -rf – удаляет папки не выдавая сообщений.

cp – копирует файл.

cp -r копирует директорию.

mv – переименовывает файл.ПримерName_device:/sdcard # mv android ANDROID

touch – создание пустого файла.

cat – выводит текст находящийся в файле.ПримерName_device:/sdcard # cat skazka

tac – выводит текст находящийся в файле в обратном порядке (1 строка последняя, последняя первая).ПримерName_device:/sdcard # tac skazkaПримечание: если увидите перед строкой стоит знак # то параметр не обрабатывается

wget – скачивает файл по ссылке в текущую директорию.ПримерName_device:/sdcard # wgеt httр://hot_alena.avi

ps – выводит Ваши текущие активные процессы.

mount – монтирует (Подсоединяет).

umount – размонтирует.

date – выводит текущую дату и время.

cal – выводит календарь текущего месяца.

uptime – показывает сколько времени работает операционная система.

df – показать информацию об использовании дисков.

free – используемая память и swap.

free -m – полный объем, использованный объем и объем свободной памяти в Mb.

du – сколько места занимают ваши данные

halt – быстрое и корректное выключение системы

chmod – выставление прав доступа

image

Линуксоиды, на старт! Тема статьи, опубликованной на KV.BY, — расширение прикладных возможностей смартфонов на базе Android с помощью эмулятора терминала Termux.

Добро пожаловать в Termux!

Потребление контента, цифровых услуг, а также времяпровождение в месенджерах и социальных сетях — основное, для чего запрограммированы современные смартфоны. Что, например, подтверждают регулярные обзоры «12 бесплатных программ для Android» в KV.by.

Но хотелось бы не ограничивать себя пределами треугольника «соцсети — контент — услуги» и, например, воспользоваться на смартфоне прикладными программами с настольного ПК. Тем более в мобильных устройствах давно уже хватает необходимых и гигабайт, и гигагерц.

Однако заменить смартфоном даже простенький ноутбук так просто не получается. За последние десятилетия мы привыкли к дружественному графическому WYSWYG-интерфейсу в программах для десктопа. Однако на малодюймовых дисплеях смартфонов WYSWYG теряет свою дружественность. Десктопный «Фотошоп» со всеми его графическими панелями и меню, конечно, можно впихнуть на дисплей смартфона, но пользоваться им будет сложно.

А вот для интерфейса командной строки небольшого экрана хватает за глаза. К тому же система «Андроид» основана на ядре Linux, и пользоваться консольными утилитами здесь, можно сказать, сам Линус Торвальдс велел. Поэтому логично поискать какой-нибудь дружественный для смартфона эмулятор терминала, позволяющий на операционной системе Android устанавливать и запускать стандартные программы Linux с интерфейсом командной строки, и тем самым расширить прикладные возможности смартфона.

Сразу скажем, такой дружественный эмулятор терминала для «Андроида» уже найден. Называется он Termux.

image
Termux

Первыми Termux заприметили хакеры и те, кто себя к таковыми причисляет. Потому что с помощью этого эмулятора запускается джентльменский набор хакерских утилит: инструмент реверс-инжиниринга Radare2, брутфорсер Hydra, wifi-перехватчик Aircrack-ng, хакерский фреймворк Metasploit и другие. Неудивительно, что за Termux закрепилось звание лучшего карманного друга хакера.

image
Termux cMatrix

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

  • дружественный для мобильного устройства интерфейс
  • собственный репозиторий программного обеспечения
  • система дополнений (аддонов)

Ниже рассмотрим эти возможности Termux подробнее.

Установка

Для работы Termux требуется Android 5 и выше. Установка этого эмулятора терминала производится в одно нажатие с сервисов Google Play или F-droid. Будет загружено приложение размером чуть более 200 килобайт, которое сразу же готово к работе. Текущая версия приложения на момент написания статьи 0.66.

image
Приветствие Termux при запуске

Termux не требует настройки или какого-либо редактирования конфигурационных файлов. Также не потребуется для работы Termux прав суперпользователя (root). Эмулятор будет использовать ядро Linux и системную библиотеку libc (Bionic) установленной на смартфон системы Android.

image
Вывод screenfetch для Termux

Но так как операционная система Android не использует стандартную иерархию файловой систем для Unix/Linux, а также имеет особенности многопользовательского режима, то следует пояснить как и куда Termux устанавливается.

Все необходимые для работы с Termux каталоги и файлы устанавливаются в специальную для Android-приложений директорию /data/data во внутреннем хранилище устройства. В текущих версиях Termux корневой каталог этого эмулятора терминала будет расположен в каталоге /data/data/com.termux/files. Здесь будет находится каталог usr для устанавливаемых приложений и их настроек. Так же здесь будет создана домашняя директория home для пользователя Android c именем наподобие u0_a81. Выяснить имя пользователя Termux можно командой whoami, а командой env — полные пути глобальных переменных $PATH, $PREFIX, $HOME и другую информацию.

image
Вывод whoami, env

В Android-системах приложения обычно не видят файлы друг друга в каталоге /data/data. Чтобы иметь возможность редактировать файлы и с помощью программ Termux, и с помощью внешних программ Android, в домашнем каталоге эмулятора терминала можно создать классические ссылки (symlink) на общие папки во внутреннем хранилище смартфона, В комплект с эмулятором уже входит дружественный скрипт termux-setup-storage, после запуска которого в директории $HOME будет создан каталог storage, а в нём — ссылки на стандартные папки для общих данных DCIM, Downloads, Share, Pictures, Music, Movies. В результате, например, текстовые файлы, расположенные в этих каталогах, будет просто редактировать и с помощью Vim в Termux, и с помощью текстового редактора Total Commander или какого другого.

image
Внешние каталоги с помощью termux-setup-storage

Установка Termux на внешние SD-карты не поддерживается. По той причине, что, как правило, SD-карты отформатированы в файловой системе FAT, которая не предоставляет всех необходимых файловых атрибутов, необходимых для запуска стандартных Linux-приложений.

Интерфейс Termux

Termux является приложением для ОС Android и обладает всеми интерфейсными возможностями этой системы: поворот экрана, иконка в служебной панели, выделение текста, копирование/вставка через буфер обмена, ввод через экранную клавиатуру, красивые моноширные Android-шрифты.

Главной особенностью интерфейса Termux, делающий этот эмулятор дружественным для смартфона, можно смело назвать адаптивный режим изменения размеров шрифта при масштабировании экрана пальцами. Это когда текст при масштабировании пальцами не «вылазит» за пределы экрана, а перестраивается на другую строку,

image
Адаптивный режим в Termux

Адаптивный режим изменения размеров шрифта плюс поворот экрана — это очень удобная возможность подстроить для себя как обычный текстовой интерфейс в консоли, так и программы, использующие псевдографический интерфейс, табличный вывод или ASCII-графику. Не нужно в каждом из этих случаев лазить в меню с настройками шрифта.

image
Midnight Commander в Termux

Любой современный эмулятор терминала может запускать несколько консольных сессий, В каждой сессии можно запустить отдельную программу и переключаться между ними. Мультисессии, само собой, есть и в Termux, Новую консольную сессию можно запустить через меню, вызываемое горизонтальным свайпом по экрану слева направо, С левой стороны на дисплее появится окно со списком запущенных консольных сессий. В этом окне можно запустить новую сессию, переключиться на другую сессию. Также здесь можно явно вызвать экранную клавиатуру, если по каким-либо причинам она другим способом не вызывается.

Меню сессий в Termux

Пару слов об экранной клавиатуре. Для работы в терминале Linux-системы необходимы специальные клавиши — Tab, Alt, Ctrl, вверх-вниз. Termux в нижней части экрана имеет свою специальную экранную панельку с этими специальными символами. Поэтому совсем необязательно устанавливать клавиатуру наподобие Hacker’s Keyboard, а довольствоваться стандартной экранной клавиатурой Android.

Специальные клавиши в Termux

Само собой, в Termux поддерживаются внешние USB-, Bluetooth-клавиатуры.

Единственное, что в интерфейсе Termux может вызвать некоторое замешательство и лёгкую панику — это неочевидный вызов главного меню, где находится опция выхода из сессии терминала. Главное меню называется «more», и оно объединено со стандартным меню «copy/paste», которое вызывается длительным нажатием на экран смартфона. Так что для Termux вполне можно переиначить старый анекдот о Vim: я постоянно работаю в Termux, потому что не знаю как из него выйти. Правильный выход из текущей сессии терминала — это набрать команду exit.

Программы

Termux — это больше чем просто эмулятор терминала. Практически это дистрибутив Linux, потому что к нему имеется собственный репозиторий прикладного программного обеспечения. Репозиторий Termux содержит более 500 программных пакетов, скомпилированных и готовых к установке для этого эмулятора терминала. Это, конечно не Debian/Linux, в репозитории которого около 30 000 пакетов. Тем не менее в репозитории Termux можно подобрать себе джентльменский набор ПО не только для хакеров:

  • Программирование: Сlang — компилятор С/С++, Python, Ruby, Rust, Lisp;
  • Редактирование текста, IDE: Emacs, Vim/Neovim, Nano, Joe, Ne;
  • Командные оболочки: BASH (по умолчанию), ZSH, FISH, TCSH;
  • Web-разработка: Apache, Nginx, PHP, MariaDB;
  • Изображения, звук, видео: Ffmpeg, Imagemagick, G’MIC, Graphicsmagick, Play-aydio, Music Player Daemon, Dcraw;
  • Удалённое администрирование: Openssh, Dropbear, SFTP, MOSH, Rsync.
MariaDB в Termux

Установка пакетов осуществляется через специальный пакетный менеджер pkg, который является «обёрткой» (враппером) для пакетного менеджера apt. После установки Termux следует обновить пакетную базу:

$ pkg update

$ pkg upgrade

Поиск доступного пакета в базе:

$ pkg search [package name]

Установка пакета:

$ pkg install [package name]

Удаление пакета:

$ pkg uninstall [package name]

Пакеты в репозитории Termux обновляются методом rolling release. То есть программы обновляются постоянно по мере выхода их новых версий. Список готовых к обновлению пакетов можно посмотреть командой apt list —upgradeable. Список всех установленных пакетов выдаёт команда dpkg -l.

Для сборки собственных пакетов существует и специальный тулчейн для Docker, который содержит необходимое для компиляции приложений Termux из исходных кодов. Но данная возможность — тема отдельной статьи.

Трудности

Трудности тоже в Termux присутствуют. Куда ж без них! Они обусловлены, во-первых, Bionic — системной Си-библиотекой для Android. В Bionic не реализованы многие функции стандартной libc. Поэтому, например, нельзя сгенерировать нужный региональный стандарт (локаль) и связанные с ним переменные окружения с помощью locale-gen, в результате чего в Termux нельзя видеть кодировку отличную от Юникода,

Во-вторых, это проблемы роста Termux как проекта. которому есть куда развиваться в отношении поддержки пакетов. Сообщество Termux не такое большое как сообщество Debian и поддержки пакетов уровня крупных дистрибутивов здесь пока нет. Так установочные скрипты, которые осуществляют автоматическую настройку программы после её установки, как это реализовано в пакетах Debian. в пакетах из репозитория Termux могут отсутствовать. И, например, чтобы запустить Apache+PHP+MariaDB придётся почитать инструкции и в ручном режиме их выполнить.

Для многих чтение мануалов и инструкций — это существенный минус к дружественности.

Дополнения (аддоны)

Для Termux имеется дополнения в виде отдельных приложений, которые нужно скачивать и устанавливать отдельно (В Google Play некоторые аддоны не бесплатны). Эти дополнения расширяют возможности Termux. Следует иметь в виду, что эти дополнения нужно устанавливать с того же ресурса, с которое была загружена основная программа — с Google Play или же с F-droid — так как на разных ресурсах установочные пакеты программы имеют разные цифровые подписи.

Termux: Styling. Как легко догадаться по названию, с помощью этого дополнения легко поменять внешний вид Termux. Изменить можно цвета фона и шрифта, а также сам шрифт. Аддон после установки вызывается через главное меню Termux.

Светлая тема Termux

Termux: API. Замечательное дополнение, которое предоставляет из командной строки доступ к функциям системы Android. То есть с помощью специальных команд можно прямо из терминала получить доступ к функциям фотокамеры, датчиков, свойствам дисплея, списку телефонных вызовов, СМС-сообщениям, системному буферу обмена, GPS, WiFi и многому другому, Кроме установки самого аддона, следует ещё специальный пакет termux-api из репозитория Termux. Примеры команд:

  • termux-battery-status — статус батареи
  • termux-contact-list — вывод адресной книги
  • termux-camera-photo — сделать фотографию
  • termux-telephony-call — сделать телефонный звонок

В целом, дополнение предоставляет около сорока команд для доступа к функциям системы Android.

Статус батареи через Termux: API

Termux: Widget. Дополнение предоставляет виджет для запуска скриптов прямо с домашнего экрана Android. Скрипты следует размещать в специальной директории $HOME/.shortcuts. После чего в окне виджета они появятся в виде списка.

Termux: Widget

Думаю, на этих трёх примерах характер дополнений для Termux понятен. Поэтому знакомство с остальными аддонами можно оставить и для самостоятельно изучения.

Приложения для X-Windows

Репозиторий приложений для Termux содержит и программы для работы в графическом оконном режиме X-Windows. Но запустить их можно только установив внешний отдельный X-server, который не входит в состав Termux. Поэтому в этой статье только отметим такую возможность, а подробности оставим для других обзоров.

Программы с графическим интерфейсом

Termux Open Source

Termux является каноническим проектом со свободным исходным кодом, который расположен на GitHubи распространяется по лицензии MIT. Проект развивается открытым сообществом разработчиков и пользователей. Сюда можно отправить запрос на новый пакет или новые возможности для Termux, а также сообщить о проблемах и сбоях программы. Приоритет у разработчиков отдаётся устранению ошибок.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Citilink-kabinet.ru
Добавить комментарий