详解adb shell 常用命令

一、文件操作相关命令

1.文件操作命令

子命令 参数 说明
cd 进入目录
cat [-beflnstuv] [-B bsize] [file...] 查看文件内容
-n:显示行号
-b:显示行号,但会忽略空行
-s:显示行号,连续空行标记为一行
df 列出分区列表
du [-H] [-L] [-P] [-a] [-d depth] [-s] [-cghikmnrx] [file...] 查询文件或目录的磁盘使用空间
ls [-a] [-i] [-l] [-n] [-s] 列出目录内容
-a:列出所有文件,包括隐藏文件
-i:输出文件的i节点的索引信息
-l列出文件的详细信息
-n:用数字的GUID代替名称
-s:输出该文件的大小
grep [-abcDEFGHhliJLlmnOoPqRSsUVvwxZz]
[-A num]
[-B num]
[-C[num]
[-e pattern]
[-f file]
[--binary-files=value]
[--color=when]
[--context=num]
[--directories=action]
[--lable]
[--line-buffered]
[pattern]                             [file...]
指定文件中搜索特定的内容,并将含有这些内容的行标准输出
mkdir -p,-parents 创建目录
-p,--parents:递归创建目录
touch touch [-alm] [-t YYYYMMDD [.HHMMSS]] < file > 创建文件
rm rm [-f\|-i][-dPRrvWx]file 删除文件
-f:强制删除文件,系统不提示
-i:交互式删除,删除前提示
-d:改变硬连接数据删成0,删除该文件
-r:强制删除文件夹包括里面的文件
mv mv[-fiv]source target 移动文件(相当于剪切)
-f:强制移动,若文件已经存在目标则直接覆盖
-i:若目标文件已经存在,会询问是否覆盖
rmdir rmdir[-p] directory 删除目录
-p:递归删除目录,只能删除空目录
dd dd[operand...]
dd if =source of=targe
复制文件

2.文件权限命令与其他文件命令

子命令 参数 说明
chomd chomd[OPTION]< MODE > < FILE > 文件权限修改
-R:递归改变文件和目录
-h:不遵循符号连接
chown chown[-R[-H\|-L\|-P]] [-fhv]
owner : group | owner | : group file
更改某个文件或目录的属主和属组
md5 md5 file... 查询文件的MD5值
mount mount [-r] [-w] [-o options] [-t type] device directory 挂载设备信息
umount umount < path > 卸载分区挂载
cmp cmp[-b][-l][-n count] file1 file2 要指出两个文件是否存在差异
ln ln [-fhinsv] file1 file2
ln [-fhinsv] file...directory
用来在文件之间创建连接,创建连接后两个文件中任意一个文件改变文件内容另一文件都会相应进行同步改变

3.命令使用实例:

//进入设备
adb shell
//进入指定目录"/data/local/tmp"
cd /data/local/tmp
//查看目录
ls
//进入根目录
cd /
//进入指定目录"/data/local/tmp"
cd /data/local/tmp
//查看分区列表
df
//在当前目录下创建名为1的.txt文件(再创建个两个,命名为2和3,方便后面继续学习使用)
touch 1.txt
//列出所有文件(包括隐藏文件)的详细信息,此时可以查看刚刚的1.txt是否创建成功
ls -al
//在当前目录下创建一个名为1的文件夹
mkdir1
//列出所有文件(包括隐藏文件)的详细信息,此时可以查看刚刚的目录文件夹是否创建成功
ls -al
//在当前目录下创建递归目录,2下面包含3,3下面包含4
mkdir -p 2/3/4
//回到上一级目录,连续操作两次让他回到cd /data/local/tmp目录下
cd ..
//将1.txt文件移动到1目录中(剪切效果)
mv 1.txt 1
//进入1目录cd 1
//查看1.txt是否移动进去了
ls
//返回上一级目录
cd ..
//将当前目录下的2.txt文件复制到名为2的目录下并命名为2.txt
dd if=2.txtof=2/22.txt
//进入到目录2中
cd 2
//查看上个文件操作是否操作成功
ls
//回到上一级目录
cd ..
//进入1目录
cd 1
//删除当前目录下的1.txt文件
rm 1.txt
//回到上一级目
cd ..
//删除名为1的目录
rmdir 1
//查看删除操作是否删除成功
ls
//查看文件权限信息
la -al
//修改2.txt的文件权限为最高
chomd 777 2.txt
//查看刚刚修改的文件权限信息是否成功
la -al
//查看2.txt文件的md5
md5 2.txt
//查看挂载设备信息
mount
//将system分区变成可读可写"mount -o [option] devices directory"
mount -o remount,rw /dev/block/sda6 /system
//查看刚刚的修改是否成功
mount
//查看分区列表

df
//卸载掉"/storage/sdcard"分区挂载
umount /storage/sdcard
//查看刚刚的卸载是否成功
df
//输入点内容到2.txt中
echo 333 >>2.txt
echo 222 >>2.txt
//查看2.txt文件
cat 2.txt
//指出两个文件是否存在差异
cmp 2.txt 3.txt
//复制2.txt文件夹并粘贴到当前目录中,命名为22.txt
dd if=2.txt of=22.txt
//指出两个文件是否存在差异
cmp 2.txt 3.txt
cd
//在2目录下创建一个名为2o.txt的2的硬连接文件(因为2的目录下已经存在2.txt文件,不然使用"ln 2.txt 2"命令就可以了)
ln 2.txt 2/2o.txt
//进入到2目录
cd 2
//查看2o.txt文件内容
cat 2o.txt
//在2o.txt文件中加入内容
echo >>2o.txt
//返回上一级目录
cd ..
//查看连接文件2.txt的文件内容是否与2o.txt一致
cat 2.txt

二、信息查询相关命令

1.log 相关命令

子命令 参数 说明
dumpstate - 系统状态信息(需要root权限)
包括手机当前的内存信息、CPU信息、logcat缓存,kenel缓存等等
adb bugreport包含这个信息
bugreport - 里面含有dmesg,dumpstate和dumpsysy
demsg - kenel的log
logcat 参数较多 打印日志缓冲区日志
dumpsys meminfo [processName]
activity [processName]
获取系统各项服务信息

2.获取系统信息相关命令

子命令 参数 说明
getevent - 获取按键信息
getprop - 获取系统属性
setprop - 设置系统属性(需要root权限)
pm - 安装包管理,查询安装包的各种信息
ps - 查看进程信息
top -m num 最大显示条数
-n num 更新次数
-d num 两者更新时间
-s col按哪列排序(cpu,vss,rss,thr)
-t显示线程信息而不是进程
-h显示帮助文档
获取CPU使用情况
procrank - 查询各进行内存消耗情况(需要root权限)
wm size 获取屏幕分辨率

3.命令使用实例

//输出系统状态信息至F:\test\dumpstate.txt,由于需要root权限,所以没root的过的手机输出为空
adb shell dumptate >F:\test\dumpstate.txt
//输出过去系统的状态,log,一般操作过程中未抓取log的时候一旦出现问题就使用这个命令来查看
adb shell bugreport >F:\test\bugreport.txt
//输出内核信息
adb shell dmesg
//输出当前缓冲区日志 并保存
adb shell logcat >F:\test\bugreport.txt
//输出内存信息
adb shell dumpsys meminfo
//输出当前CPU使用情况信息
adb shell dumpsys cpuinfo
//输出当前activity使用情况信息
adb shell dumpsys activity
//相当于过滤,只找名为"mF"的activity使用情况信息
adb shell dumpsys activity | find "mF"
//获取按键信息,在手机没有按键 信息的情况下会先提示你每个设备的ID代表的设备信息,按键过程中会实时刷新
adb shell getevent
//获取系统属性
adb shell getprop
//查看pm帮助信息
adb shell pm
//查看手机内的安装包列表
adb shell pm list packages
//查看当前手机进程信息
adb shell ps
//获取cpu使用情况,只查看一次,不实时刷新
adb shell top -n 1
//获取前十的cpu使用情况,只查看一次,不实时刷新
adb shell top -n 1 -m 10
//查询各进行内存消耗情况
adb shell procrank
//详细查询某个包的内存使用情况
adb shell dumpsys meminfo packageName

三、操作手机相关命令

1.相关命令

子命令 参数 说明
bmgr [backup | restore | list | transport | run]
bmgr backup PACKAGE
bmgr restore
......
数据备份与还原
kill kill [-s signame | -signu | -signame]{job | pid | pgrp}...
kill -l [exit_status...]
结束进程
reboot 重启手机
svc power 控制电源管理
data 控制数据连接
控制wifi管理
控制USB状态
控制电源、网络、USB
wipe wipe system | data | all 擦除分区,恢复出厂设置
am am [subcommand] [options]
am start
......
antivyty管理器
用于开启应用,广播,服务等功能

2.命令使用实例

//查询已安装包名列表
adb shell pm list package
//对com.tencent.mm包使用monkey命令
adb shell monkey -p com.tencent.mm --throttle 200 50000
//查找monkey进程信息
adb shell ps | find "monkey"
//杀掉monkey进程,例子中的数字是monkey的PID进程号
adb shell kill 23770
//重启手机
adb shell reboot
//打开svc帮助界面
adb shell svc
//查询wifi操作帮助
adb shell svc wifi
//关闭wifi
adb shell svc wifi disable
//打开wifi

adb shell svc wifi enable
//擦除data,即恢复出厂设置
adb shell wipe data
//指定查询"mF"的activity信息
adb shell dumpsys activity | find "mF"
//启动指定activity
adb shell am start -n com.android.browser/.BrowserActivyty
//查看am命令的帮助信息
adb shell am

四、测试用途相关命令

1.测试信息相关命令

子命令 参数 说明
iftop iftop [-r repeats] [-d delay] 列出网络传输包情况
Monkey Monkey [options] count 执行Monkey命令
netstat - 显示各种网络相关信息
ping ping [option] ipv4 因特网包探测器,用于测试网络连接量的程序
ping6 ping6 [option] ipv6 因特网包探测器,用于测试网络连接量的程序
screenrecord screenrecord [options] < filename > 屏幕录像(只支持android4.4以上的设备)
screencap [-hp] [-d display-id] [FILENAME]
-p 文件保存路径
屏幕截图
uiautomator uiautomator [options] 执行uiautomator脚本

命令使用实例:

//进入交互模式
adb shell
//列出网络传输包情况
iftop
//显示各种网络相关信息
netstat
//实时查看网络连接量
ping www.baidu.com
//实时查看网络连接量
ping6 www.baidu.com
//屏幕录像,保存路径为/mnt/sdcard/1.mp4,需要注意的是屏幕录像只支持android4.4以上的设备使用ctrl+c停止录像
screenrecord /mnt/sdcard/1.mp4
//将sd卡路径下的1.mp4导出到F盘(先退出交互模式)
adb pull /mnt/sdcard/1.mp4 f:\
//截图
screencap /mnt/sdcard/1.png

2.输入信息命令

1)input

