Я помню, что для Linux, работающего во встроенных системах, из-за ограничений по размеру он не может упаковывать столько команд, сколько на обычных рабочих станциях. Так что есть делать-это все команды , которые могут имитировать почти все команды ( в том числе ls
, cd
, time
и т.д.), но я не помню его имени.
Я просто смутно вспомнил что-то вроде «минибокса» или что-то вроде того, в названии которого есть «коробка», кто-нибудь знает, как ее зовут?
linux
command-line
embedded
wangshuaijie
источник
источник
cd
Хотя это не будет имитировать , это невозможно.sh
, который имеетcd
встроенный.emacs
...Ответы:
Самым популярным может быть BusyBox , но есть также набор инструментов (используется Android), toybox и, возможно, другие.
источник
grep
вероятно, это ссылка на busybox. Единственным исключениемcd
будет встроенная оболочка.Вы, вероятно, имеете в виду Busybox , оболочку «все в одном».
источник
BusyBox разработан довольно новым способом, который может сбивать с толку, когда вы начинаете копаться в каталогах / bin.
Как указал MSalters , BusyBox - это всего лишь один исполняемый файл. Но это зависит от символической ссылки, создаваемой на этот исполняемый файл для каждой «команды» в нем. Зная имя символической ссылки, с которой он был запущен, он знает, как запустить функцию C для этой команды.
Таким образом, начало моего каталога PuppyLinux 5.2.8 Lucid / bin выглядит так ...
Обратите внимание, что большинство команд являются символическими ссылками на
busybox
. Это включаетash
очень минималистичную оболочку, используемую в основном во время операций загрузки. Также обратите внимание, что автор дистрибутива решил включить автономные команды,bunzip2
аbzcat
не использовать версии busybox. Символические ссылкиbunzip-BB-NOTUSED
иbzcat-BB-NOTUSED
не являются действительно необходимыми, но помогают документировать то, что происходит только за стоимость символической ссылки.Также обратите внимание, что список каталогов, в котором сообщается о размерах для целевой символической ссылки (
ls -lL
илиls -l --dereference
) вместо самой символической ссылки, будет сообщать размер каждой команды такой же, как уbusybox
. Таким образом, тот же список с-L
опцией показывает ...Цель BusyBox - максимальное повторное использование кода внутри самого себя, чтобы минимизировать объем памяти и место на диске (то есть «размер») для общего набора команд ... без необходимости самой оболочки.
Баш и другие оболочки делают то же самое. Но для этого они реализуют собственную среду командной строки. Эта цель также является одной из причин очень архаичного синтаксиса для многих функций оболочки.
В настоящее время я использую эту «технику BusyBox» для библиотеки функций Bash и более простую в использовании оболочку для различных bashisms . Это позволило мне легко «расширять» команды
--help
опциями и запускать версии GUI, когда они доступны.источник