Busybox команды для линукс

Обновлено: 07.07.2024

Системные администраторы и пользователи UNIX/Linux-систем, несомненно, привыкли к работе со своей любимой командной оболочкой и к стандартным программным средствам. Но их повсеместное использование не всегда возможно. И тогда на помощь приходит BusyBox – упрощенный shell с набором компактных системных средств.

BusyBox: что это такое и зачем вообще нужно?

Несмотря на безудержный рост графических оболочек и «дружелюбных» интерфейсов, представить себе UNIX без командной строки и основных утилит в наши дни невозможно. Многочисленные интерпретаторы и базовые системные утилиты не стоят на месте, растут и развиваются, что неизбежно ведет и к увеличению их объема. В то же время существуют сферы деятельности, в которых компактность любых приложений по очевидным причинам очень важна, например, во встраиваемых устройствах. Вместе с тем во многих случаях не требуется значительная часть той функциональности, которая присуща базовым утилитам «общего назначения».

Для решения этих проблем еще в середине 90-х Брюсом Перенсом (Bruce Perens) был создан пакет BusyBox [1]. Сейчас проект позиционируется как «швейцарский нож для встраиваемых Linux-систем» и в первую очередь ориентирован на использование в небольших дистрибутивах GNU/Linux. Распространяется под второй версией лицензии GNU GPL.

BusyBox представляет собой единственный исполняемый файл, при запуске которого загружается полноценный командный интерфейс. Как гласит официальная документация BusyBox, для формирования минимальной версии GNU/Linux к этому достаточно добавить лишь ядро ОС и каталоги /etc, /dev.

Бинарные пакеты с BusyBox для популярных дистрибутивов GNU/Linux доступны в соответствующих репозиториях, а архив с исходниками – на сайте проекта [2]. В статье рассматривается релиз BusyBox v1.5.0. Одна из главных целей, которую преследуют разработчики BusyBox, – оптимизированность и компактность кода – расчет на ограниченность памяти. Это не только вновь говорит о плюсах его использования во встраиваемых устройствах, но и хорошо сочетается с другим подходом в духе UNIX way: высокий уровень настраиваемости (в бинарный файл BusyBox можно включить только необходимые компоненты).

Еще на стадии компиляции (а точнее, до самого процесса сборки) можно выбрать только те базовые утилиты, которые нужны. Реализовано это в стиле настройки ядра Linux. Вместо более распространенного среди собираемых с automake приложений способа в виде скрипта «configure» для предварительной конфигурации BusyBox нужно выполнить одну из следующих команд:

Аргумент «config» инициирует запуск «вопросника» со списком доступных опций и базовых утилит, предлагающего проставлять «Y» или «N» на месте нужных и ненужных возможностей соответственно.

Аргумент «menuconfig» вызывает более удобную конфигурацию в виде меню с интерфейсом на базе curses (см. рис. 1).

Рисунок 1. Установка BusyBox: «make menuconfig» на манер Linux-ядра

Аргумент «defconfig» автоматически включает все доступные опции, подготавливая к сборке BusyBox «общего назначения».

Так же, как и в случае с ядром Linux, после настройки создается конфигурационный файл .config, к которому можно затем всегда возвращаться командой:

Это актуально при переходе на более новую версию BusyBox со старой конфигурацией (чтобы при настройке работать только с появившимися в очередном релизе опциями).

По умолчанию, если до вызова «make menuconfig» не существовал файл .config, make автоматически предварительно запускается с аргументом «defconfig». Таким образом, пользователю останется только отключить ненужные возможности. Предусмотрен и обратный вариант: запуск make с «allnoconfig» отключает все опции, чтобы после этого можно было выбрать только то, что нужно.

Далее все традиционно:

$ sudo make install

Работа с BusyBox

Запуск оболочки BusyBox можно осуществить командой:

Для разового вызова какой-либо функции (как правило, одна функция BusyBox ограниченно реализует возможности одной из утилит из состава GNU coreutils, util-linux и других стандартных пакетов) можно воспользоваться командой:

$ busybox <функция> [аргументы]

То есть, например:

покажет в текущей оболочке (например, bash) результат выполнения команды «ls -l /» в BusyBox (см. рис .2).

Рисунок 2. BusyBox в работе: ls

Полный список доступных функций в установленной версии BusyBox можно посмотреть в выводе команды «busybox» без аргументов. Просмотр помощи по конкретной функции осуществляется так:

