Sur les anciennes versions d'Android
Sur les anciennes versions d'Android, les commandes shell ont tendance à être soit :
- Réécrit spécifiquement pour Android, et livré en tant que partie de Toolbox. Je ne suis pas sûr que Toolbox soit vraiment documenté quelque part.
- Ou copié de NetBSD. Si c'est le cas, alors la commande a été recompilée pour Android, et la commande (mais pas sa page de manuel) est livrée avec Android.
Utilice type
pour vous indiquer où une commande est stockée, et ls -l
sur la commande pour vous indiquer s'il s'agit d'un vrai binaire ou d'un lien symbolique. Si c'est un lien symbolique vers Toolbox, alors vous saurez que la commande fait partie de Toolbox.
Quelques commandes, telles que kill
sont disponibles à la fois en tant que module intégré à l'interpréteur de commandes (il s'agit de la version qui sera normalement exécutée) et dans le fichier /system/bin
(cette version ne sera normalement jamais exécutée). type
vous dira quelle version fonctionnera.
Sur Marshmallow et plus
Android 6.0 "Marshmallow" et plus sont livrés avec Boîte à jouets et la plupart des commandes shell les plus utilisées ( cp
, mv
, ls
et cetera) ont tendance à être des jouets Toybox. Les jouets Toybox comprennent normalement une aide intégrée ; les pages de manuel officielles ne sont pas incluses.
Pourtant, Toybox ne comprend pas tout, et donc tout n'est pas fourni par Toybox. Par exemple, même sous Android 6.0 "Marshmallow", fsck_msdos
(qui ne devrait être utilisé que pour vérifier les cartes SD de 32 Go ou moins) semble provenir de FreeBSD ou NetBSD. fsck_exfat
(qui peut vérifier la plupart des cartes SD de 64 Go ou plus) provient d'ailleurs. Je ne sais pas trop où.
Votre coquille
Sur les versions modernes d'Android, le shell est mksh
le shell Korn de MirBSD. Si mksh
est en cours d'exécution, puis pour connaître votre mksh
version, entrez :
echo $KSH_VERSION