美文网首页
Linux常用命令

Linux常用命令

作者: In_The_Pause | 来源:发表于2019-12-04 17:19 被阅读0次

    ls 

    列出当前目录的文件

    常用参数: 

    -a: 显示当前目录的所有文件,包含隐藏文件; 

    -l: 显示文件详情; 

    -Z: 显示文件的 SE Linux context。 

    示例:ls -laZ [if !vml] [endif] 以 acct 为例: drwxr-xr-x:其中 d 代表该文件为目录,若为 l 则为软链接,软连接后又箭头代表其实际指向的文件,如etc -> /system/etc 则访问 etc 实际等同访问/system/etc,留空则代表该文件为一个文件;rwxr-xr-x 代表其权限为 755,具体算法为将上述字段每 3 个分为 1 组得 rwx,r-x,r-x,凡是有字母标记的皆计数 1,反之为 0,得二进制 111,101,101,转为 10 进制数字即得7, 5,5 ,即为该文件权限; root root :依次代表该文件的所有者(owner)为 root,用户组(group)为 root,上述属性可通过 chown 命令修改,日常替换文件需与原文件该属性维持一致; unlabeled:代表 SE Linux context。

    cd

    前往指定目录

    chown

    更改文件所有者和用户组   示例:chown root:root temfile 将 tmpfile文件 的所有者和用户组从 meidia:media 更改为 root:root

    cat

    将文件内容显示出来。

    注意不要随便去 cat 一个很大的文件或与 log 驱动节点无关的文件,否则将造成串口输出乱码或死机!!!示例:cat /proc/kmsg 将打印出所有 kernel log。

    logcat

    用于抓取 android logcat 打印。

    常用参数:

    -v : 设置打印格式,可用选项为 brief process tag thread raw time threadtime long,我们比较常用 logcat -v time,此时抓的 log 将在每一行开头添加时间信息;

    -s : 设置过滤器,过滤器的选择取决于软件中打印 log 时使用的 TAG ,如

    ActivityManagerService.java 中的打印使用的 TAG = ActivityManager,则抓相关打印方法为 logcat -s ActivityManager;

    -c : 清除 log 缓存,常用于清除之前的打印缓存,如复现某个必现问题,则可先执行 logcat -c 再抓 logcat 重现必现手法以排除无关 log 冗余信息影响问题定位; pm

    包管理命令,用于管理安卓 app 应用。

    常用参数:

    -l : 显示所有安装包应用,等同于 pm list packages

    以 package:/system/priv-app/Launcher2.apk=com.android.launcher 为例:

    Apk Launcher2 路径位于/system/priv-app/Launcher2.apk,其包名为 com.android.launcher

    path : 根据报名返回所在 apk 路径

    install : 安装 apk

    -r :安装一个已经存在的 apk 并保留其数据;

    -d : 允许降级安装

    如:pm install -r xxx.apk

    uninstall : 卸载 apk,命令仅支持卸载 data/app,后接包名;

    如:pm uninstall com.sys.migusmartlink.ott.tv //卸载包名为 com.sys.migusmartlink.ott.tv 的 apk

    monkey

    随机测试指令,会自动模拟一些用户操作对 APP 进行压力测试。

    常用参数:

    -p :指定启动的 APK,我们比较常用的是 monkey -p com.xxx.yyy 1 来启动一个 apk 的随机页面。

    am

    用于启动和管理 activity 和 service

    常用参数:

    start : 后接 intent 启动一个页面;

    startservice : 后接 intent 启动一个 service; stopservice :后接 intent 停止一个 service; broadcast :后接一个 intent 发送一个广播; kill :后接一个 app 包名,杀掉该 app 所有进程;在 shell 环境下用如下参数表述一个 intent:

    [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]

    [-c <CATEGORY> [-c <CATEGORY>] ...]

    [-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]

    [--esn <EXTRA_KEY> ...]

    [--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]

    [--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]

    [--el <EXTRA_KEY> <EXTRA_LONG_VALUE> ...]

    [--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE> ...]

    [--eu <EXTRA_KEY> <EXTRA_URI_VALUE> ...]

    [--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>]

    [--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]

    [--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]

    [--efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]]

    [-n <COMPONENT>] [-f <FLAGS>]

    示例:

    如我们在 logcat 抓到如下打印启动了播放器:

    START u0 {act=android.intent.action.VIEW dat=file:///storage/external_storage/sda1/[4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 typ=video/* flg=0x13000000 cmp=com.meson.videoplayer/.VideoPlayer} from pid 15204

    则我们可以使用如下 am 指令来启动它:

    am start -a android.intent.action.VIEW -d file:///storage/external_storage/sda1/[4KH265_60.000fps_9Mbps]Wetek-Astra-2m.mp4 -t video/* -f 0x13000000 -n com.meson.videoplayer/.VideoPlayer am start -n com.android.settings/.Settings //启动原生安卓设置主页

    am broadcast -a com.chinamobile.action.KEY_PRESS_DOWN --ei keyCode 11 && am broadcast -a com.chinamobile.action.IR_TEST --es irphycode "0x008EDD22" //发送广播

    grep

    查找命令,查找文件中是否包含指定字符串并输出该行示例:

    grep -rns "repeat" /system/etc/remote1.conf //找出/system/etc/remote1.conf 所有包含 repeat 的行并展示行号

    cp

    参数说明:

    -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。

    -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。

    -f:覆盖已经存在的目标文件而不给出提示。

    -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。

    -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。

    -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

    -l:不复制文件,只是生成链接文件。

    命令示例:cp -a a  parentPath/sonPath/ a对应当前文件夹下目录或文件名  可替换为绝对路径 

    mv

    移动指令,等效于 windows 的移动和重命名。

    示例:

    mv /data/tmp1 /data/local/tmp2 //将 data/tmp1移动到/data/local/ 并重命名为 tmp2

    rm

    删除指令,用于删除文件和文件夹,示例:

    rm -rf tmp // 删除 tmp,建议加上-rf参数,其会删除 tmp 所有的目录和文件。

    mkdir

    创建目录。常用参数:

    -p :若 mkdir -p 后接路径包含不存在路径则一并创建。

    sync

    同步命令,常用于 cp 替换文件或指令结束后同步状态,有益无害。

    > 

    重定向,即将一个命令的输出指向另外路径的文件,使用覆盖模式,即重定向到的文件若存在将覆盖里面的内容。

    示例:

    logcat > /data/xxx.log; //将 logcat输出到/data/xxx.log;

    cat /proc/kmsg > /data/kmsg.log; //将 kmsg 打印输出重定向到/data/kmsg.log

    >> 

    重定向,即将一个命令的输出指向另外路径的文件,使用拼接模式,即重定向到的文件若存在则将输出拼接到原文件的后面。

    示例:

    logcat > >/data/xxx.log; //例如我们做 netreboot的时候需要每一次开关机的 log,则会用拼接模式记录log。

    &

    将指令放至后台静默执行。

    &&

    依次执行指令,若有指令执行失败,则后续指令不会执行。

    示例:

    logcat -c && logcat //先清除 logcat 缓存再抓取 log

    相关文章

      网友评论

          本文标题:Linux常用命令

          本文链接:https://www.haomeiwen.com/subject/ccmlgctx.html