$ busybox --help <функция>

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

Помимо альтернативного набора coreutils (ls, cat, mv, cp, rm, chmod, df, ln, date, wc, nice, test. ) в состав BusyBox входит и множество других программ.

Среди них, во-первых, стоит выделить наличие нескольких минималистских командных оболочек: ash (60 Кб; ответвление от dash из Debian, основанного на ash из NetBSD; рекомендован для использования с BusyBox), hush (18 Кб; понимает грамматику Bourne shell), lsh (всего 10 Кб; только самый простой функционал), msh (30 Кб; minix shell).

Для работы с архивами есть такие утилиты, как tar, gzip, bzip2, ar, zip, rpm, dpkg. Для обработки содержимого файлов есть как awk, sed, patch, так и текстовые редакторы ed и vi.

Рисунок 3. Исполнение элементарных скриптов в BusyBox

Кроме того, примечательны реализации hdparm для просмотра/установки параметров жесткого диска, syslogd для ведения логов, средств работы с системными учетными записями (adduser/addgroup, deluser/delgroup, login, passwd, su), системы init.

Особого смысла в перечислении всех функций BusyBox не вижу, поэтому ограничусь простой статистикой. В моей сборке BusyBox из портежа Gentoo Linux представлена 241 функция (но в нее входит далеко не все, что реализовано в рамках этого проекта). Если рассматривать для примера ls, то в версии BusyBox для этой утилиты доступно 26 флагов, а в оригинальной в моем случае (ls из GNU coreutils 6.7) – 55 (не считая «помощи» и «версии»). Среди отсутствующих флагов в первой можно выделить: -Q (названия в кавычках), -m (список через запятую), -U и -f (вывод списка без сортировки). Другие, на мой взгляд, еще менее значительны. Общие тенденции, думаю, очевидны.

Рисунок 4. Сетевые средства в «make menuconfig» BusyBox

Насколько существенно отсутствие тех или иных возможностей, определяется общими предъявляемыми требованиями и конкретными задачами. По субъективным же впечатлениям, в BusyBox-редакциях базовых утилит представлены все основные, т.е. повседневно используемые (большинством в большинстве же случаев) возможности. Конечно, большинство – не все, и задачи бывают разные, но в целом – заслуга авторов налицо. Им действительно удалось отобрать необходимое.

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

И со своими задачами BusyBox справляется отлично. Вместе с тем проект активно развивается: с января 2006 года уже вышло 16 релизов, в 5 из которых были представлены значительные нововведения (версии 1.x.0). Другим показателем роста BusyBox является тот факт, что все больше разработчиков в своих продуктах предпочитают его применение другим возможным вариантам.

Где используется BusyBox

BusyBox нашел применение в таких системах, как Familiar Linux (для КПК) и MoviX (популярный компактный дистрибутив с набором мультимедийных Open Source-решений), в установщиках Debian, Gentoo, Red Hat, Mandriva и других проектов, а также во многих Linux-основанных устройствах (Sharp Zaurus, роутеры, AP. ).

Busybox по сути является набором консольных утилит Linux систем. Необходим, например, для работы app2sd или программ для разгона или чего-нибудь подобного, что требует подключения сторонних модулей ядра. В большинстве кастомных прошивок он уже встроен.

Для функционирования программы необходимы права root пользователя.

Мини-FAQ по программе

Как с помощью этой программы разогнать процессор?
-Никак. Busybox нужен для некоторых программ, выполняющих разгон. Вопросы по разгону задавайте в топике своего аппарата.

-Как узнать установлен ли Busybox и какая версия?
-Устанавливаем Android Terminal Emulator, пишем в нем busybox, если он установлен, то будет написана версия и выйдет краткая справка по коммандам.

- Для чего нужны команды busybox и что такое "Терминал"
- Если вы не в курсе, что это такое, то вам это не нужно, поверьте на слово. Но для развития полезно. Android Terminal Emulator. Для более продвинутых - Better Terminal - освоить сложней, но больше полезностей. Есть еще терминал основанный на собственном методе Кевина Бона, использующий не busybox, а kbox, никому пока ранее неизвестный автор сделал нечто новое и привлекательное, так как его терминал работает на девайсах без рута. По поводу команд. Если вы новичок, то стоит заглянуть в гугл-поиск и вбить - "команды терминала linux" или android. Команды нужны исключительно для удобства управления системой и если вы обычный пользователь, вам это не нужно в повседневной жизни. Но сам busybox необходим в основном программам требующих рут права, для правильного функционирования.

