Операционная оболочка для мобильных устройств Android не была создана с нуля. Разработчики взяли ядро Linux, немного доработали его и получили всем известную на сегодняшний день систему. С прообразом, мобильную платформу роднит только ядро и несколько программ для управления аппаратной частью. Но как известно, Linux многие используют именно из-за широких функциональных возможностей, в нем можно делать практически все. На Андроиде же подобное возможно только после получения ROOT-прав, что автоматически лишает устройство гарантии. В этой статье будет рассмотрена одна важная функция – эмулятор терминала для Аndroid.

Как получить ROOT права: Видео

С чего начать

В первую очередь необходимо получить ROOT-права на своем гаджете. Только тогда можно будет использовать всем преимущества терминала. Но можно этого и не делать. Опишем инструкцию использования функцией:

Один момент, который хотелось бы отметить особо, существует Android Terminal Emulator увеличение памяти. Есть команда command rm, которая может удалить любые файлы (при наличии ROOT-доступа). Сделать такое не всегда возможно через стандартные средства. Последнее является дополнительным аргументом за получение полного доступа и установки терминала. Кстати есть и другие программы с такими функциями, например, busybox .

Как установить кастомную прошивку на Android: Видео

Эмуляция входящего вызова на эмуляторе

При всей широте функциональных возможностей, многие пользователи задают вопрос – как эмулировать входящий вызов в эмуляторе Android. Сделать это лучше всего на компьютере. Рассмотрим на примере Android SDK. Для этого, необходимо зайти в меню «Контроль над эмуляцией». Выбрать пункт «Телефон», ввести номер, поставить галочку возле «Voice» и нажать «Звонить». Ответить или отменить звонок можно с помощью зеленой кнопки эмулируемой оболочки. Такая процедура актуальна только для установленного и настроенного на компьютер эмулятора.

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

Вариант 1 - Установка приложения на Android

Самый простой способ получить доступ к командой строке, это установить специальное приложение. Подобных программ полно в официальном магазине Play Маркет. Достаточно вбить в поиске слова или . Практически любое из найденных приложений позволит воспользоваться командной строкой. Стоит правда учесть, что для доступа к системному разделу вам придется предварительно получить Root-права.

Варианта 2 - Использование компьютера с ADB

Вы также можете воспользоваться персональным компьютером, однако вам предстоит выполнять ряд несложных действий. Заранее установите соответствующий драйвер для вашего гаджета. После этого необходимо будет и активировать отладку по USB. Последним шагом станет установка

Android создан на базе ядра Linux, и для него, как для настоящей unix-подобной операционной системы, есть консоль, а в ней, естественно и команды терминала.

Получить консоль можно следующими способами:

  • Установить эмулятор терминала .*
  • Соединиться с аппаратом утилитой adb выполнив adb shell;
  • Установить OpenSSH сервер и подключиться ssh-клиентом;

Так же стоит отметить, что терминал по-умолчанию есть во многих кастомных прошивках, таких как CyanogenMod.

Стандартный интерпретатор команд терминала несколько неудобен (до версии Android 4.0) - он не поддерживает автодополнение, вызов предыдущей команды и прочие полезные вещи, имеющиеся у нормального терминала. Решить эту проблему можно установкой busybox и использованием встроенного в него интерпретатора ash.

В Android доступны многие, но не все стандартные программы UNIX . Список тех, которые есть на вашем устройстве вы можете получить выполнив ls -l /system/bin/ /system/xbin

Помимо стандартных команд UNIX в Android присутствуют некоторые дополнительные программы. Среди них есть logcat - средство для просмотра логов приложений, pm - утилита для управления пакетами (package manager), am - утилита для управления окнами (activity manager).

Вот некоторые консольные команды:

  • pm list packages - список установленных программ;
  • pm install PATH - установить программу из apk файла;
  • pm uninstall PACKAGE - удалить пакет из системы;
  • netcfg - позволит посмотреть сетевые настройки;
  • am start -n com.android.settings/.Settings - запустить окно настроек;
  • am start -n com.android.browser/.BrowserActivity - запустить браузер;
  • am start tel:210-385-0098 - показать окно набора данного номера;
  • bmgr - backup manager, управление бэкапами;
  • dumpstate - полный дамп состояния телефона;
  • dumpsys - дамп состояния системных сервисов;
  • getevent - информация об устройствах ввода и дамп событий на устройствах ввода;
  • iftop - показывает использование сети процессами (top для сети);
  • ime - управление методами ввода;
  • service - управление сервисами;
  • service list - список сервисов;
  • svc - управление wifi, мобильным подключением и питанием;

С помощью am можно запустить окно произвольного приложения (зная имя его "активити").


Команды ADB
ADB, или Android Debug Bridge - многофункциональная утилита для соединения с эмулятром Android или реальным девайсом. Работает в командной строке. Находится в Android SDK.

