在哪里可以找到Shell命令的文档?[关闭]


18

对于通过终端程序使用Shell命令的情况,在哪里可以找到在Android中实现的命令的文档或帮助或手册页?

虽然可以通过man,PDF或基于Web的方式将它们放在设备上也很好。

当我从终端运行“ man”时,出现错误,并且我没有在网上找到好的来源。



@CiroSantilli华涌低端人口六四事件法轮功-提供的链接比可用的手册列表上的问题更多的是可用命令列表上的问题。答案很差。
sancho.s恢复莫妮卡

Answers:



4

android中的大多数终端命令是toolbox程序提供的标准Linux / Unix / POSIX终端命令的受限版本。特别toolboxcp(file copy)命令缺少,您必须使用它cat file1 > file2。如果您在Shell中花费大量时间,则可能需要安装busybox,它提供了一组更丰富的标准POSIX命令。

这里有一些关于Android Shell的信息:http : //benno.id.au/blog/2007/11/13/android-under-the-hood



3

大部分“标准” Android Shell命令可在/ system / bin /中找到,并且大多数都与工具箱符号链接,该工具箱是bsd许可的小程序集,类似于busybox,但没有GPL-2许可“问题”。 。工具箱可帮助Google消除对GPL代码的依赖,并且针对小尺寸和特定的Android任务。它不适合最终用户使用。

在android中没有内置的手册,并且工具箱小程序缺少命令,工具箱本身以及在线的任何文档。它们是大多数用户认为是标准POSIX类型工具的非常有限的副本。与BSD-Utils更相似,因此BSD Util标志比Posix更可能起作用,并且行为与BSD-Utils更相似。即使那样,工具箱小程序也缺少许多这些标志。

与文档最接近的是源代码。与大多数Android一样,该软件可在线获得。这是Toolbox来源的Froyo版本:https : //android.googlesource.com/platform/system/core/+/froyo/toolbox
只需找到所需的版本即可。

请记住,不同的制造商可能会更改代码。三星的工具箱不同于摩托罗拉的工具箱。哎呀,三星Galaxy S工具箱不同于三星Sidekick 4g(基于Galaxy S)。制造商可能会添加小程序供自己使用,或出于特定目的更改默认值。restart工具箱中的小程序将在其附带的电话上运行,但restart除非经过特别修补,否则忙箱小程序将无法使用。Time并且Date也不同。还有其他。因此,Toolbox并不是您完全可以用Busybox或完整的GNU-Utils或任何东西替代的东西。


3

在较旧的Android版本上

在较旧的Android版本上,shell命令通常为:

  • 专为Android重写,并作为工具箱的一部分提供。我不确定Toolbox是否真正记录在任何地方。
  • 或从NetBSD复制。如果是这样,则将针对Android重新编译该命令,并且该命令(但不包括其手册页)随Android一起提供。

使用type要告诉你一个命令的存储位置,并ls -l在命令来告诉你它是否是一个真正的二进制或符号链接。如果它是到Toolbox的符号链接,那么您将知道该命令是Toolbox的一部分。

一些命令(例如)kill既可以作为内置的shell使用(通常将运行的版本),也可以作为in内置的(通常/system/bin将永远不会运行的版本)使用。type会告诉您将运行哪个版本。

在棉花糖上

的Android 6.0“棉花糖”和高达附带Toybox,最最常用的外壳命令的(cpmvls,等等)往往是Toybox玩具。玩具箱玩具通常包含内置帮助;不包括官方手册页。

尽管如此,Toybox并未包含所有内容,因此Toybox并未提供所有内容。例如,即使在Android 6.0上,“棉花糖” fsck_msdos(仅应用于检查32 GB或更小的SD卡)似乎都来自FreeBSD或NetBSD。 fsck_exfat(可以检查大多数64 GB或更大的SD卡)是从其他地方获取的。我不确定在哪里。

你的壳

在现代版本的Android上,外壳程序为mkshMirBSD Korn外壳程序。如果mksh正在运行,则要查找您的mksh版本,请输入:

echo $KSH_VERSION

1

我建议启动一个Android虚拟设备(AVD),使用adb连接到它,然后运行有问题的Android shell命令:

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]

如果有人知道为Android Shell命令提供标志以仅打印使用情况屏幕的标志,请告诉我。我尝试了--help,-help,-h,-usage等。

尝试运行ls /system/bin并查看http://developer.android.com/guide/developing/tools/adb.html#shellcommands


1

Android使用的Shell命令集似乎是toolbox。关于它的信息似乎不是集中的(这对我来说似乎很模糊),但是人们可以搜索并找到周围的信息,例如

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

为了“大量”使用命令行,通常建议使用BusyBox代替toolbox

学分/相关:

/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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.