- Можно ли удалить приложение после установки busybox?
-Да.

Внимание!
1) В CyanogenMod и MIUI BusyBox уже установлен.
2) Почти во всех кастомных прошивках BusyBox уже установлен. В редких случаях обновление busybox может убить прошивку или привести к неработоспособности некоторых функций, программ.
3) Убедительно советую перед установкой делать android бэкап системного раздела.
4) Прочитать перед установкой:

Требования

Должно быть 3 мегабайта свободного места в каталоге /system
Если вы не в курсе, не делаете этого, так как вам это 100% не нужно!
Этот busybox исключительно для профи.

Чистая установка или если программа уже стоит

0. Удалить на карте файлы: "busybox-stericson" "toolbox-stericson", stericson-ls если есть. Зайти в приложения/управление/сделать остановку программы/удалить данные.
1. Установите программу busybox по ссылке внизу или если имеется более новую. Сам инсталлятор.
2. Положите busybox на карту памяти в любое, удобное для вас место. Запустите программу и дождитесь окончания сканирования.
3. Выберите кастомную установку и укажите путь у файлу.
4. Выберите обязательно каталог /system/bin
5. Поставьте галочку на чеке: Clean Mode
6. Выберите Install, а затем Smart install
7. Дождитесь конца установки и перезагрузите аппарат
8. Зайдите снова в программу и дождитесь окончания сканирования.
9. Поставьте галочку на чеке: Replace All
10. Выберите Install, а затем Smart install.
11. Перезагрузить телефон. И удалить лишнее руками (профи знают)

Простая установка

1. Установите программу busybox из шапки или если имеется более новую. Сам инсталлятор.
2. Положите busybox на карту памяти в любое, удобное для вас место.
3. Запустите программу и дождитесь окончания сканирования.
4. Выберите кастомную установку и укажите путь у файлу
5. Выберите Install, а затем Normal install
6. Нужные аплеты добавить в командной строке или рут эксплорером создать симлинки.

Что такое симлинк?

Симлинк это - символическая ссылка на указанный файл, то есть ярлык для выполнения команд системы. Как выглядит симлинк на busybox ? - смотрим скриншот, если заглянуть в папку system/xbin у файлов есть стрелка вправо указывающая на busybox - это и есть симлинк.


Какие симлинки должны быть в папке system/bin и как их восстановить?

Раз у многих стоят проблемные моды, проверяем наличие основных команд toolbox в папке system/bin Если нет симлинка, восстанавливаем командой:

ln -s toolbox /system/bin/ симлинк

в adb или через терминал на телефоне. Пример:

ln -s toolbox /system/bin/chown

Если вам не удобно удалять лишние симлинки busybox руками, это можно сделать, так же командой:

rm /system/xbin/ симлинк

смотрим путь. В данном случае симлинк удаляется из папки xbin. Можно в команде изменить путь на bin.
Так же, напоминаю тем, кто не знает: Команды busybox не должны повторять команды toolbox. Это означает, что если команда busybox имеется, то ее надо удалить. Основные команды прошивок читайте или спрашивайте в темах своей модели аппарата.

Основные команды андройда - Симлинки

cat
chmod
chown
cmp
date
dd
df
dmesg
getevent
getprop
hd
id
ifconfig
iftop
insmod
ioctl
ionice
kill
ln
log
ls
lsmod
mkdir
mount
mv
nandread
netstat
newfs_msdos
notify
printenv
ps
reboot
renice
rm
rmdir
rmmod
route
schedtop
sendevent
setconsole
setprop
sleep
smd
start
stop
sync
top
umount
vmstat
watchprops
wipe

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

Команды для работы с файлами

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

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

Права доступа на файлы в BusyBox

chmod 640 file – замена прав доступа файла file на 640. Права назначаются раздельно для пользователя,
группы и для всех остальных сложением:
4 – чтение ®
2 – запись (w)
1 – исполнение (x)

chmod 777 – чтение, запись, исполнение для всех пользователей
chmod 751 – чтение, запись, исполнение для владельца; чтение, исполнение для группы;
и только исполнение для остальных пользователей.

Дополнительные опции можно посмотреть набрав команду - man chmod

Системная информация в BusyBox

