You are on page 1of 7

Personal

Open source

Business

Explore

Pricing

Blog

Support

This repository

jackpal / Android-Terminal-Emulator
Code

Pull requests 2

Projects 0

Search

Watch

Wiki

Pulse

Sign in

194

Star

1,315

Sign up

Fork

540

Graphs

Android Shell Command Reference


martinjdavidson edited this page on 17 Dec 2012 6 revisions

The Android Shell

Pages 15
Home

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.

Action Bar (Android 3.0+) UI


Android Shell Command
Reference
Buttonless Device Support

Currently this documentation is incomplete, sorry!

Common problems
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:

Frequently Asked Questions


Installing BusyBox and ssh
without Rooting your Device
Launching Terminal Emulator for
Android from another App
Privacy Policy

Recent Updates
$ dir
dir: permission denied <---- this is a misleading error message, should say 'dir: not fRoadmap
ound'
$ ls
Tips for Including Terminal
... listing of current directory
Emulator for Android in a
Custom ROM

The PATH variable


The Android shell will run any program it finds in its PATH. The PATH is a colon (':') seperated list
of directories. You can find out what your shell's PATH is set to by using the built-in echo
command:

Translating to Other Languages


Troubleshooting Lack of Color in
Vi
Unicode UTF 8 Support
Wrapping up Development on
Terminal Emulator for Android

$ echo $PATH
/data/local/bin:/sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin

Clone this wiki locally

Depending upon your shell, you may see a different result.

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.

Commands
To find out what commands you have available to you, use the "ls" command on each of the
directories in the PATH variable.

https://github.com/jackpal/Android-Termin

Finding documentation for the Android commands.


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

Notice that by default there is no /data/local/bin directory. You can create this directory using the
"mkdir" command if you like.
$ ls /sbin
opendir failed, Permission denied

The /sbin directory exists, but you don't have permission to access it. You need root access. If you
have a developer phone, or otherwise have root access to your phone you can see what's in this
directory.
$ su
# ls /sbin
ueventd
adbd
# exit
$

Notice that the shell prompt changes from a '$' to a '#' to indicate that you have root access.
Notice also that neither of the /sbin commands are useful to the shell -- the adb and ueventd files
are 'daemon' programs used to implement the Android Debugger "adb" program that is used by
developers.
$ ls /vendor/bin
gpsd
pvrsrvinit

Vendor/bin is where device vendors can put device-specific executables. These files are from a
Nexus S.
$ ls /system/sbin
/system/sbin: No such file or directory

This directory does not exist on a Nexus S.


$ 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.

amix
aplay

Command line audio file player.


app_process
applypatch

Used to apply patches to android files.


arec

Command line audio recorder.


audioloop
bluetoothd

BlueTooth daemon
bmgr

Backup manager - type command by itself to get documentation.


bootanimation

Draws the boot animation. You may have to reset your phone to get out of this.
brcm_patchram_plus
bugreport
cat

Copy the contents of a file to standard output.


chmod

Change the mode of a file (e.g. whether it can be read or written.)


chown

Change the owner of a file.


cmp

Compare two files byte-by-byte


dalvikvm

The dalvik virtual machine. (Used to run Android applications.)


date

Prints the current date and time


dbus-daemon
dd

Convert and copy a file. By default copies standard in to standard out.


debuggerd
dexopt
df

Shows how much space is free on different file systems on your device.
dhcpcd
dmesg
dnsmasq
dumpstate
dumpsys
dvz
fsck_msdos
gdbserver
getevent
getprop
gzip
hciattach
hd
id
ifconfig

Shows the current configuration of network interfaces (IP, MAC address etc)
iftop

Shows the current processes using the network interfaces (top, but for networks)
ime
input
insmod
installd
ioctl
ionice
iptables

Manage the firewall


keystore
keystore_cli
kill

Send signals to processes.


linker
ln

Used to set up a file system link.


log
logcat

Prints the Android runtime log.


logwrapper
ls

Lists files.
lsmod
lsof
make_ext4fs

mediaserver
mkdir

Make a directory.
monkey

A program that sends random events, used to test applications. (Like having a monkey playing
with the device.)
mount
mtpd
mv

Move a file from one directory to another. (Only on the same file system. Use "cat a > b" to copy a
file between file systems.
nandread
ndc
netcfg
netd
netstat
newfs_msdos
notify
omx_tests
pand
ping
pm
pppd
printenv
ps

List active processes.


qemu-props
qemud
racoon
radiooptions
reboot

Reboot the device.


record
renice
rild
rm

Remove a file.
rmdir

Remove a directory.
rmmod
route
rtp_test
run-as
schedtest
schedtop
sdcard
sdptool
sendevent
service
servicemanager
setconsole
setprop

setup_fs
sh
showlease
sleep
smd
stagefright
start

Starts the Android runtime.


stop

Stops the Android runtime.


surfaceflinger
svc
sync
system_server
tc
testid3
toolbox
top

Shows which processes are currently using the most CPU time.
umount
uptime

Prints how long your device has been running since it was last booted.
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

Secure copy program. (Used to copy files over the network.)


showmap
showslab
sqlite3

Used to administer SQLite databases.


strace

System trace command - use to see what system calls a program makes.

su

Start a shell with root privileges.

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.

Other shells
Busybox
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.

Debian utilities
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".

Custom ROMs
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.

2016 GitHub, Inc.

Terms

Privacy

Security

Status

Help

Contact GitHub

API

Training

Shop

Blog

About

You might also like