Вот основные команды ADB:

  • adb shell - получить шелл в Android. Конечно, полноценным *nix шеллом это не является, но после установки busybox оно как-то его напоминает. Альтернативным методом получения шелла является SSH сервер для Android . Шелл нужен для того, чтобы выполнять команды терминала .
  • adb shell - выполнить команду в Android;
  • adb emu - выполнить команду в эмуляторе;
  • adb push - залить файл или директорию на устройство;
  • adb pull [] - копировать файл или директорию с устройства;
  • adb install - установить пакет;
  • adb uninstall - удалить программу;
  • adb connect - соединиться с Android через сеть. Требует некоторой подготовки устройства, а именно настройку

Терминальные команды актуальны для всех ОС, построенных на базе Linux(Unix), в том числе и для Android.
Чтобы в ОС Android можно было использовать нижеприведенные команды, нужно получить Root права , установить эмулятор терминала и приложение busybox (именно в этом приложении содержатся все нижеприведенные команды).
Для того, чтобы вывести список всех поддерживаемых busybox "ом команд, нужно набрать в эмуляторе терминала команду busybox . Это и есть shell.

Получение справки о командах

man
Описание команды или файла конфигурации. Синоним info. Описание листается стрелками, выход клавишей q.
Пример: man fstab
apropos
Поиск по описаниям man.
Пример: apropos iso

Работа с файлами и папками

cd Смена текущей папки. Пример: cd ~ или просто cd всегда переходит в домашний каталог текущего пользователя. cd /etc - переход в папку /etc
cp Копирование файлов и каталогов из одного в другие каталоги ls Выводит список файлов и папок в порядке, указанном с помощью опций. В отличие от dir подсвечивает файлы по типу. С параметром -l выводит дополнительную информацию о файлах: права, владельца, дату создания и т.д. ls без параметров выводит содержимое текущей папки. ls /proc выводит все работающие процессы mv Перемещение или переименование файлов. Если в качестве аргументов заданы имена двух файлов, то имя первого файла будет изменено на имя второго. Пример: mv file1 file_1 - переименовывает файл
Если последний аргумент является именем существующего каталога, то mv перемещает все заданные файлы в этот каталог.
Пример: mv file ./dir/ - перемещает "file" в "dir/file" относительно текущего каталога rm Удаление файла. С ключем -R удаляет в подкаталогах. Пример: rm -R ~/killme mkdir Создание каталога. pwd Выводит текущий путь rmdir Удаление пустого каталога. touch Создание пустого файла. Пример: touch /home/primer - создает пустой файл /home/primer

Права доступа к файлам и папкам

chown Смена владельца. chgrp Смена группы владельца. chmod Смена прав. Пример: сhmod -R 777 /var/www дает доступ всем ко всем файлам и каталогам ниже /var/www.

Просмотр файлов

cat Вывод файла. Пример: cat /etc/fstab . tail Вывод конца файла. Удобно при работе с логами и большими файлами. Пример: tail /var/log/messages .

Утилиты для работы с архивами

ar, bzip2, dpkg, gzip, rpm, tar, zip

Утилиты для обработки содержимого файлов

awk, ed (текстовый редактор), patch, sed, vi (текстовый редактор).

Редактирование файлов

nano и pico — наиболее вменяемые редакторы, работающие в текстовом режиме прямо в терминале. Чтоб изменить файл /etc/fstab, например, надо набрать nano /etc/fstab . Выход из редактора CTRL+X. Редакторы vi и vim предназначены для работы слепым десятипальцевым методом.

Команды монтирования и отмонтирования дисков

mount [параметры] устройство путь Монтирование устройства. Пример: mount /dev/sda1 /mnt/Disk1 . umount устройство/путь Размонтирование. Пример: umount /mnt/Disk1 . eject Размонтирование и выброс CDROM.

Работа с ядром и модулями ядра (драйверами устройств)

lsmod Показывает список всех модулей, загруженных в ядро и зависимости между ними. insmod rmmod modprobe имя-модуля [параметры] Установка модуля, настройка его автозагрузки. Результат можно посмотреть в системном логе. Модули хранятся в /lib/modules в файлах с расширением.ko («kernel object») Пример: modprobe radio-aztech io=0x350 . modinfo имя-модуля Информация о модуле, в том числе и список параметров. modconf Удобная программа для просмотра всех модулей по категориям, включения и отключения модулей. По умолчанию как правило не установлена, в Debian, Ubuntu и Kubuntu устанавливается с помощью одноименного пакейджа командой apt-get install modconf .

Управление процессами:

ps – выводит на экран информацию о текущих активных процессах.
top – выводит на экран информацию об активных процессах, а также о системных ресурсах.
kill pid – убивает процесс, id которого равно указанному значению processed.
killall process – убивает все активные процессы с именем process.
bg – выводит на экран перечень остановленных и фоновых задач; продолжает выполнение остановленной задачи в фоне.
fg – выводит на передний план последние активные задачи.
fg n – выносит задачу с указанным именем (в данном случае – n) на передний план.

Работа с датой и временем:

adjtimex - позволяет изменять в ядре переменные времени с целью корекции скорости хода системных часов

