Para usar comandos de shell a través de un programa de terminal, ¿dónde puedo encontrar documentación, ayuda o páginas man para los comandos implementados en Android ?
Si bien sería bueno tenerlos en el dispositivo a través de man , PDF o basado en la web también estaría bien.
Cuando ejecuto "man" desde la terminal, aparece un error y no he encontrado una buena fuente en línea.
Puede consultar http://www.busybox.net/downloads/BusyBox.html para obtener una descripción de busybox y los comandos que proporciona. Y confía en mí, si vas a trabajar en la consola, probablemente quieras usar busybox.
busybox
, y en su lugar utiliza toolbox
.La mayoría de los comandos de terminal en Android son la versión limitada de los comandos de terminal estándar de Linux/Unix/POSIX, proporcionados por el toolbox
programa. Notablemente ausente toolbox
está el cp
comando (copia de archivo), debe usar en su cat file1 > file2
lugar. Si pasa mucho tiempo en el shell, es posible que desee instalar busybox
, que proporciona un conjunto más completo de comandos POSIX estándar.
Aquí hay algo sobre Android Shell: http://benno.id.au/blog/2007/11/13/android-under-the-hood
Como me encontré con el mismo problema que usted, comencé a compilar una lista de comandos útiles en Android Shell , incluidos ejemplos. Una versión alemana está en mi blog.
La mayoría de los comandos de shell de Android "estándar" se encuentran en /system/bin/ y la mayoría de ellos están vinculados a Toolbox, un conjunto de applets con licencia bsd, similar a busybox, pero sin los ""problemas"" de licencias GPL-2 . Toolbox ayuda a Google a eliminar la dependencia del código GPL y está dirigido a tareas de Android específicas y de pequeño tamaño. No fue diseñado para el uso del usuario final.
No hay manuales incorporados en stock de Android, y los subprogramas de la caja de herramientas carecen de documentación, desde los comandos, desde la propia caja de herramientas y en línea. Son copias muy limitadas de lo que la mayoría de los usuarios considerarían las herramientas estándar de tipo POSIX. Más similar a BSD-Utils, por lo que es más probable que las banderas de BSD Util funcionen y el comportamiento es más similar a BSD-Utils que a Posix. Incluso entonces, los subprogramas de Toolbox carecen de muchas de esas banderas.
Lo más parecido a la documentación es el código fuente. Que, como la mayoría de Android, está disponible en línea. Aquí está la versión de Froyo de la fuente de Toolbox: https://android.googlesource.com/platform/system/core/+/froyo/toolbox
Simplemente encuentre la versión que necesita.
Tenga en cuenta que diferentes fabricantes pueden cambiar el código. La caja de herramientas de Samsung es diferente a la de Motorola. Diablos, Samsung Galaxy S Toolbox difiere de Samsung Sidekick 4g (basado en Galaxy S). Los fabricantes pueden agregar subprogramas para su propio uso o cambiar el valor predeterminado para fines específicos. el restart
subprograma de la caja de herramientas funcionará en el teléfono en el que se instaló, pero el subprograma de la caja ocupada restart
no lo hará, a menos que se aplique un parche específico. Time
y Date
también son diferentes. Hay otros también. Entonces, Toolbox no es algo que pueda reemplazar por completo con Busybox o GNU-Utils completo o lo que sea.
En versiones anteriores de Android, los comandos de shell tienden a ser:
Úselo type
para decirle dónde está almacenado un comando y ls -l
en el comando para decirle si es un enlace binario real o simbólico. Si es un enlace simbólico a Toolbox, entonces sabrá que el comando es parte de Toolbox.
Algunos comandos, como kill
, están disponibles tanto como un shell integrado (esta es la versión que normalmente se ejecutará) como en /system/bin
(esta versión normalmente nunca se ejecutará). type
le dirá qué versión se ejecutará.
Android 6.0 "Marshmallow" y versiones posteriores vienen con Toybox , y la mayoría de los comandos de shell más utilizados ( cp
, mv
, ls
, etcétera) tienden a ser juguetes de Toybox. Los juguetes Toybox normalmente incluyen ayuda integrada; Las páginas del manual oficial no están incluidas.
Aún así, Toybox no incluye todo, por lo que Toybox no proporciona todo. Por ejemplo, incluso en Android 6.0, "Marshmallow" fsck_msdos
(que solo debe usarse para verificar tarjetas SD de 32 GB o menos) parece estar tomado de FreeBSD o NetBSD. fsck_exfat
(que puede verificar la mayoría de las tarjetas SD de 64 GB o más) se toma de otro lugar. No estoy seguro de dónde.
En las versiones modernas de Android, el shell es mksh
MirBSD Korn shell. Si mksh
se está ejecutando, para averiguar su mksh
versión, ingrese:
echo $KSH_VERSION
Sugeriría iniciar un dispositivo virtual de Android (AVD), conectarse a él con adb y ejecutar el comando de shell de Android en cuestión:
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 alguien conoce la bandera para dar comandos de shell de Android para simplemente imprimir la pantalla de uso, hágamelo saber. Probé --help, -help, -h, --usage, etc.
Intente ejecutar ls /system/bin
y vea también http://developer.android.com/guide/developing/tools/adb.html#shellcommands
El conjunto de comandos de shell que utiliza Android parece ser toolbox
. La información sobre él parece no estar centralizada (lo que me parece oscuro ), pero uno podría buscar y encontrar información, por ejemplo
http://www.all-things-android.com/content/android-toolbox-command-reference
Para el uso "intensivo" de la línea de comandos, generalmente se recomienda BusyBoxtoolbox
como reemplazo de .
Créditos / Relacionado:
https://stackoverflow.com/questions/41498651/how-to-execute-the-help-linux-command-on-android
https://github.com/jackpal/Android-Terminal-Emulator/wiki/Android-Shell-Command-Reference
Ciro Santilli OurBigBook.com
sancho.s ReincorporarMonicaCellio
sancho.s ReincorporarMonicaCellio