作用:模拟硬件设备的输入
格式:input []  [...]
参数:

  • test(Defalt;touchscreen)
  • keyevent [--longpress] ...(Default:keyboard)
  • tap (Default:touchscreen)
  • swipe [duration(ms)] (Default:touchscreen)
  • press (Default:trackball)
  • roll (Default:trackball)

2)命令使用实例

//进入交互模式
adb shell
//输入文本123456
input text 123456
//使用keycode num输入,keycode表可百度查询
input keyevent 7
//使用keycode name输入1
input keyevent KEYCODE_1
//使用keycode name按空格键
input keyevent KEYCODE_HOME
//点击坐标367 1277
input tap 367 1277
//从(1024,945)滑动到(134,968)200毫秒内
input swipe 1024 945 134 968 200

到此这篇关于详解adb shell 常用命令的文章就介绍到这了,更多相关adb shell命令 内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • adb shell input keyevent 控制按键输入的数值(收藏版)

    adb shell的功能很强大,可以使用很多功能,今天我们说下通过控制按键输入:adb shell input keyevent xx ,具体数值xx如下 KEYCODE_CALL 进入拨号盘 5 KEYCODE_ENDCALL 挂机键 6 KEYCODE_HOME 按键Home 3 KEYCODE_MENU 菜单键 82 KEYCODE_BACK 返回键 4 KEYCODE_SEARCH 搜索键 84 KEYCODE_CAMERA 拍照键 27 KEYCODE_FOCUS 拍照对焦键 80 K

  • 利用adb shell和node.js实现抖音自动抢红包功能(推荐)

    逻辑很简单,在抖音视频播完之后如果是红包视频,会跳出红包. 我们模拟逻辑如下: 点击屏幕中央,如果有红包打开红包,没有红包则暂停视频. 点击返回按钮,如果有红包关闭红包界面,没有红包提示再按一次退出(其实没退出). 进行上滑操作,进入下一个视频. 点击.返回.上滑,就这么三步行为,无论有红包没红包都成立,只要计算好时间就行. 代码 下面是一段 node.js 代码: touch.js var process = require('child_process'); function exec(sh

  • Android shell命令行中过滤adb logcat输出的几种方法

    我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adb logcat输出的方法.        1.只显示需要的输出(白名单) 最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配.简单的匹配一行当中的某个字符串,例如 MyApp: adb logcat | grep MyApp adb logcat | grep -i

  • Window下adb shell中文乱码问题解决方法

    Window下,进行adb shell后,举个例子,如果你的sdcard下保存着中文字符文件名的文件,则在CMD下显示是一些无规律的中文并夹杂着乱码. 出现这种情况的原因是: Android中使用的是UTF-8字符,而CMD默认字符集是ANSI,中文环境下即为GBK,代码页为936.查询当前代码页的方法为在CMD下直接输入"chcp"命令,并会返回"活动的代码页:936"字样.找出原因了,解决办法也就有了. 只要使用UTF-8格式的代码页65001就OK了,命令如下

  • 详解adb shell 常用命令

    一.文件操作相关命令 1.文件操作命令 子命令 参数 说明 cd 无 进入目录 cat [-beflnstuv] [-B bsize] [file...] 查看文件内容 -n:显示行号 -b:显示行号,但会忽略空行 -s:显示行号,连续空行标记为一行 df 无 列出分区列表 du [-H] [-L] [-P] [-a] [-d depth] [-s] [-cghikmnrx] [file...] 查询文件或目录的磁盘使用空间 ls [-a] [-i] [-l] [-n] [-s] 列出目录内容

  • 详解MySQL8.0+常用命令

    开启远程访问 通过以下命令开启root用户远程访问权限: CREATE USER 'root'@'%' IDENTIFIED BY 'password'; GRANT ALL ON *.* TO 'root'@'%'; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; FLUSH PRIVILEGES; 注:其中,password为root的密码,FLUSH PRIVILEGES为刷新权限 导入数

  • 详解Linux上svn命令行批量操作

    详解Linux上svn命令行批量操作 虽然说git很好,大多数时候我也是使用git,但是有时候因为一些原因,不得不使用svn,而在linux上使用svn是没有像windows上的tortoisesvn的软件的(网上有说有类似的,但是折腾了很久仍然没有成功),所以直接来命令行吧. 我们直接安装svn就好,然后文件修改之后使用命令 svn status 查看文件的跟踪信息,这里会使用一些代号,对应的大概是 " " 无修改 "A" 新增 "C" 冲突

  • 浅谈Linux下tar,jar压缩,解压的常用命令

    如下所示: tar cvf /data/d2/apps.tar apps cd /data01/applsrm/SRM tar xvf apps.tar jar cvf /data01/xxx.jar * cd wq jar xvf xxxx.jar 以上这篇浅谈Linux下tar,jar压缩,解压的常用命令就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 详解python算法常用技巧与内置库

    近些年随着python的越来越火,python也渐渐成为了很多程序员的喜爱.许多程序员已经开始使用python作为第一语言来刷题. 最近我在用python刷题的时候想去找点python的刷题常用库api和刷题技巧来看看.类似于C++的STL库文档一样,但是很可惜并没有找到,于是决定结合自己的刷题经验和上网搜索做一份文档出来,供自己和大家观看查阅. 1.输入输出: 1.1 第一行给定两个值n,m,用空格分割,第一个n决定接下来有n行的输入,m决定每一行有多少个数字,m个数字均用空格分隔. 解决办法

  • 详解C语言常用的一些转换工具函数

    1.字符串转十六进制 代码实现: 2.十六进制转字符串 代码实现: 或者 效果:十六进制:0x13 0xAA 0x02转为字符串:"13AAA2" 3.字符串转十进制 代码实现: 第一种,如果带负号 这个就是atoi函数的实现: 效果:字符串:"-123" 转为 -123 第二种,如果不带负号: 效果:字符串:"123" 转为 123 第三种:包含转为浮点数: 效果:字符串:"123.456" 先转为 123456,然后除以1

  • 详解Linux使用ss命令结合zabbix对socket做监控

    前言 这里我们使用zabbix对其进行监控,使用的是ss命令,不使用netstat命令,因为ss的速度快很多,不信的话可以去测一下哈,一台机器的socket越多,对比越明显.而且ss命令能显示更多的内容,其实我对这两个命令不是特别的熟悉,通过man ss可以看到: 一.ss命令 ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain socket

  • 详解Python中常用的图片处理函数的使用

    目录 cvtColor函数 split()和merge() threshold()函数 自定义threshold函数进行二值化 色度函数applyColorMap cvtColor函数 这个函数有两个参数 1,src 要进行变换的原图像 2,code 转换代码标识 例子: import cv2 image=cv2.imread("ddd.jpg") image1=cv2.cvtColor(image,cv2.COLOR_BGR2BGRA) cv2.imshow(""

  • 详解C++中常用的四种类型转换方式

    目录 1.静态类型转换:static_cast(exp) 2.动态类型转换:dynamic_cast(exp) 3.常类型转换:const_case(exp) 4. 解释类型转换: reinterpret_cast(exp) 1.静态类型转换:static_cast(exp) 1.1静态类型转换主要用于两种转换环境 1.1.1 C++内置类型的转换:与C风格强转类似. 与c相同的地方: #include <iostream> using namespace std; int main() {

  • 详解flutter中常用的container layout实例

    目录 简介 Container的使用 旋转Container Container中的BoxConstraints 总结 简介 在上一篇文章中,我们列举了flutter中的所有layout类,并且详细介绍了两个非常常用的layout:Row和Column. 掌握了上面两个基本的layout还是不够的,如果需要应付日常的layout使用,我们还需要掌握多一些layout组件.今天我们会介绍一个功能强大的layout:Container layout. Container的使用 Container是一

随机推荐