¿Dónde puedo encontrar documentación para los comandos de shell? [cerrado]


18

Para usar un comando de shell a través de un programa de terminal, ¿dónde puedo encontrar documentación o ayuda o páginas de manual para los comandos implementados en Android ?

Si bien sería bueno tenerlos en el dispositivo a través de man , PDF o 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.



@CiroSantilli 华 涌 低端 人口 六四 事件 法轮功 - El enlace proporcionado es una pregunta más en la lista de comandos disponibles que en las páginas man para ellos. Y las respuestas son bastante pobres.
sancho.s Restablece a Mónica el

Respuestas:


8

Puede echar un vistazo a 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.


55
Cabe señalar que el stock de Android no viene con busybox, y en su lugar utiliza toolbox.
Lie Ryan

4

La mayoría de los comandos de terminal en Android son la versión limitada de los comandos de terminal estándar Linux / Unix / POSIX, proporcionados por el toolboxprograma. Notablemente ausente toolboxes el cpcomando (copia de archivo), debe usar cat file1 > file2en su lugar. Si pasa mucho tiempo en el shell, es posible que desee instalar busybox, que proporciona un conjunto más rico de comandos POSIX estándar.

Hay algo sobre Android Shell aquí: http://benno.id.au/blog/2007/11/13/android-under-the-hood



3

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 licencia GPL-2 . Toolbox ayuda a Google a eliminar la dependencia del código GPL y está dirigido a tareas de Android de pequeño tamaño y específicas. No fue para uso del usuario final.

No hay manuales incorporados en el stock de Android, y los applets de la caja de herramientas carecen de documentación, de los comandos, de la caja de herramientas y en línea. Son copias muy limitadas de lo que la mayoría de los usuarios considerarían las herramientas de tipo POSIX estándar. Más similar a las BSD-Utils, por lo que los indicadores de BSD Util tienen más probabilidades de funcionar y el comportamiento es más similar a BSD-Utils que Posix. Incluso entonces, los applets 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 de la de Motorola. Diablos, Samsung Galaxy S Toolbox difiere de Samsung Sidekick 4g (basado en Galaxy S). Los fabricantes pueden agregar applets para su propio uso o cambiar la configuración predeterminada para fines específicos. el restartapplet en la caja de herramientas funcionará en el teléfono en que se encendió, pero el restartapplet busybox no lo hará, a menos que haya sido parcheado específicamente. TimeY Datetambién son diferentes. Hay otros también. Por lo tanto, Toolbox no es algo que pueda reemplazar por completo con Busybox o GNU-Utils completo o lo que sea.


3

En versiones anteriores de Android

En versiones anteriores de Android, los comandos de shell tienden a ser:

  • Reescrito específicamente para Android y enviado como parte de Toolbox. No estoy seguro de si Toolbox está realmente documentado en alguna parte.
  • O copiado de NetBSD. Si es así, el comando se volvió a compilar para Android, y el comando (pero no su página de manual) se envía con Android.

Use typepara decirle dónde está almacenado un comando, y ls -len 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 por ejemplo kill, están disponibles tanto como shell incorporado (esta es la versión que normalmente se ejecutará) como en /system/bin(esta versión normalmente nunca se ejecutará). typele dirá qué versión se ejecutará.

En Marshmallow y hasta

Android 6.0 "Marshmallow" y encima de la nave con Toybox , y la mayoría de los comandos de la cáscara más comúnmente utilizados ( cp, mv, ls, etc.) tienden a ser juguetes Toybox. Los juguetes Toybox normalmente incluyen ayuda incorporada; Las páginas oficiales del manual 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.

Su caparazón

En las versiones modernas de Android, el shell es el shell mkshMirBSD Korn. Si se mkshestá ejecutando, para averiguar su mkshversión, ingrese:

echo $KSH_VERSION

1

Sugeriría iniciar un dispositivo virtual 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. Intenté --help, -help, -h, --usage, etc.

Intente ejecutar ls /system/biny vea también http://developer.android.com/guide/developing/tools/adb.html#shellcommands


1

El conjunto de comandos de shell utilizado por 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 a su alrededor, 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 BusyBox como reemplazo de toolbox.

Créditos / relacionados:

/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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.