date – вывести текущую дату и время роутера
cal – вывести календарь на текущий месяц
uptime – показать текущий аптайм (время работы системы с момента её загрузки)
w – показать пользователей онлайн
whoami – имя, под которым вы залогинены
finger user – показать информацию о пользователе user
uname -a – показать информацию о ядре
cat /proc/cpuinfo – информация о процессоре
cat /proc/meminfo – информация о памяти
man command – показать мануал для команды command
df – показать информацию о использовании дисков
du dir – вывести “вес” каталога dir
free – использование памяти и swap
whereis app – возможное расположение программы app
which app – какая app будет запущена по умолчанию

Использование SSH в BusyBox

ssh user@host – подключится к host как пользователь user
ssh -p port user@host – подключится к узлу host на порт port как пользователь user
ssh-copy-id user@host – добавить ваш ключ на узел host для пользователя user чтобы включить вход
логина без пароля и по ключам

Как осуществляется поиск в BusyBox

grep pattern files – искать pattern в файле files
grep -r pattern dir – искать рекурсивно pattern в директории dir
command | grep pattern – искать pattern в выводе command
locate file – найти все файлы с именем file

Процессы архивации при наличии установленных tar и gzip пакетах в BusyBox

tar cf file1.tar files1 – создать tar-архив с именем file1.tar содержащий файл files1
tar xf file1.tar – распаковать архив file1.tar
tar czf file1.tar.gz files1 – создать архив file1.tar.gz со сжатием Gzip
tar xzf file1.tar.gz – распаковать архив tar с Gzip сжатием
tar cjf file1.tar.bz2 – создать архив file1.tar.bz2 со сжатием Bzip2
tar xjf file1.tar.bz2 – распаковать архив tar с Bzip2 сжатием
gzip file1 – сжать file1 и переименовать в file1.gz
gzip -d file1.gz – разжать file1.gz в file1

Настройка сети в BusyBox

ifconfig – показать настройки найденных сетевых интерфейсов
ping host – пропинговать узел host и вывести результат
whois domain – получить информацию whois для домена domain
dig domain – получить DNS информацию для домена domain
dig -x host – реверсивно искать информацию DNS об узле host
wget file – скачать файл file
wget -c file – продолжить остановленную или оборванную закачку файла file

Установка\удаление программ из пакетов в BusyBox

/opt/bin/ipkg-opt install название программы/пакета (установка)
/opt/bin/ipkg-opt remove название программы/пакета (удаление)
dpkg -i pkg.deb – установка пакета (Debian)
rpm -Uvh pkg.rpm – установка пакета (RPM)

Установка из исходников

cd application-1.0.2
./configure
make
make install

Быстрые короткие команды

Ctrl+C – завершить текущую команду
Ctrl+Z – остановить текущую команду, продолжть с fg на переднем плане или bg в фоне
Ctrl+D – разлогиниться, тоже самое, что и exit
Ctrl+W – удалить одно слово в текущей строке
Ctrl+U – удалить строку
!! - повторяет выполнение последней введенной команды.
exit – выход, то есть разлогинивание.
Это чтобы по интернету не шариться в поисках.


Сен 22, 2016 | 0 comments

В данной статье мы соберем Linux Kernel и запустим на qemu с busybox.

Для начала скачайте Busybox:

Нужный вам Linux Kernel:

Несмотря на безудержный рост графических оболочек и «дружелюбных» интерфейсов, представить себе UNIX без командной строки и основных утилит в наши дни невозможно. Многочисленные интерпретаторы и базовые системные утилиты не стоят на месте, растут и развиваются, что неизбежно ведет и к увеличению их объема. В то же время существуют сферы деятельности, в которых компактность любых приложений по очевидным причинам очень важна, например, во встраиваемых устройствах. Вместе с тем во многих случаях не требуется значительная часть той функциональности, которая присуща базовым утилитам «общего назначения».

Для решения этих проблем еще в середине 90-х Брюсом Перенсом (Bruce Perens) был создан пакет BusyBox. Сейчас проект позиционируется как «швейцарский нож для встраиваемых Linux-систем» и в первую очередь ориентирован на использование в небольших дистрибутивах GNU/Linux. Распространяется под второй версией лицензии GNU GPL.

BusyBox представляет собой единственный исполняемый файл, при запуске которого загружается полноценный командный интерфейс. Как гласит официальная документация BusyBox, для формирования минимальной версии GNU/Linux к этому достаточно добавить лишь ядро ОС и каталоги /etc, /dev.