date - настройка системных часов

Hwclock - настройка аппаратных часов

Утилиты работы с системными учетными записями

adduser, addgroup, deluser, delgroup, login, passwd, su

Сетевые команды

arp, arping, dnsd, ftpget, ftpput, httpd (с поддержкой авторизации, CGI), ifconfig, inetd, netstat, nslookup, ping/ping6, route, telnetd, tftp, traceroute, udhcpd, wget.

ifconfig - настройка сетевого интерфейса wget - скачивание файла по HTTP/FTP.

Другие полезные консольные программы и команды Linux

hdparm Управление жесткими дисками и приводами компакт-дисков. Пример: hdparm -E8 /dev/cdrom снижение скорости вращения CDROM. watch Периодическое выполнение команды. Пример: watch -n 60 hdparm -E8 /dev/cdrom раз в минуту тормозить диск чтобы привод не разгонял его и не шумел во время просмотра DVD. pppconfig Простая и надёжная программа настройки Dial-Up выхода в Интернет по модему. pon, poff и plog — команды установления, разрыва и просмотра лога соединения соответственно. pppoeconf Аналогично, настройка выхода в Интернет через ADSL-модем. whoami Позволяет узнать имя пользователя, если забыл iftop команда для просмотра сетевых подключений с консоли netstat Команда показывает содержимое различных структур данных, связанных с сетью, в различных форматах в зависимости от указанных опций. iwconfig вывод информации о wi-fi сетевых интерфейсах iwlist scan вывод информации о точках доступа в радиусе действия free свободная память

Суперпользователь root

Обладает неограниченными правами. Использование прав суперпользователя необходимо при установке драйверов, смене важных параметров Linux. Пароль пользователя root обычно запрашивается при установке дистрибутива. Тогда сразу после установки в систему можно войти с указанным паролем и логином root .

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

Однако такие дистрибутивы как Ubuntu не создают суперпользователя при установке. Войти под пользователем root или использовать su не удастся. Права суперпользователя в этих дистрибутивах можно получить командой sudo . Ее необходимо писать перед каждой командой, для которой требуются права суперпользователя. Например sudo nano /etc/fstab . После первой команды sudo необходимо ввести пароль текущего пользователя. Использовать sudo могут пользователи, состоящие в группе sudo или admin (в зависимости от дистрибутива Linux), что для первого пользователя Ubuntu выполняется автоматически при установке дистрибутива.

Особенности работы терминалов Linux

Записанные в файл команды выполняются командой sh имя_файла .

Стандартные команды в Linux отличаются от команд DOS и Windows -- обычно они короче. При работе с командной строкой как обычно мигающий курсор обозначает позицию ввода текста, командная строка начинается с текущего пути и имени компьютера, за которым следует символ $, % или #. Последний означает, что команды будут выполняться от имени суперпользователя root. Символ ~ означает путь к текущей домашней директории пользователя.

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

В любом терминале Linux стрелками вверх/вниз на клавиатуре можно листать историю команд, которая сохраняется между сеансами работы и различается для разных пользователей и хостов (в случае подключения из командной строки к другому компьютеру по ssh). Набранное частично команда или имя файла или каталога в текущей директории может быть автоматически дописано клавишей TAB. Если найдено более одного варианта и однозначно продолжить команду по TAB невозможно, то выводятся все подходящие варианты.

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

Shell Скриптинг

Последовательность комманд может быть оформлена в виде исполняемого файла. Это скрипт.

Первая строка скрипта описывает стандартный путь переменных

FЕсли у вас есть смартфон на 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), с помощью него можно запустить и остановить любое приложение или сервис. Например запуск приложения настройки:

am start -n com.android.settings/.Settings

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

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

badblocks /dev/block/mmcblk0 > /sdcard/badblocks

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

badblocks -v /dev/block/mmcblk0

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

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

cat /sdcard/text.txt

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

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

chmod 777 /sdcard/file

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

chown root /sdcard/file

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

cmp /sdcard/file1 /sdcard/file2

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

cp /sdcard/file1 /sdcard1/

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

Sat Nov 14 13:44:56 EET 2015

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

Например:

dd /dev/block/mmcblk0 /sdcard/img.iso

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

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

df -h /dev/block/mmcblk1

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 - просмотр размера файла.

du /sdcard/file1

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

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

fsck_msdos /dev/block/mmcblk1p1

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

cat ~/sdcard/file | grep terminal

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

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

ifconfig wlan0 down

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

ls /sys/class/net

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

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

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

ln /sdcard/file /sdcard/file2

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

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

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

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

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

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

md5 /sdcard/filename

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

mkdir имя_папки

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

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

mount -t ext2 /dev/block/mmcblk1p1 /mnt/sdcard

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 - удалить папку.

rmdir /sdcard/dirname

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

rmmod имя_модуля

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

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

touch /sdcard/file

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

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

screenshot /sdcard/screenshot.png

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

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

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

Об авторе

Основатель и администратор сайта сайт, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.