Où puis-je trouver de la documentation pour les commandes shell? [fermé]

18

Pour utiliser une commande shell via un programme de terminal, où puis-je trouver de la documentation ou de l'aide ou des pages de manuel pour les commandes mises en œuvre dans Android ?

Bien qu'il serait bien de les avoir sur l'appareil via man , PDF ou sur le Web serait bien aussi.

Lorsque je lance "man" depuis le terminal, je reçois une erreur et je n'ai pas trouvé de bonne source en ligne.

BrianCooksey
la source
stackoverflow.com/questions/13619993/…
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
@CiroSantilli 华 涌 低端 人口 六四 事件 法轮功 - Le lien fourni est une question plus sur la liste des commandes disponibles que sur les pages de manuel pour elles. Et les réponses sont plutôt mauvaises.
sancho.s Réintègre Monica le
Une vieille question connexe ... stackoverflow.com/questions/3647014/…
sancho.s Réintègre Monica le

Réponses:

8

Vous pouvez consulter http://www.busybox.net/downloads/BusyBox.html pour une description de busybox et des commandes fournies par celui-ci. Et croyez-moi, si vous voulez travailler dans la console, vous voudrez probablement utiliser busybox.

mru
la source
5
il convient de noter que le stock Android n'est pas fourni avec busybox, et utilise à la place toolbox.
Lie Ryan
4

La plupart des commandes de terminal dans Android sont la version limitée des commandes de terminal Linux / Unix / POSIX standard, fournies par le toolboxprogramme. Notamment absente de toolboxla commande cp(copie de fichier), vous devez utiliser à la cat file1 > file2place. Si vous passez beaucoup de temps dans le shell, vous voudrez peut-être installer busybox, qui fournit un ensemble plus riche de commandes POSIX standard.

Il y a un peu sur le shell Android ici: http://benno.id.au/blog/2007/11/13/android-under-the-hood

Lie Ryan
la source
3

La majorité des commandes shell Android "standard" se trouvent dans / system / bin / et la plupart d'entre elles sont liées à Toolbox, un ensemble d'applets sous licence bsd, similaire à busybox, mais sans la licence GPL-2 "" issues "" . Toolbox aide Google à supprimer la dépendance à l'égard du code GPL et est destiné aux petites tailles et aux tâches Android spécifiques. Il n'était pas destiné à l'utilisateur final.

Il n'y a pas de manuels intégrés dans Android et les applets de la boîte à outils manquent de documentation, à partir des commandes, de la boîte à outils elle-même et en ligne. Ce sont des copies très limitées de ce que la plupart des utilisateurs considéreraient comme les outils standard de type POSIX. Plus similaire aux BSD-Utils, les indicateurs BSD Util sont plus susceptibles de fonctionner et le comportement est plus similaire à BSD-Utils qu'à Posix. Même dans ce cas, les applets Toolbox manquent de plusieurs de ces indicateurs.

La chose la plus proche de la documentation est le code source. Qui, comme la plupart d'Android, est disponible en ligne. Voici la version Froyo de la source Toolbox: https://android.googlesource.com/platform/system/core/+/froyo/toolbox
Trouvez simplement la version dont vous avez besoin.

Gardez à l'esprit que différents fabricants peuvent modifier le code. La boîte à outils de Samsung est différente de celle de Motorola. Heck, Samsung Galaxy S Toolbox diffère de Samsung Sidekick 4G (basé sur Galaxy S). Les fabricants peuvent ajouter des applets pour leur propre usage ou modifier la valeur par défaut à des fins spécifiques. l' restartapplet dans la boîte à outils fonctionnera sur le téléphone sur lequel elle est allée, mais l' restartapplet busybox ne fonctionnera pas, sauf si elle est spécifiquement corrigée. Timeet Datesont également différents. Il y a d'autres aussi. Donc, Toolbox n'est pas quelque chose que vous pouvez remplacer complètement par Busybox ou les GNU-Utils complets ou autre.