Одна из главных целей, которую преследуют разработчики BusyBox, – оптимизированность и компактность кода – расчет на ограниченность памяти. Это не только вновь говорит о плюсах его использования во встраиваемых устройствах, но и хорошо сочетается с другим подходом в духе UNIX way: высокий уровень настраиваемости (в бинарный файл BusyBox можно включить только необходимые компоненты).

Еще на стадии компиляции (а точнее, до самого процесса сборки) можно выбрать только те базовые утилиты, которые нужны. Реализовано это в стиле настройки ядра Linux. Вместо более распространенного среди собираемых с automake приложений способа в виде скрипта «configure» для предварительной конфигурации BusyBox нужно выполнить одну из следующих команд:

Аргумент «config» инициирует запуск «вопросника» со списком доступных опций и базовых утилит, предлагающего проставлять «Y» или «N» на месте нужных и ненужных возможностей соответственно.

Аргумент «menuconfig» вызывает более удобную конфигурацию в виде меню с интерфейсом на базе curses.

Аргумент «defconfig» автоматически включает все доступные опции, подготавливая к сборке BusyBox «общего назначения».

Так же, как и в случае с ядром Linux, после настройки создается конфигурационный файл .config, к которому можно затем всегда возвращаться командой:

Это актуально при переходе на более новую версию BusyBox со старой конфигурацией (чтобы при настройке работать только с появившимися в очередном релизе опциями).

По умолчанию, если до вызова «make menuconfig» не существовал файл .config, make автоматически предварительно запускается с аргументом «defconfig». Таким образом, пользователю останется только отключить ненужные возможности. Предусмотрен и обратный вариант: запуск make с «allnoconfig» отключает все опции, чтобы после этого можно было выбрать только то, что нужно.

Далее все традиционно:

Помимо альтернативного набора coreutils (ls, cat, mv, cp, rm, chmod, df, ln, date, wc, nice, test…) в состав BusyBox входит и множество других программ.

Для работы с архивами есть такие утилиты, как tar, gzip, bzip2, ar, zip, rpm, dpkg. Для обработки содержимого файлов есть как awk, sed, patch, так и текстовые редакторы ed и vi.

Устанавливаем busybox:

Далее в меню ставим галочку в:
-> Busybox Settings
-> Build Options
[ ] Build BusyBox as a static binary (no shared libs)

сохраняем и выходим.

NOTE initramfs:

Initrd (сокращение от англ. Initial RAM Disk, диск в оперативной памяти для начальной инициализации) — временная файловая система, используемая ядром Linux при начальной загрузке. Initrd обычно используется для начальной инициализации перед монтированием «настоящих» файловых систем.

Начиная с версии ядра 2.6 пришли к понятию initramfs. Это, обычно сжатый cpio архив, в котором располагается мини-система busybox, которая выполняет ту же роль, что и initrd.

Содержимое initramfs делается путем создания cpio-архива.

Все файлы, инструменты, библиотеки, настройки конфигурации (если они применимы), и т.д. помещаются в cpio-архив. Этот архив затем сжимается с использованием утилиты gzip и сохраняется в том же месте, что и ядро Linux. Далее, загрузчик передаст его ядру Linux во время загрузки, чтобы ядро знало о том, что требуется initramfs.

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

Теперь создадим initramfs с нашим построенным busybox:

Note: node можно не создавать через mknod, а скопировать из основной ОС.

Далее копируем все из папки busybox_rootfs в папку rootfs. Таким образом, в нашем initrd появятся утилиты Linux, которые реализует busybox.

Создаем в корне rootfs файл init :

Делаем его исполняемым:

Создаем сам initramfs:

Собираем ядро

Копируем bzImage и rootfs.cpio.gz в отдельную директорию, заходим в нее и

Запускаем qemu

Дополнение

Initrd встроенный в ядро

Кроме того, вы можете скомпилировать initrd вместе с ядром. Для этого надо при конфигурировании ядра указать путь к rootfs (см. ниже):

Тогда после компиляции ядра, qemu можно запускать, не указывая initrd:

Переключение с Initrd на rootfs на диске

Сначала создадим диск, на который поместим rootfs:

Теперь у нас на образе диска hdd находится rootfs.

Для запуска qemu c диском используем сл. команду:

Когда ядро загрузится с initrd, для переключения к rootfs на диске, выполним следующие команды:

Загрузка без Initrd

Т.к. у на rootfs есть уже на диске, то грузиться с initrd не обязательно. Для того чтобы сразу грузить rootfs с диска, надо ядру (в загрузчике) передать параметр root.

