BELOW ARE THE COMMANDS AND THE PROCESSES THAT WILL HAPPEN BY TYPING THE COMMANDS!!!
IF YOU DO NOT UNDERSTAND SOMETHING PLEASE SO NOT TRY IT.. IT IS RISKY AND WILL POTENTIALLY HARM YOUR DEVICE!!
DO NOT BLAME ME THEN!!
THIS IS A REFERENCE AND DEV THREAD. NOOBS SHOULD NOT LINGER AROUND HERE
The Android Shell
A "shell" is a program that listens to keyboard input from a user and performs actions as directed by the user. Android devices come with a simple shell program. This shell program is mostly undocumented. Since many people are curious about it I thought I'd write up some documentation for it.
Currently this documentation is incomplete, sorry!
The built-in shell has very limited error handling. When you type a command name incorrectly it will say "permission denied", even though the real problem is that it couldn't find the command:
$ dir dir: permission denied <---- this is a misleading error message, should say 'dir: not found' $ ls ... listing of current directory
The Android shell will run any program it finds in its PATH. The PATH is a list of directories. You can find out what your shell's PATH is set to by using the built-in echo command:
$ echo $PATH /data/local/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
Built in Commands
Every shell has a few built-in commands. Some common built-in commands are:
- echo -- prints text to stdout.
- set -- sets shell variables
- export -- makes shell variables available to command-line programs
- cd -- change the current directory.
- pwd -- print name of the current directory.
To find out what commands you have available to you, use the "ls" command on each of the directories in the PATH variable.
Many of the Android commands are based on standard Linux (or bsd) commands. If you're curious about a command, you can sometimes learn how it works by using the "man" command on a desktop Linux or OSX (Apple Macintosh) computer. The Linux or OSX version of the command may be different in details, but much of the documentation will still apply to the Android version of the command.
Another source of documentation for people without a Linux or OSX machine handy is to use a web browser and use a web search engine to search for the text: "man Linux command-name".
List of commands
The following is a list of the commands that are present on a Nexus S phone running an Android 2.3.3 "user-debug" build. Many of these commands are not present on a "user" phone. (They are missing from a "user" phone because they are specific to developing or debugging the Android operating system.)
$ ls /data/local/bin /data/local/bin: No such file or directory
$ ls /sbin opendir failed, Permission denied
$ su # ls /sbin ueventd adbd # exit $
Notice that the shell prompt changes from a '$' to a '#' to indicate that you have root access.
$ ls /vendor/bin gpsd pvrsrvinit
$ ls /system/sbin /system/sbin: No such file or directory
$ ls /system/bin am
am is the Android Activity Manager. It's used to start and stop Android activities (e.g. applications) from the command line. Type am by itself to get a list of options.
brcm_patchram_plus bugreport cat
debuggerd dexopt df
dhcpcd dmesg dnsmasq dumpstate dumpsys dvz fsck_msdos gdbserver getevent getprop gzip hciattach hd id ifconfig iftop ime input insmod installd ioctl ionice iptables keystore keystore_cli kill
lsmod lsof make_ext4fs mediaserver mkdir
mount mtpd mv
nandread ndc netcfg netd netstat newfs_msdos notify omx_tests pand ping pm pppd printenv ps
qemu-props qemud racoon radiooptions reboot
record renice rild rm
rmmod route rtp_test run-as schedtest schedtop sdcard sdptool sendevent service servicemanager setconsole setprop setup_fs sh showlease sleep smd stagefright start
surfaceflinger svc sync system_server tc testid3 toolbox top
vdc vmstat vold watchprops wipe wpa_cli wpa_supplicant $ ls /system/xbin add-property-tag btool check-lost+found dexdump dhdutil hcidump latencytop librank opcontrol oprofiled procmem procrank rawbu scp
showmap showslab sqlite3
Versions of the Android Shell
Android 1.0 used a shell that had no tab completion or history editing.
Android 2.3 added history editing. You can for example use the up/down arrows to edit previous commands.
Busybox is a program that contains a shell and a set of command line utilities. Search Android Market for "Busybox" and you should find some versions you can install. The Busybox shell includes tab completion and history editing. Some versions of Busybox for Android do not require that you root your phone.
You can install the full Debian shell and utilities. (Debian is a popular desktop Linux distribution.) I don't know the details, and it may require a "rooted" phone. Try a web search for "Debian Android install".
Some custom ROMs come with their own shells and utilities. If you are using a custom ROM, check its documentation to find out what's available.