Wo finde ich Dokumentation für Shell-Befehle? [geschlossen]


18

Wo finde ich für die Verwendung von Shell-Befehlen über ein Terminalprogramm Dokumentation oder Hilfeseiten oder Manpages für die in Android implementierten Befehle ?

Es wäre zwar schön, sie per Mann auf dem Gerät zu haben , aber auch PDF oder webbasiert wären in Ordnung.

Wenn ich "man" vom Terminal aus starte, wird eine Fehlermeldung angezeigt und ich habe online keine gute Quelle gefunden.



@CiroSantilli 法轮功 华 涌 低端 人口 六四 事件 - Der bereitgestellte Link ist eine Frage mehr in der Liste der verfügbaren Befehle als in den Manpages für sie. Und die Antworten sind eher schlecht.
sancho.s Reinstate Monica

Antworten:



4

Bei den meisten Terminalbefehlen in Android handelt es sich um die eingeschränkte Version der Standard-Linux / Unix / POSIX-Terminalbefehle, die vom toolboxProgramm bereitgestellt werden . Insbesondere fehlt toolboxder cpBefehl (Dateikopie), den Sie cat file1 > file2stattdessen verwenden müssen. Wenn Sie viel Zeit in der Shell verbringen, möchten Sie möglicherweise eine Installation durchführen busybox, die eine größere Anzahl von POSIX-Standardbefehlen enthält.

Es gibt ein bisschen über Android Shell hier: http://benno.id.au/blog/2007/11/13/android-under-the-hood



3

Die Mehrheit der "Standard" -Befehle der Android-Shell befindet sich in / system / bin /, und die Mehrheit dieser Befehle ist mit Toolbox verknüpft, einem von bsd lizenzierten Appletsatz, ähnlich wie busybox, jedoch ohne die "" GPL-2-Lizenzierungsprobleme. . Die Toolbox hilft Google dabei, die Abhängigkeit von GPL-Code zu beseitigen. Sie ist auf kleine und spezifische Android-Aufgaben ausgerichtet. Es war nicht für den Endbenutzer gedacht.

Es gibt keine eingebauten Handbücher auf Lager Android, und Toolbox-Applets fehlen jegliche Dokumentation, von den Befehlen, aus der Toolbox selbst und online. Es handelt sich um sehr begrenzte Kopien dessen, was die meisten Benutzer als POSIX-Standardtools betrachten würden. Ähnlich wie bei den BSD-Utils, daher funktionieren BSD-Util-Flags mit größerer Wahrscheinlichkeit, und das Verhalten ist BSD-Utils ähnlicher als Posix. Selbst dann fehlen Toolbox-Applets viele dieser Flags.

Der Dokumentation am nächsten kommt der Quellcode. Welches, wie die meisten von Android, online verfügbar ist. Hier ist die Froyo-Version der Toolbox-Quelle: https://android.googlesource.com/platform/system/core/+/froyo/toolbox
Finden Sie einfach die Version, die Sie benötigen.

Beachten Sie, dass verschiedene Hersteller den Code möglicherweise ändern. Die Samsung Toolbox unterscheidet sich von der von Motorola. Heck, Samsung Galaxy S Toolbox unterscheidet sich von Samsung Sidekick 4g (Galaxy S basiert). Hersteller können Applets für den eigenen Gebrauch hinzufügen oder die Standardeinstellungen für bestimmte Zwecke ändern. Das restartApplet in der Toolbox funktioniert auf dem Telefon, auf dem es gestartet wurde, das Busybox- restartApplet jedoch nicht, es sei denn, es wurde speziell gepatcht. Timeund Datesind auch anders. Es gibt auch andere. Die Toolbox kann also nicht vollständig durch die Busybox oder die vollständigen GNU-Utils oder was auch immer ersetzt werden.


3

Auf älteren Android-Versionen

In älteren Android-Versionen lauten die Shell-Befehle in der Regel entweder:

  • Speziell für Android neu geschrieben und als Teil der Toolbox ausgeliefert. Ich bin nicht sicher, ob Toolbox wirklich irgendwo dokumentiert ist.
  • Oder von NetBSD kopiert. In diesem Fall wurde der Befehl für Android neu kompiliert, und der Befehl (jedoch nicht die Handbuchseite) wird mit Android ausgeliefert.

Verwenden typeSie diese Option , um anzuzeigen, wo ein Befehl gespeichert ist, und verwenden ls -lSie diese Option, um anzuzeigen, ob es sich um eine echte binäre oder eine symbolische Verknüpfung handelt. Wenn es sich um einen symbolischen Link zur Toolbox handelt, wissen Sie, dass der Befehl Teil der Toolbox ist.

Einige Befehle, wie z. B. kill, sind sowohl als eingebaute Shell (dies ist die normalerweise ausgeführte Version) als auch als Shell /system/bin(diese Version wird normalerweise nie ausgeführt) verfügbar. typewird Ihnen sagen, welche Version ausgeführt wird.

Auf Marshmallow und höher

Android 6.0 „Marshmallow“ und auf Schiff mit Toybox , und die meisten der am häufigsten verwendeten Shell - Kommandos ( cp, mv, ls, usw.) sind in der Regel Toybox Spielzeug sein. Toybox-Spielzeug enthält normalerweise eine eingebaute Hilfe. offizielle Handbuchseiten sind nicht enthalten.

Trotzdem enthält Toybox nicht alles und daher wird nicht alles von Toybox bereitgestellt. Selbst unter Android 6.0 fsck_msdosscheint "Marshmallow" (das nur zum Überprüfen von SD-Karten mit 32 GB oder weniger verwendet werden sollte) entweder von FreeBSD oder NetBSD zu stammen. fsck_exfat(mit dem die meisten SD-Karten mit 64 GB oder mehr überprüft werden können) stammen von einem anderen Ort. Ich bin mir nicht sicher, wo.

Deine Muschel

Bei modernen Android-Versionen ist die Shell mkshdie MirBSD-Korn-Shell. Wenn ausgeführt mkshwird, geben Sie mkshFolgendes ein, um Ihre Version zu ermitteln:

echo $KSH_VERSION

1

Ich würde vorschlagen, ein virtuelles Android-Gerät (AVD) zu starten, eine Verbindung mit adb herzustellen und den betreffenden Android-Shell-Befehl auszuführen:

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]

Wenn jemand die Flagge kennt, um Android-Shell-Befehle zum Drucken des Verwendungsbildschirms zu geben, lass es mich wissen. Ich habe versucht --help, -help, -h, --usage, etc.

Versuchen Sie, http://developer.android.com/guide/developing/tools/adb.html#shellcommands auszuführen ls /system/binund anzuzeigen


1

Die Menge der von Android verwendeten Shell-Befehle scheint zu sein toolbox. Informationen darüber scheinen nicht zentralisiert zu sein (was mir dunkel erscheint ), aber man könnte Informationen in der Umgebung suchen und finden, z

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

Bei "intensiver" Nutzung der Kommandozeile wird BusyBox generell als Ersatz für empfohlen toolbox.

Credits / Verwandte:

/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

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.