linux下关于adb命令的一些知识

linux下关于adb命令的一些知识,第1张

Android Debug Bridge,一般简称为adb,主要存放在sdk安装目录下的platform-tools文件夹中,它是一个非常强大的命令行工具,通过这个工具你能够与你的android设备进行交互。同时这是一个包含了以下三部分的cs模式的程序:

1) adb client

从图中,我们知道client是运行在PC端的,每当我们发起一个adb命令的时候,就会开启一个client程序。当然,当我们开启DDMS或者ADT的时候,也会自动创建client。

当我们开启一个client的时候,它首先会去检测后台是否已经有一个server程序在运行着,否则会开启一个adb-server进程。

所有的client都是通过5037端口与adb-server进行通信的。

2)adb daemon(adbd)

从图中,我们知道daemon是作为一个后台进程运行在模拟器/真实Android设备中的。

daemon使用端口的范围是5554-5585,每个模拟器/设备连接到PC端时,总会开启这么一个后台进程,并且为其分配了两个连续的端口,比如:

Emulator 1, console: 5554

Emulator 1, adb: 5555

也正因为每个设备都分一组两个端口,也已adb连接手机的最大数量为16。

说回端口的作用,在这两个端口中,其中偶数端口是用于server 与设备进行交互的,可以让server直接从设备中读取数据,而奇数端口是用来与设备的adbd进行连接通信的。

2) adb server

从图中,我们同样可以知道,server也是作为一个后台的程序运行在PC端的,他负责管理client进程以及adb daemon之间的通信。

当一个server开启的时候,他会自动绑定并且监听5037端口,接收client通过该端口发送过来的命令。同时server还会对5555-5585间的奇数端口进行扫描,进行对已连接设备的定位。

1.2 常用的adb命令

首先我们先来介绍一下,adb命令的使用格式吧:

adb [-d|-e|-s ]

adb是必须的,接下来方括号[]里面的内容不是必须的,最后才是我们需要执行的命令 *** 作,例如 adb -s emulator-5554 install UCBrowser.apk (这是安装UC浏览器的意思)

下面先介绍下,前面几个参数的含义吧:

-d: 让唯一连接到该PC端的真实安卓设备执行命令,如果发现USB中连接有多部设备,将会报错

-e: 让唯一连接到该PC端的模拟器执行命令,如果发现开启了多个模拟器,将会报错

-s:通过设备的序列号进行指定设备执行命令

如果设备只连接有一个设备或者一个模拟器的时候,可以不用声明这三个参数,adb默认会让这部唯一连接到的设备进行命令执行。

ok,下面开始讲解常用的命令吧:

1) 查看当前PC端连接有多少设备:

adb devices

终端中的执行结果为:

从上图中,我们看到了设备有的两种状态,其实执行该命令,可能返回的状态有三种:

I. device 设备已经成功连接到了adb-server

  II. offline 设备并没有连接到adb或者没有响应

  III. no device 并没有设备/模拟器连接

2) 查看adb的版本

adb version

终端中的执行结果为:

3) 给设备进行软件的安装

adb -s install

eg:

adb -s 99eb07a9 install D://Test.apk

终端中的执行结果为:

除了上面这种方法,我们还有另外一个命令:

adb -s shell pm install [options]

其中[options]中最常用的选项是-r,代表着本次安装是重新安装,会保留用户数据。

4) 卸载设备中已经安装的软件

adb -s uninstall

eg:

adb -s 99eb07a9 uninstall cn.uc.test

终端中的执行结果为:

除了上面这种方法,我们还有另外一个命令:

adb -s uninstall [options]

这里的options是-k,加上该参数表明卸载软件后依旧保留用户数据

5) 将数据从设备复制到PC中

adb -s pull

eg:

adb -s 99eb07a9 pull /sdcard/stericson-ls D://

终端的执行结果:

在D://盘中我们也可以发现stericson-ls文件

6) 讲数据从PC端复制到设备中

adb -s push

eg:

adb -s 99eb07a9 push d://stericson-ls /sdcard/

终端的执行结果:

7) 获取连接到的手机的序列号

adb get-serialno

终端的执行结果:

8)获取设备的连接状态

adb -s get-state

eg:

adb -s 99eb07a9 get-stat

终端的执行结果:

9) 等待设备连接成功

adb wait-for-device

该命令将会阻塞一直到默认连接的那部机器状态变为device,也就是连接成功。

10) adb-server 的开启与关闭

adb kill-server

adb start-server

终端的执行结果:

有时候我们开启server会失败,这是因为我们装了的手机助手,豌豆荚或者其他软件自带有自己的adb,导致端口冲突开启失败。主要关掉那些软件并且杀掉那些软件自带的adb进程重来即可。

1.2 手机执行Shell命令

众所周知,Android的内核本身就是Linux,所以Android本身也支持Linux命令,但是因为是手机系统,所以进行了一定的删减,部分命令不支持,而不支持的部分,我们可以通过安装busybox这个软件进行

填补。

下面我们讲解下如何在手机中执行Shell命令:

1) 每次都加上adb shell来进行命令的发送与执行

adb shell

2) 先通过adb shell进入手机Shell执行状态,然后直接输入Linux命令,如图:

1.3 Activity Manager 常用命令与参数说明

一般情况下,我们最常用它来进行app的开启,并且传递一定的参数过去,比如:

adb shell am start -a android.intent.action.VIEW -n cn.uc.test/.MainActivity -d

在这里就不做太过详细和重复的说明了

1.4 Package Manager 常用命令与参数说明

1) 使一个apk处于禁用状态,相当于卸载了:

disable

其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 com.UCMobile/.main.UCMobile

eg:

adb shell su disable com.UCMobile/.main.UCMobile

终端执行结果:

