对于通过终端程序使用Shell命令的情况,在哪里可以找到在Android中实现的命令的文档或帮助或手册页?
虽然可以通过man,PDF或基于Web的方式将它们放在设备上也很好。
当我从终端运行“ man”时,出现错误,并且我没有在网上找到好的来源。
对于通过终端程序使用Shell命令的情况,在哪里可以找到在Android中实现的命令的文档或帮助或手册页?
虽然可以通过man,PDF或基于Web的方式将它们放在设备上也很好。
当我从终端运行“ man”时,出现错误,并且我没有在网上找到好的来源。
Answers:
您可以查看http://www.busybox.net/downloads/BusyBox.html,以获取busybox及其提供的命令的说明。相信我,如果您要在控制台中进行工作,则可能要使用busybox。
busybox
,而是使用toolbox
。
android中的大多数终端命令是toolbox
程序提供的标准Linux / Unix / POSIX终端命令的受限版本。特别toolbox
是cp
(file copy)命令缺少,您必须使用它cat file1 > file2
。如果您在Shell中花费大量时间,则可能需要安装busybox
,它提供了一组更丰富的标准POSIX命令。
这里有一些关于Android Shell的信息:http : //benno.id.au/blog/2007/11/13/android-under-the-hood
由于我偶然发现了与您相同的问题,因此我开始在Android Shell中编译一系列有用的命令,包括示例。我的博客上有德语版本。
大部分“标准” 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或任何东西替代的东西。
在较旧的Android版本上,shell命令通常为:
使用type
要告诉你一个命令的存储位置,并ls -l
在命令来告诉你它是否是一个真正的二进制或符号链接。如果它是到Toolbox的符号链接,那么您将知道该命令是Toolbox的一部分。
一些命令(例如)kill
既可以作为内置的shell使用(通常将运行的版本),也可以作为in内置的(通常/system/bin
将永远不会运行的版本)使用。type
会告诉您将运行哪个版本。
的Android 6.0“棉花糖”和高达附带Toybox,最最常用的外壳命令的(cp
,mv
,ls
,等等)往往是Toybox玩具。玩具箱玩具通常包含内置帮助;不包括官方手册页。
尽管如此,Toybox并未包含所有内容,因此Toybox并未提供所有内容。例如,即使在Android 6.0上,“棉花糖” fsck_msdos
(仅应用于检查32 GB或更小的SD卡)似乎都来自FreeBSD或NetBSD。 fsck_exfat
(可以检查大多数64 GB或更大的SD卡)是从其他地方获取的。我不确定在哪里。
在现代版本的Android上,外壳程序为mksh
MirBSD Korn外壳程序。如果mksh
正在运行,则要查找您的mksh
版本,请输入:
echo $KSH_VERSION
我建议启动一个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
Android使用的Shell命令集似乎是toolbox
。关于它的信息似乎不是集中的(这对我来说似乎很模糊),但是人们可以搜索并找到周围的信息,例如
http://www.all-things-android.com/content/android-toolbox-command-reference
为了“大量”使用命令行,通常建议使用BusyBox代替toolbox
。
学分/相关:
/programming/41498651/how-to-execute-the-help-linux-command-on-android
https://github.com/jackpal/Android-Terminal-Emulator/wiki/Android-Shell-Command-Reference