cde
la source
3

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é avec Toolbox. Je ne sais pas si Toolbox est vraiment documenté ou non.
  • Ou copié à partir de NetBSD. Si tel est le cas, la commande a été recompilée pour Android et la commande (mais pas sa page de manuel) est livrée avec Android.

Utilisation type pour vous indiquer où une commande est stockée, et ls -lsur la commande pour vous dire s'il s'agit d'un vrai lien binaire ou symbolique. S'il s'agit d'un lien symbolique vers Toolbox, vous saurez que la commande fait partie de Toolbox.

Quelques commandes, telles que kill, sont disponibles à la fois comme un shell intégré (c'est la version qui s'exécutera normalement) et dans/system/bin (cette version ne sera normalement jamais exécutée). typevous dira quelle version sera exécutée.

Sur guimauve et plus

Android 6.0 « Marshmallow » et en bateau avec Toybox , et la plupart des commandes shell les plus couramment utilisés ( cp, mv,ls , etc.) ont tendance à être des jouets Toybox. Les jouets Toybox incluent normalement une aide intégrée; les pages de manuel officielles ne sont pas incluses.

Pourtant, Toybox n'inclut pas tout, et donc tout n'est pas fourni par Toybox. Par exemple, même sur Android 6.0 "Marshmallow", fsck_msdos(qui ne doit être utilisé que pour vérifier les cartes SD de 32 Go ou moins) semble provenir de FreeBSD ou de NetBSD. fsck_exfat(qui peut vérifier la plupart des cartes SD de 64 Go ou plus) provient d'ailleurs. Je ne sais pas où.

Votre coquille

Sur les versions modernes d'Android, le shell est mksh, le shell MirBSD Korn. Si mkshest en cours d'exécution, alors pour connaître votre mkshversion, entrez:

echo $KSH_VERSION
inoubliable
la source
1

Je suggère de démarrer un périphérique virtuel Android (AVD), de s'y connecter avec adb et d'exécuter la commande shell Android en question:

pdurbin@macbook ~$ cd /Applications/eclipse/android-sdk-mac_x86/platform-tools
pdurbin@macbook platform-tools$ ./adb -s emulator-5554 shell
# /system/bin/pm
usage: pm [list|path|install|uninstall]
       pm list packages [-f]
       pm list permission-groups
       pm list permissions [-g] [-f] [-d] [-u] [GROUP]
       pm list instrumentation [-f] [TARGET-PACKAGE]
       pm list features
       pm path PACKAGE
       pm install [-l] [-r] [-t] [-i INSTALLER_PACKAGE_NAME] [-s] [-f] PATH
       pm uninstall [-k] PACKAGE
       pm enable PACKAGE_OR_COMPONENT
       pm disable PACKAGE_OR_COMPONENT
       pm setInstallLocation [0/auto] [1/internal] [2/external]
[snip]

Si quelqu'un connaît le drapeau pour donner des commandes shell Android pour simplement imprimer l'écran d'utilisation, faites-le moi savoir. J'ai essayé --help, -help, -h, --usage, etc.

Essayez d'exécuter ls /system/binet consultez également http://developer.android.com/guide/developing/tools/adb.html#shellcommands

Philip Durbin
la source
1

L'ensemble des commandes shell utilisées par Android semble l'être toolbox. Les informations à ce sujet ne semblent pas centralisées (ce qui me semble obscur ), mais on pourrait rechercher et trouver des informations autour, par exemple

http://www.all-things-android.com/content/android-toolbox-command-reference

Pour une utilisation "intensive" de la ligne de commande, BusyBox est généralement recommandé en remplacement detoolbox .

Crédits / connexes:

/programming/3647014/how-can-i-get-information-from-the-shell-about-commands-available-in-android-she

/programming/41498651/how-to-execute-the-help-linux-command-on-android

https://github.com/jackpal/Android-Terminal-Emulator/wiki/Android-Shell-Command-Reference

sancho.s Réintègre Monica
la source