adb shell
你需要理解 adb shell 是什么。

- adb (Android Debug Bridge): 这是一个命令行工具,它充当你的电脑和 Android 设备之间的通信桥梁。
- shell: 在计算机术语中,Shell 是一个用户与操作系统内核交互的接口。
adb shell的意思就是:通过 ADB 连接到你的设备,并在设备上启动一个命令行 Shell 环境,在这个环境中,你可以输入各种 Linux/Android 命令来操作设备。
前提条件:
- 已安装 Android SDK Platform Tools。
- 设备上已开启 “开发者选项” 和 “USB 调试”。
如何使用 adb shell
打开你的电脑终端(Windows 是 CMD 或 PowerShell,macOS/Linux 是 Terminal),连接设备后,输入以下命令:
# 连接到设备并启动一个 shell adb shell # 或者,直接在一条命令中执行并退出(更常用) adb shell [command]
进入 adb shell 后,你会看到一个 或 提示符。
- 表示你当前是普通用户(如
shell或adb用户)。 - 表示你是 root 用户,拥有最高权限,普通设备默认是 。
常用 adb shell 命令分类详解
以下命令在 adb shell 内部执行,或者使用 adb shell [command] 的形式执行。

文件和目录操作 (类似 Linux 命令)
这些命令用于管理设备上的文件和文件夹。
| 命令 | 功能 | 示例 |
|---|---|---|
ls |
列出当前目录下的文件和文件夹 | ls /sdcard/ |
cd |
切换目录 | cd /data/data |
pwd |
显示当前工作目录的完整路径 | pwd |
mkdir |
创建新目录 | mkdir /sdcard/MyNewFolder |
rm |
删除文件 | rm /sdcard/test.txt |
rm -r |
递归删除目录及其所有内容 | rm -r /sdcard/MyNewFolder |
cp |
复制文件或目录 | cp /sdcard/source.txt /sdcard/backup.txt |
mv |
移动文件或目录,或重命名 | mv /sdcard/old_name.txt /sdcard/new_name.txt |
cat |
查看文件内容 | cat /sdcard/logcat.txt |
touch |
创建一个空文件 | touch /sdcard/empty_file.txt |
chmod |
修改文件或目录的权限 | chmod 777 /sdcard/my_app (谨慎使用) |
应用和包管理
这些命令用于查看、安装、卸载和管理应用。
| 命令 | 功能 | 示例 |
|---|---|---|
pm list packages |
列出所有已安装的应用包名 | pm list packages |
pm list packages -f |
列出应用及其对应的 APK 文件路径 | pm list packages -f |
pm path <package_name> |
查找指定应用的 APK 文件路径 | pm path com.android.settings |
pm install <path_to_apk> |
安装 APK (从电脑推送) | adb install my_app.apk (在 shell 外执行) |
pm uninstall <package_name> |
卸载应用 | pm uninstall com.example.unwanted_app |
am force-stop <package_name> |
强制停止一个应用 | am force-stop com.facebook.katana |
am start -n <package_name>/<activity_name> |
启动一个应用的指定 Activity | am start -n com.android.settings/.Settings |
系统信息和状态
获取设备的硬件、软件和运行状态信息。
| 命令 | 功能 | 示例 |
|---|---|---|
getprop |
获取系统属性列表 | getprop ro.build.version.release (获取安卓版本) |
dumpsys |
极其强大,用于转储系统服务信息,可以查询几乎所有内容。 | dumpsys (查看所有服务摘要)dumpsys meminfo (查看内存使用情况)dumpsys battery (查看电池信息)dumpsys activity (查看 Activity 栈) |
top |
实时显示正在运行的进程及其 CPU/内存占用 | top -m 10 -n 1 (显示 CPU 占用最高的 10 个进程) |
ps |
显示当前运行的进程列表 | ps |
df |
查看磁盘空间使用情况 | df |
wm size |
查看屏幕分辨率 | wm size |
wm density |
查看屏幕密度 | wm density |
网络操作
监控和管理网络连接。

| 命令 | 功能 | 示例 |
|---|---|---|
netstat |
显示网络连接、路由表、接口等 | netstat -an (显示所有活动的网络连接) |
ping |
测试网络连通性 | ping 8.8.8.8 |
ip addr show |
显示网络接口和 IP 地址信息 | ip addr show |
cat /proc/net/dev |
查看各网卡的流量统计 | cat /proc/net/dev |
日志操作
查看和管理系统日志。
| 命令 | 功能 | 示例 |
|---|---|---|
logcat |
核心命令,实时查看系统日志。 | logcat (查看所有日志)logcat | grep "MyAppTag" (过滤特定应用的日志)logcat -c (清空日志缓冲区) |
logcat -d |
读取并输出设备上已有的日志,不实时刷新 | logcat -d > log.txt (将日志保存到电脑的 log.txt 文件) |
权限和安全
-
Root 权限: 执行需要超级用户权限的命令,在普通设备上,这些命令会失败。
# 在 adb shell 内部尝试提升权限 su # 如果成功,提示符会从 $ 变为 # # 然后就可以执行 root 命令了 mount -o remount,rw /system
-
SELinux (Security-Enhanced Linux):
getenforce: 查看当前 SELinux 模式 (Enforcing,Permissive,Disabled)。setenforce 0: 临时设置为Permissive模式(只记录警告,不阻止操作)。setenforce 1: 恢复为Enforcing模式(严格阻止违规操作)。
高级和调试命令
| 命令 | 功能 | 示例 |
|---|---|---|
screenrecord |
录制设备屏幕(需 Android 4.4+) | screenrecord /sdcard/record.mp4 (录制,按 Ctrl+C 停止) |
input |
模拟用户输入(触摸、按键、滑动等) | input tap 500 1000 (在坐标 (500, 1000) 处点击)input text "Hello World" (输入文本) |
settings |
修改系统设置(需 Android 5.0+) | settings put global airplane_mode_on 1 (开启飞行模式)settings put system screen_brightness_mode 0 (关闭自动亮度) |
dumpsys batterystats |
详细的电池统计信息 | dumpsys batterystats |
实用技巧和组合命令
-
将文件从设备拉取到电脑
adb pull /sdcard/screenshot.png .
-
将文件从电脑推送到设备
adb push my_local_file.txt /sdcard/
-
在 shell 中执行带空格的命令 使用引号将命令或路径括起来。
adb shell "ls '/sdcard/My Documents'"
-
使用
>和>>进行输出重定向>: 覆盖写入。>>: 追加写入。# 将进程列表保存到设备上的文件 adb shell "ps > /sdcard/process_list.txt"
将日志追加到电脑的文件
adb logcat -d >> my_log.txt
重要注意事项
- 权限: 大部分
adb shell命令都在一个受限的shell用户下执行,无法修改系统核心文件,只有获取了 Root 权限的设备才能执行这些高危操作。 - 命令路径: 一些命令(如
am,pm,dumpsys,settings)是 Android 系统自带的,位于/system/bin/目录下,它们不是标准的 Linux 命令。 - 设备差异: 不同 Android 版本和厂商(如小米、华为、三星)的定制系统,其
adb shell命令和系统属性可能存在差异。 - 风险: 误用
rm -r,chmod,mount等命令可能导致系统不稳定或无法启动,请谨慎操作。
adb shell 是一个功能极其丰富的工具,掌握它是深入理解 Android 系统的关键,建议你从最基础的 ls, cd, cat 开始,逐步探索更复杂的命令。