同时我们在手机上发现,UC浏览器的图标不见了

2) 让一个apk从禁用状态恢复过来

enable

其中 PACKAGE_OR_COMPONENT的格式是 package/class, 如 com.UCMobile/.main.UCMobile

eg:

adb shell su enable com.UCMobile/.main.UCMobile

终端执行结果:

同时我们从手机上发现,UC浏览器的图标又回来啦。

3) 查看一个apk所在的路径

pm path

eg:

adb shell pm path com.UCMobile

终端执行结果:

4) 查看手机中装的所有的包

pm list packages

再次不做过多的说明

1.5其他常用的adb命令

1) 屏幕录像

例如,屏幕开始录像并且储存到/sdcard中,同时名字为demo.mp4

adb shell screenrecord /sdcard/demo.mp4

2) 关闭设备请求,开启设备

adb shell stop

adb shell start

3)设备关机以及重启

adb reboot

adb shutdown

linux命令格式:

说明:command: 命令名,相应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也可以省略,[]代表可选 parameter1 …:传给命令的参数:可以是零个一个或多个

一般是linux命令自带的帮助信息

如:

man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明

该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。

例:man ls man 2 printf

man中各个section意义如下:

man是按照手册的章节号的顺序进行搜索的。

man设置了如下的功能键:

在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令

当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来

ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。

Linux文件或者目录名称最长可以有265个字符,“.”代表当前目录,“..”代表上一级目录,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示。

ls常用参数:

Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

如:ls >test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )

注意: >输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。

查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。

管道:一个命令的输出可以通过管道做为另一个命令的输入。

管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。

clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )。

在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。Linux所有的目录和文件名大小写敏感

cd后面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。

使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。

通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。

需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。

可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。

可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。

常用参数及含义如下表所示:

Linux链接文件类似于Windows下的快捷方式。

链接文件分为软链接和硬链接。

软链接:软链接不占用磁盘空间,源文件删除则软链接失效。

硬链接:硬链接只能链接普通文件,不能链接目录。

使用格式:

如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式。

注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。

Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

grep一般格式为:

在grep命令中输入字符串参数时,最好引号或双引号括起来。例如:grep‘a ’1.txt。

常用选项说明:

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。

常用用法:

cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。

常用选项说明:

用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。

常用选项说明:

计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。

tar使用格式 tar [参数] 打包文件名 文件

tar命令很特殊,其参数前面可以使用“-”,也可以不使用。

常用参数:

tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz。

gzip使用格式如下:

gzip [选项] 被压缩文件

常用选项:

tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。

tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用xxxx.tar.gz2。

在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。

压缩用法:tar -jcvf 压缩包包名 文件...(tar jcvf bk.tar.bz2 *.c)

解压用法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)

通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。

压缩文件:zip [-r] 目标文件(没有扩展名) 源文件

解压文件:unzip -d 解压后目录文件 压缩文件

whoami该命令用户查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。

由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。

who命令用于查看当前所有登录系统的用户信息。

常用选项:

如果是图形界面,退出当前终端;

如果是使用ssh远程登录,退出登陆账户;

如果是切换后的登陆用户,退出则返回上一个登陆账号。

在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。

useradd命令的使用格式如下:

useradd [参数] 新建用户账号

在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。

可以通过su命令切换用户,su后面可以加“-”。su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:

注意:如果是ubuntu平台,需要在命令前加“sudo”,如果在某些 *** 作需要管理员才能 *** 作,ubuntu无需切换到root用户即可 *** 作,只需加“sudo”即可。sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root 用户的登陆和管理时间,提高了安全性。

方法一:

方法二:

groupadd 新建组账号 groupdel 组账号 cat /etc/group 查看用户组

使用方法:usermod -g 用户组 用户名

新创建的用户,默认不能sudo,需要进行一下 *** 作

-g用来制定这个用户默认的用户组

-G一般配合'-a'来完成向其它组添加

chmod 修改文件权限有两种使用格式:字母法与数字法。

字母法:chmod u/g/o/a +/-/= rwx 文件

cal命令用于查看当前日历,-y显示整年日历

设置时间格式(需要管理员权限):

date [MMDDhhmm[[CC]YY][.ss]] +format

CC为年前两位yy为年的后两位,前两位的mm为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒。如: date 010203042016.55。

显示时间格式(date '+%y,%m,%d,%H,%M,%S'):

进程是一个具有一定独立功能的程序,它是 *** 作系统动态执行的基本单元。

ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:

top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用top命令时加上-d 来指定显示信息更新的时间间隔。

在top命令执行后,可以按下按键得到对显示的结果进行排序:

kill命令指定进程号的进程,需要配合 ps 使用。有些进程不能直接杀死,这时候我们需要加一个参数“ -9 ”,“ -9 ” 代表强制结束.

使用格式:

kill [-signal] pid

df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。

du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。

du命令的使用格式如下: du [选项] 目录或文件名

Linux常用基本命令主要包括目录 *** 作命令、文件 *** 作命令、文件查看命令、磁盘管理命令、用户管理命令、系统管理命令等。

目录 *** 作命令:cd、ls、mkdir、pwd、rmdir。

文件 *** 作命令:cp、mv、touch、rm、grep、find、chmod、chown、chgrp、tar、split、gzip、tee、touch、unzip、zip、unrar、scp。

文件查看命令:cat、head、tail、more、nl、diff。

用户管理命令:useradd、usermod、userdel、passwd、su、groupadd、groupdel。

网络通信命令:netstat、route、ftp、sftp、ping、scp、telnet。

系统管理命令:who、uname、top、ps、kill、ifconfig、free、df、du、time、shutdown、reboot、man、last、halt、date、crontab、getconf。

磁盘管理命令:fdisk、mount、umount、sync。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7229596.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存