В qemu это делается через append:

Note: для компиляции под 32-bit intel используем:

thumb

Как получить полный контроль, над роутером ASUS с установленной оригинальной (заводской) прошивкой, через командную строку с помощью Telnet протокола доступа.

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

Значит, мы можем проделать все манипуляции над роутером с оригинальной (заводской) прошивкой, через командную строку с помощью Telnet протокола доступа.

Самый безопасный и мощный способ это использовать SSH протокол, но можно воспользоваться не безопасным Telnet так, как он имеется во всех роутерах ASUS.

Если вэб-интерфейс вашего роутера не имеет триггера для включения Telnet, то вам необходимо прочитать эту статью: «Как включить Telnet сервер на роутере ASUS».

Получение доступа к командной строке

Прежде всего вам нужно подключиться к роутеру используя любой Telnet клиент, например PuTTY или консольный клиент.

Домен, IP-адрес, логин и пароль такие же как в вэб-интерфейсе роутера.

Для подключения с помощью консольного клиента:

Подключитесь к роутеру по протоколу доступа Telnet:

Для авторизации используйте логин и пароль такие же как в вэб-интерфейсе роутера:

Поздравляю, теперь вы в командной строке Linux роутер!

В роутере

Теперь вы в командной строке Linux роутера ASUS.

В общем, Linux роутер очень похож на Debian но имеет некоторые особенности. Начну с общего.

Показать информацию о железе и прошивке роутера можно так:

Показать все примонтированные разделы, можно так:

Как вы видите squashfs раздел примонтирован с параметром ro то есть только на чтение. Но, ramfs ( /var ) примонтирован с параметром rw то есть чтение и запись. Значит, мы можем создавать и удалять файлы в этой директории. Но после перезагрузки всё будет как раньше, а новые файлы будут удалены.

Все загрузочные скрипты находятся в директории /etc/init.d/ .

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

На роутере установлен BusyBox. BusyBox — это набор UNIX утилит командной строки, который используется в качестве основного интерфейса во встраиваемых операционных систем. В различных версиях и сборках он содержит различное количество утилит.

Для того, чтобы получить список команд, поддерживаемых данным экземпляром BusyBox, запустите его без каких-либо аргументов или используйте опцию --list :

Для того, что бы узнать о том, что делают отдельные команды, используйте опцию --help в сочетании с этой командой:

Но не все программы в прошивке являются частью BusyBox. Поэтому может потребоваться просмотреть список всех программ:

Если в списке вы видите что-то похожее на […] -> busybox то эта программа является частью BusyBox.

К примеру, в моём роутере, встроенный BusyBox (v1.13.4) не содержит редактор vi или nano .

NVRAM

А теперь про особенности о которых Я писал выше. Все настройки роутера (настройки изменяемые через веб-интерфейс, пользовательские настройки, загрузочные скрипты) хранятся в энергонезависимый памяти - NVRAM (Non Volatile Random Access Memory). Существует специальная команда для работы с этой памятью - flash и она уже установлена в оригинальную прошивку.

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

Как вы можете видеть есть несколько опций. Аббревиатура hw означает - оборудование (железо).

Все настройки хранятся в переменных.

Показать все переменные:

И многие другие переменные.

Примечание: Все переменные начинающиеся с префикса DEF_ имеют значение по умолчанию (исходная конфигурация). Она включается при нажатии кнопки Reset на корпусе роутера или из веб-интерфейса роутера или с помощью команды flash в терминале.

Примечание: Не все из перечисленных переменных работают.Такие переменные как SAMBA_ENABLED=0 не работают, из-за того, что Samba не установлен.

Для того, чтобы найти переменные с словом NAME , используйте команду flash совместно с grep :

Примечание: Имена всех переменных записываются в верхнем регистре.

Показать значение определенной переменной (например, имя администратора):

Установить новое значение переменной (например, имя администратора):

Теперь у вас есть новое имя администратора (логин), а это повышает безопасность.

Но для того, что бы изменения вступили в силу необходимо перезагрузить роутер:

Если необходимо вернуть все заводские параметры (сброс к изначальным настройкам):

P.S. Если вы не нашли в этой статье нужную вам информацию, то может быть вы сможете найти её в комментариях ниже. В английской версии статьи комментариев больше.

Если эта статья помогла вам, пожалуйста, оставьте комментарий

Спасибо за прочтение!

Buy me a coffee!

Читайте также: