Je me souviens que pour Linux fonctionnant dans des systèmes embarqués, en raison de limitations de taille, il ne peut pas contenir autant de commandes que sur les postes de travail ordinaires. Donc , il y a un do-it-all qui peut imiter presque toutes les commandes (y compris ls
, cd
, time
, etc.), mais je ne me rappelle pas son nom.
Je me suis juste souvenu vaguement de quelque chose comme "minibox" ou quelque chose, il semble avoir une "boîte" dans son nom, quelqu'un sait-il quel est son nom?
linux
command-line
embedded
wangshuaijie
la source
la source
cd
cependant, ce n'est pas possible.sh
, qui acd
comme intégré.emacs
...Réponses:
Le plus populaire pourrait être BusyBox , mais il existe également une boîte à outils (utilisée par Android), une boîte à jouets et peut-être d'autres.
la source
grep
il s'agit probablement d'un lien vers busybox. La seule exception va êtrecd
car cela doit être un shell intégré.Vous faites probablement référence à Busybox , un shell «tout-en-un».
la source
BusyBox est conçu d'une manière assez originale qui peut être assez déroutante lorsque vous commencez à fouiller dans vos répertoires / bin.
Comme MSalters l'a indiqué, BusyBox n'est qu'un exécutable. Mais cela dépend de la création d'un lien symbolique vers cet exécutable pour chaque "commande" qu'il contient. En connaissant le nom du lien symbolique avec lequel il a été démarré, il sait exécuter la fonction C pour cette commande.
Ainsi, le début de mon répertoire PuppyLinux 5.2.8 Lucid / bin ressemble à ...
Notez que la plupart des commandes sont des liens symboliques vers
busybox
. Cela inclut leash
shell très minimaliste utilisé principalement pendant les opérations de démarrage. Notez également que l'auteur de la distribution a choisi d'inclure les commandes autonomesbunzip2
etbzcat
au lieu d'utiliser les versions de busybox. Les liens symboliquesbunzip-BB-NOTUSED
etbzcat-BB-NOTUSED
ne sont pas vraiment nécessaires, mais aident à documenter ce qui se passe pour le coût d'un lien symbolique.Notez également qu'un répertoire répertoriant les tailles de la cible des liens symboliques (
ls -lL
ouls -l --dereference
) au lieu du lien symbolique lui-même, indiquera la taille de chaque commande comme étant identique à celle debusybox
. Ainsi, la même liste avec l'-L
option montre ...L'objectif de BusyBox est la réutilisation maximale du code en lui-même afin de minimiser la mémoire et l'espace disque requis (c'est-à-dire "l'empreinte") pour un ensemble commun de commandes ... sans nécessiter un shell lui-même.
Bash et autres obus accomplissent la même chose. Mais pour ce faire, ils implémentent leur propre environnement de ligne de commande. Cet objectif est également l'une des raisons de la syntaxe très archaïque de nombreuses fonctionnalités du shell.
J'utilise actuellement cette "technique BusyBox" pour une bibliothèque de fonctions Bash et des wrappers plus faciles à utiliser pour divers bashismes . Il m'a permis "d'étendre" facilement les commandes avec des
--help
options et de lancer des versions GUI lorsqu'elles sont disponibles.la source