Onde posso encontrar documentação para comandos do shell? [fechadas]

18

Para usar comandos de shell através de um programa de terminal, onde posso encontrar documentação ou ajuda ou páginas de manual para os comandos implementados no Android ?

Embora fosse bom tê-los no dispositivo via homem , PDF ou baseado na Web também ficariam bem.

Quando executo "man" no terminal, recebo um erro e não encontrei uma boa fonte online.

BrianCooksey
fonte
@CiroSantilli 法轮功 涌 低端 人口 六四 事件 法轮功 - O link fornecido é uma pergunta mais na lista de comandos disponíveis do que nas páginas de manual para eles. E as respostas são bastante pobres.
sancho.s Reintegrar Monica
Uma pergunta relacionada antiga ... stackoverflow.com/questions/3647014/…
sancho.s Reinstala Monica

Respostas:

8

Você pode dar uma olhada em http://www.busybox.net/downloads/BusyBox.html para obter uma descrição do busybox e dos comandos fornecidos por ele. E confie em mim, se você vai trabalhar no console, provavelmente deseja usar o busybox.

mru
fonte
5
deve-se notar que o estoque Android não vem com busybox, e usa toolbox.
Lie Ryan
4

A maioria dos comandos do terminal no android é a versão limitada dos comandos padrão do terminal Linux / Unix / POSIX, fornecidos pelo toolboxprograma. Notavelmente ausente de toolboxé o cpcomando (cópia de arquivo), você deve usar cat file1 > file2. Se você passa muito tempo no shell, pode instalar busybox, o que fornece um conjunto mais rico de comandos POSIX padrão.

Há um pouco sobre o shell do Android aqui: http://benno.id.au/blog/2007/11/13/android-under-the-hood

Lie Ryan
fonte
3

A maioria dos comandos shell "padrão" do Android é encontrada em / system / bin / e a maioria deles é vinculada ao Toolbox, um conjunto de applets bsd licenciado, semelhante ao busybox, mas sem os problemas "" de licenciamento GPL-2 "" . O Toolbox ajuda a necessidade do Google de remover a dependência do código GPL e é direcionado para tamanho pequeno e tarefas específicas do Android. Não era para ser usado pelo usuário final.

Não há manuais internos no estoque do Android, e os applets da caixa de ferramentas não possuem documentação, dos comandos, da própria caixa de ferramentas e online. São cópias muito limitadas do que a maioria dos usuários consideraria as ferramentas padrão do tipo POSIX. Como o BSD-Utils é mais parecido com o BSD-Utils, é mais provável que os sinalizadores do BSD Util funcionem e o comportamento é mais semelhante ao BSD-Utils do que ao Posix. Mesmo assim, os applets do Toolbox não possuem muitos desses sinalizadores.

A coisa mais próxima da documentação é o código fonte. Que, como a maioria do Android, está disponível online. Aqui está a versão do Froyo da fonte do Toolbox: https://android.googlesource.com/platform/system/core/+/froyo/toolbox
Basta encontrar a versão que você precisa.

Lembre-se de que diferentes fabricantes podem alterar o código. O Toolbox da Samsung é diferente do da Motorola. Caramba, o Samsung Galaxy S Toolbox difere do Samsung Sidekick 4g (baseado no Galaxy S). Os fabricantes podem adicionar miniaplicativos para uso próprio ou alterar o padrão para fins específicos. o restartapplet na caixa de ferramentas funcionará no telefone em que foi ligado, mas o restartapplet do busybox não funcionará, a menos que seja especificamente corrigido. Timee Datetambém são diferentes. Há outros também. Portanto, o Toolbox não é algo que você pode substituir completamente pelo Busybox ou pelo GNU-Utils completo ou qualquer outra coisa.

cde
fonte
3

Nas versões mais antigas do Android

Nas versões mais antigas do Android, os comandos do shell tendem a ser:

  • Reescrito especificamente para Android e enviado como parte do Toolbox. Não tenho certeza se o Toolbox está ou não realmente documentado em qualquer lugar.
  • Ou copiado do NetBSD. Nesse caso, o comando foi recompilado para o Android e o comando (mas não sua página de manual) é enviado com o Android.

Use typepara informar onde um comando está armazenado e ls -lno comando para informar se é um link binário ou simbólico real. Se for um link simbólico para a Caixa de ferramentas, você saberá que o comando faz parte da Caixa de ferramentas.

Alguns comandos, como kill, estão disponíveis como um shell embutido (esta é a versão que normalmente será executada) e dentro /system/bin(essa versão normalmente nunca será executada). typedirá qual versão será executada.

No Marshmallow e acima

Android 6.0 "Marshmallow" e acima do navio com Toybox , ea maioria dos comandos shell mais comumente utilizados ( cp, mv, ls, et cetera) tendem a ser brinquedos Toybox. Os brinquedos da caixa de brinquedos normalmente incluem ajuda embutida; páginas do manual oficial não estão incluídas.

Ainda assim, o Toybox não inclui tudo e, portanto, nem tudo é fornecido pelo Toybox. Por exemplo, mesmo no Android 6.0 "Marshmallow" fsck_msdos(que deve ser usado apenas para verificar cartões SD de 32 GB ou menos) parece ter sido retirado do FreeBSD ou do NetBSD. fsck_exfat(que pode verificar a maioria dos cartões SD de 64 GB ou mais) é extraído de outro lugar. Não tenho certeza de onde.

Sua concha

Nas versões modernas do Android, o shell é o shell mkshMirBSD Korn. Se mkshestiver em execução, para descobrir sua mkshversão, digite:

echo $KSH_VERSION
inesquecível
fonte
1

Sugiro iniciar um dispositivo virtual Android (AVD), conectar-se a ele com adb e executar o comando do shell do Android em questão:

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]

Se alguém souber que o sinalizador fornece comandos de shell do Android para imprimir apenas a tela de uso, entre em contato. Tentei --help, -help, -h, --usage, etc.

Tente executar ls /system/bine consulte também http://developer.android.com/guide/developing/tools/adb.html#shellcommands

Philip Durbin
fonte
1

O conjunto de comandos do shell usados ​​pelo Android parece ser toolbox. As informações sobre ele parecem não estar centralizadas (o que me parece obscuro ), mas é possível pesquisar e encontrar informações ao redor, por exemplo

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

Para uso "intensivo" da linha de comando, o BusyBox é geralmente recomendado como um substituto para 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

sancho.s Restabelecer Monica
fonte