鸿蒙开发进阶(OpenHarmony)系统命令功能总结

鸿蒙NEXT开发实战往期必看文章:

一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发!

“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通)

HarmonyOS NEXT应用开发案例实践总结合(持续更新......)

HarmonyOS NEXT应用开发性能优化实践总结(持续更新......)


cpup

命令功能

cpup命令用于查询系统CPU的占用率。

命令格式

cpup [mode] [taskID]

参数说明

表1 参数说明

参数 参数说明 取值范围
mode - 缺省:显示系统最近10s内的CPU占用率。
- 0:显示系统最近10s内的CPU占用率。
- 1:显示系统最近1s内的CPU占用率。
- 其他数字:显示系统启动至今总的CPU 占用率。
[0, 0xFFFFFFFF]
taskID 任务ID号 [0, 0xFFFFFFFF]

使用指南

  • 参数缺省时,显示系统10s前的CPU占用率。

  • 只有一个参数时,该参数为mode,显示系统相应时间前的CPU占用率。

  • 输入两个参数时,第一个参数为mode,第二个参数为taskID,显示对应ID号任务的相应时间前的CPU占用率。

使用实例

举例:输入cpup 1 5

输出说明

示例 指令输出结果

OHOS # cpup 1 5pid 5 

CpuUsage in 1s: 0.0

date

命令功能

date命令用于查询系统日期和时间。

命令格式

  • date

  • date --help

  • date +[Format]

  • date -u

参数说明

表1 参数说明

参数 参数说明 取值范围
–help 使用帮助。 N/A
+Format 根据Format格式打印日期和时间。 –help中列出的占位符。
-u 显示UTC,而不是当前时区 N/A

使用指南

  • date参数缺省时,默认显示系统UTC日期和时间。

  • –help、+Format、-u不能混合使用。

  • 目前命令不支持设置时间和日期。

特殊说明

date -u参数 shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。

使用实例

举例:输入 date +%Y–%m–%d

输出说明

示例:按指定格式打印系统日期

OHOS:/$ date +%Y--%m--%d
1970--01--01

dmesg

命令功能

dmesg命令用于显示开机信息,以及系统启动过程和运行过程中的信息。

命令格式

dmesg

dmesg [-c/-C/-D/-E/-L/-U]

dmesg -s [size]

dmesg -l [level]

dmesg > [fileA]

参数说明

表1 参数说明

参数 参数说明 取值范围
-c 打印缓存区内容并清空缓存区。 N/A
-C 清空缓存区。 N/A
-D/-E 关闭/开启控制台打印。 N/A
-L/-U 关闭/开启串口打印。 N/A
-s size 设置缓存区大小 size是要设置的大小。 N/A
-l level 设置缓存等级。 [0, 5]
> fileA 将缓存区内容重定向写入文件。 N/A

使用指南

  • 该命令依赖于LOSCFG_SHELL_DMESG,在kernel/liteos_a中输入make menuconfig命令。此时会弹出配置项,找到Debug选项并进入,然后在配置项中开启"Enable Shell dmesg": Debug —> Enable a Debug Version —> Enable Shell —> Enable Shell dmesg

  • dmesg参数缺省时,默认打印缓存区内容。

  • 各“ - ”选项不能混合使用。

    1. 写入文件需确保已挂载文件系统。
    2. 关闭串口打印会影响shell使用,建议先连接telnet再尝试关闭串口。

使用实例

举例:输入dmesg > dmesg.log。

输出说明

示例 dmesg重定向到文件

OHOS # dmesg > dmesg.log
Dmesg write log to dmesg.log success

exec

命令功能

exec命令属于shell内置命令,在exec执行命令时,不启用新的shell进程。目前实现最基础的执行用户态程序的功能

命令格式

exec <executable-file>

参数说明

表1 参数说明

参数 参数说明
executable-file 有效的可执行文件。

使用指南

该命令当前仅支持执行有效的二进制程序,程序成功执行,默认后台运行,但与Shell共用终端,可能会导致程序打印输出与Shell输出交错显示。

使用实例

举例:

输入exec helloworld。

输出说明

OHOS # exec helloworld
OHOS # hello world!

 说明: 可执行文件执行后,先打印“OHOS #”提示符原因:目前Shell “exec”命令执行均为后台执行,结果可能导致提示符提前打印。

free

命令功能

free命令可显示系统内存的使用情况。

命令格式

free [-b | -k | -m | -g | -t]

参数说明

表1 参数说明

参数 参数说明
无参数 以Byte为单位显示。
–help/-h 查看free命令支持的参数列表。
-b 以Byte为单位显示。
-k 以KiB为单位显示。
-m 以MiB为单位显示。
-g 以GiB为单位显示。
-t 以TiB为单位显示。

使用指南

无。

使用实例

举例:分别输入free、free -k、free -m.

输出说明

OHOS:/$ free
                total        used        free      shared     buffers
Mem:          2819652     2754468       65184           0           0
-/+ buffers/cache:        2754468       65184
Swap:               0           0           0
OHOS:/$ free -k
                total        used        free      shared     buffers
Mem:             2753        2692          60           0           0
-/+ buffers/cache:           2692          60
Swap:               0           0           0
OHOS:/$ free -m
                total        used        free      shared     buffers
Mem:                2           2           0           0           0
-/+ buffers/cache:              2           0
Swap:               0           0           0

表2 输出说明

输出 说明
total 表示系统动态内存池总量。
used 表示已使用内存总量。
free 表示未被分配的内存大小。
shared 表示共享内存大小。
buffers 表示缓冲区内存大小。

help

命令功能

help命令用于显示当前操作系统内所有操作指令和部分toybox指令。

命令格式

help

参数说明

使用指南

help用于显示当前操作系统内所有操作指令。

使用实例

举例:输入help

输出说明

查看系统内所有操作指令。

After shell prompt "OHOS # ":
Use ` [args ...]` to run built-in shell commands listed above.
Use `exec  [args ...]` or `./ [args ...]` to run external commands.

OHOS:/$ help
***shell commands:*
arp          cat          cat_logmpp   cd           chgrp        chmod
chown        cp           cpup         date         dhclient     dmesg
dns          format       free         help         hi3881       hwi
ifconfig     ipdebug      kill         log          ls           lsfd
memcheck     mkdir        mount        netstat      oom          panicreset
partinfo     partition    ping         ping6        pmm          pwd
reset        rm           rmdir        sem          shm          stack
statfs       su           swtmr        sync         systeminfo   task
telnet       touch        umount       uname        v2p          vmm
watch        writeproc
After shell prompt "OHOS # ":
Use ` [args ...]` to run built-in shell commands listed above.
Use `exec  [args ...]` or `./ [args ...]` to run external commands.
***toybox commands:
chgrp chmod chown cp date du free help ifconfig kill ls mkdir mount
mv ping ps reboot rm rmdir top touch umount uname
Use `toybox help [command]` to show usage information for a specific command.
Use `shell` to enter interactive legacy shell.
Use `alias` to display command aliases.

hwi

命令功能

hwi命令查询当前中断信息

命令格式

hwi

参数说明

使用指南

  • 输入hwi即显示当前中断号、中断次数及注册中断名称。

  • 若开关LOSCFG_CPUP_INCLUDE_IRQ打开,则还会显示各个中断的处理时间ATime、CPU占用率以及中断类型。

使用实例

举例:输入hwi

输出说明

  • 显示中断信息(LOSCFG_CPUP_INCLUDE_IRQ关闭)

    OHOS # hwi
     InterruptNo     Count     Name
            0:         0:
            1:   1025641:
            2:         0:
           29:    824049:
           37:         0:      rtc_alarm
           38:        24:      uart_pl011
           48:         3:      GPIO
           59:         0:
           62:       530:      MMC_IRQ
           63:        70:      MMC_IRQ
           64:       280:      ETH
           67:        58:      tde
           68:         0:      JPGE_0
           69:         0:      IVE
           70:         0:      VGS
           72:         0:      VEDU_0
           73:         0:      nnie0
           74:         0:      nnie_gdc0
           75:         0:      VPSS
           76:         0:      VI_PROC0
           77:         0:      JPEGD_0
           83:     49455:      HIFB_SOFT_INT
           87:         0:      AIO interrupt
           88:         0:      VI_CAP0
           89:         0:      MIPI_RX
           90:     49455:      VO int
           91:     49456:      HIFB Int
           96:     17601:      MMC_IRQ
          100:         0:      SPI_HI35XX
          101:         0:      SPI_HI35XX
          102:         0:      SPI_HI35XX
    
  • 显示中断信息(LOSCFG_CPUP_INCLUDE_IRQ打开)

    OHOS # hwi
     InterruptNo      Count  ATime(us)   CPUUSE  CPUUSE10s  CPUUSE1s   Mode Name
              0:          0          0     0.0        0.0       0.0  normal
              1:     937031          0     0.1        0.1       0.1  normal
              2:          0          0     0.0        0.0       0.0  normal
             29:     726166          5     0.54       0.57      0.59 normal
             37:          0          0     0.0        0.0       0.0  normal rtc_alarm
             38:         17          5     0.0        0.0       0.0  normal uart_pl011
             48:          3          4     0.0        0.0       0.0  normal GPIO
             59:          0          0     0.0        0.0       0.0  normal
             62:        531          1     0.0        0.0       0.0  normal MMC_IRQ
             63:         69          1     0.0        0.0       0.0  normal MMC_IRQ
             64:        292          2     0.0        0.0       0.0  normal ETH
             67:         54         76     0.0        0.0       0.0  shared tde
             68:          0          0     0.0        0.0       0.0  shared JPGE_0
             69:          0          0     0.0        0.0       0.0  shared IVE
             70:          0          0     0.0        0.0       0.0  shared VGS
             72:          0          0     0.0        0.0       0.0  shared VEDU_0
             73:          0          0     0.0        0.0       0.0  shared nnie0
             74:          0          0     0.0        0.0       0.0  shared nnie_gdc0
             75:          0          0     0.0        0.0       0.0  shared VPSS
             76:          0          0     0.0        0.0       0.0  shared VI_PROC0
             77:          0          0     0.0        0.0       0.0  shared JPEGD_0
             83:      45529          8     0.5        0.5       0.5  shared HIFB_SOFT_INT
             87:          0          0     0.0        0.0       0.0  shared AIO interrupt
             88:          0          0     0.0        0.0       0.0  shared VI_CAP0
             89:          0          0     0.0        0.0       0.0  shared MIPI_RX
             90:      45534         11     0.6        0.7       0.7  shared VO int
             91:      45533          2     0.1        0.1       0.1  shared HIFB Int
             96:      17383          2     0.0        0.0       0.0  normal MMC_IRQ
            100:          0          0     0.0        0.0       0.0  normal SPI_HI35XX
            101:          0          0     0.0        0.0       0.0  normal SPI_HI35XX
            102:          0          0     0.0        0.0       0.0  normal SPI_HI35XX
    

表1 输出说明

输出 说明
InterruptNo 中断号。
Count 中断次数。
Name 注册中断名称。
ATime 中断的处理时间。
CPUUSE CPU占用率。
CPUUSE10s 最近10s CPU占用率。
CPUUSE1s 最近1s CPU占用率。
mode 中断类型:
- normal:  非共享中断。
- shared:  共享中断。

kill

命令功能

kill命令用于发送特定信号给指定进程,让它去终结不正常的应用。

命令格式

kill [-l [signo] | -s signo | -signopid…

参数说明

表1 参数说明

参数 参数说明 取值范围
–help 查看kill命令支持的参数列表 N/A
-l 列出信号名称和编号。 N/A
-s 发送信号 N/A
signo 信号ID。 [1, 30]
pid 进程ID。 [1, MAX_INT]

须知: signo有效范围为[0, 64],建议取值范围为[1, 30],其余为保留内容。

使用指南

  • 必须指定发送的信号编号及进程号。

  • 进程编号取值范围根据系统配置变化,例如系统最大支持pid为256,则取值范围缩小为[1, 256]。

特殊说明

kill命令以及参数 shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。

使用实例

  • 查看当前进程列表,查看需要杀死的进程PID(42)。

    OHOS:/$ ps
      allCpu(%):    4.67 sys,  195.33 idle
      PID  PPID PGID       UID  Status VirtualMem ShareMem PhysicalMem CPUUSE10s  PName
        1    -1    1         0 Pending   0x33b000  0xbb000     0x4db02      0.0   init
        2    -1    2         0 Pending   0xdabc08        0    0xdabc08      1.14  KProcess
        3     1    3         7 Pending   0x72e000 0x1a3000    0x1d24c2      0.0   foundation
        4     1    4         8 Pending   0x362000  0xbb000     0x5c6ff      0.0   bundle_daemon
        5     1    5         1 Pending   0xdfa000 0x2e7000    0x1484f0      0.0   appspawn
        6     1    6         0 Pending   0x688000 0x137000    0x11bca0      0.0   media_server
        7     1    7         0 Pending   0x9d2000 0x103000     0xa1cdf      0.88  wms_server
        8     1    8         2 Pending   0x1f5000  0x48000     0x47dc2      0.2   mksh
       10     5    5       101 Pending  0x11ec000 0x2f9000    0x206047      0.93  com.example.launcher
       12     1   12         0 Pending   0x4d4000 0x112000     0xe0882      0.0   deviceauth_service
       13     1   13         0 Pending   0x34f000  0xbd000     0x51799      0.0   sensor_service
       14     1   14         2 Pending   0x34e000  0xb3000     0x52184      0.0   ai_server
       15     1   15         0 Pending   0x61f000 0x13b000    0x168071      0.45  softbus_server
       42     8   42         2 Pending   0x1c1000  0x3a000     0x1106a      0.9   test_demo
       43     8   43         2 Running   0x1d7000  0x3a000     0x1e577      0.0   toybox
    
  • 发送信号9(SIGKILL默认行为为立即终止进程)给42号进程test_demo(用户态进程):kill -s 9 42(kill -9 42效果相同),并查看当前进程列表,42号进程已终止。

    OHOS:/$ kill -s 9 42
    OHOS:/$
    [1] + Killed               ./nfs/test_demo
    OHOS:/$ ps
      allCpu(%):    4.73 sys,  195.27 idle
      PID  PPID PGID       UID  Status VirtualMem ShareMem PhysicalMem CPUUSE10s  PName
        1    -1    1         0 Pending   0x33b000  0xbb000     0x4e01c      0.0   init
        2    -1    2         0 Pending   0xda5fa4        0    0xda5fa4      1.14  KProcess
        3     1    3         7 Pending   0x72e000 0x1a3000    0x1d29dc      0.0   foundation
        4     1    4         8 Pending   0x362000  0xbb000     0x5cc19      0.0   bundle_daemon
        5     1    5         1 Pending   0xdfa000 0x2e7000    0x148a0a      0.0   appspawn
        6     1    6         0 Pending   0x688000 0x137000    0x11c1ba      0.0   media_server
        7     1    7         0 Pending   0x9d2000 0x103000     0xa21f9      0.89  wms_server
        8     1    8         2 Pending   0x1f5000  0x48000     0x482dc      0.2   mksh
       10     5    5       101 Pending  0x11ec000 0x2f9000    0x206561      0.93  com.example.launcher
       12     1   12         0 Pending   0x4d4000 0x112000     0xe0d9c      0.0   deviceauth_service
       13     1   13         0 Pending   0x34f000  0xbd000     0x51cb3      0.0   sensor_service
       14     1   14         2 Pending   0x34e000  0xb3000     0x5269e      0.0   ai_server
       15     1   15         0 Pending   0x61f000 0x13b000    0x16858b      0.51  softbus_server
       45     8   45         2 Running   0x1d7000  0x3a000     0x1e9f5      0.0   toybox
    
  • 发送不存在的信号值 kill -100 31

输出说明

发送成功或失败输出结果如下。

示例1 发送信号给指定进程

OHOS:/$ kill -s 9 42
OHOS:/$
[1] + Killed               ./nfs/test_demo

信号发送成功会显示的提示进程已被杀死。

示例2 信号发送失败

OHOS:/$ kill -100 31
kill: Unknown signal '(null)'

信号发送失败,示例2所示原因为信号发送命令参数无效,请排查信号编号及进程编号是否有效。

log

命令功能

log命令用于修改&查询日志配置。

命令格式

log level [levelNum]

参数说明

表1 参数说明

参数 参数说明 取值范围
levelNum 配置日志打印等级。 [0, 5]

使用指南

  • 该命令依赖于LOSCFG_SHELL_LK,使用时通过menuconfig在配置项中开启"Enable Shell lk": Debug —> Enable a Debug Version —> Enable Shell —> Enable Shell lK。

  • log level命令用于配置日志的打印等级,包括6个等级 TRACE_EMG = 0,

    TRACE_COMMON = 1,

    TRACE_ERROR = 2,

    TRACE_WARN = 3,

    TRACE_INFO = 4,

    TRACE_DEBUG = 5

    若level不在有效范围内,会打印提示信息。

  • 开源小型系统源码设置level 为4或者5会有超多打印。

使用实例

举例:输入log level 3

输出说明

示例 设置当前日志打印级别为3

OHOS # log level 3
Set current log level WARN

memcheck

命令功能

检查动态申请的内存块是否完整,是否存在内存越界造成节点损坏。

命令格式

memcheck

参数说明

使用指南

  • 当内存池所有节点完整时,输出"system memcheck over, all passed!"。

  • 当内存池存在节点不完整时,输出被损坏节点的内存块信息。

使用实例

举例:

  • 输入memcheck

  • 输入memcheck出现内存越界

输出说明

示例1 当前没有内存越界

OHOS # memcheck
system memcheck over, all passed!

示例2 出现内存越界

[L0S DLnkCheckMenl 349, memory check
stFreeNodeInfo.pstPrev:0x7e0d31f3 is out of legal mem range[0x80ba5f40, 0х83d00000]
cur node: 0x81f2ce0c
pre node: 0x81f28a98
pre node was allocated by task:sofia
uwEхcTуpe = 0х2
puмExcBuffAddr pc = 0x803ad7a4
puwExcBuffAddr lr = 0x803ad7a4
puwExcBuffAddr sp = 0х80cb7de0
puwExcBuffAddr fp = 0x80cb7dec
***backtrace begin***
traceback 0 -- lr = 0х8037cb84
traceback 0 -- fp = 0х80cb7e1c
traceback 1 -- lr = 0х8037033c
traceback 1 -- fp = 0х80cb7e24
traceback 2 -- lr = 0x8000d108
traceback 2 -- fp = 0х80cb7e94
traceback 3 -- lr = 0х8037c7ac
traceback 3 -- fp = 0х80cb7ea4
traceback 4 -- lr = 0x803ad9e8
traceback 4 -- fp = 9x11111111

pmm

命令功能

查看系统内存物理页及pagecache物理页使用情况。

命令格式

pmm

参数说明

使用指南

Debug版本才具备的命令。

使用实例

举例:输入pmm

输出说明

示例 查看物理页使用情况

OHOS # pmm
 phys_seg      base         size        free_pages
 --------      -------      ----------  ---------
 0x4065552c    0x809b0000   0x07550000      22344
order = 0, free_count = 16
order = 1, free_count = 12
order = 2, free_count = 8
order = 3, free_count = 6
order = 4, free_count = 13
order = 5, free_count = 16
order = 6, free_count = 12
order = 7, free_count = 4
order = 8, free_count = 79
active   anon   0
inactive anon   0
active   file   1385
inactice file   84
pmm pages: total = 30032, used = 7688, free = 22344
pathCache number = 325
pathCache memory size = 17621(B)
Vnode number = 67
Vnode memory size = 10720(B)

表1 输出说明

输出 说明
phys_seg 物理页控制块地址信息
base 第一个物理页地址,即物理页内存起始地址
size 物理页内存大小
free_pages 空闲物理页数量
active anon pagecache中,活跃的匿名页数量
inactive anon pagecache中,不活跃的匿名页数量
active file pagecache中,活跃的文件页数量
inactive file pagecache中,不活跃的文件页数量
pmm pages total:总的物理页数,used:已使用的物理页数,free:空闲的物理页数

reset

命令功能

reset命令用于重启设备。

命令格式

reset

参数说明

使用指南

reset命令输入后,设备会立刻重启。

使用实例

reset

输出说明

sem

命令功能

sem命令用于查询系统内核信号量相关信息。

命令格式

sem [ID_ / fulldata_]

参数说明

表1 参数说明

参数 参数说明 取值范围
ID 信号量ID。 [0, 1023]或[0x0, 0x3FF]
fulldata 查询所有在用的信号量信息,打印信息包括如下:SemID, Count, Original Count, Creator TaskEntry, Last Access Time。 N/A

使用指南

  • 参数缺省时,显示所有的信号量的使用数及信号量总数。

  • sem后加ID,显示对应ID信号量的使用数。

  • 参数fulldata依赖于LOSCFG_DEBUG_SEMAPHORE,使用时通过menuconfig在配置项中开启"Enable Semaphore Debugging": Debug —> Enable a Debug Version —> Enable Debug LiteOS Kernel Resource —> Enable Semaphore Debugging

使用实例

  • 输入sem

  • 配置LOSCFG_DEBUG_SEMAPHORE标志,输入 sem fulldata

输出说明

示例1 查询所有在用的信号量信息

OHOS # sem
   SemID       Count
   ----------  -----
   0x00000000  1
   SemID       Count
   ----------  -----
   0x00000001  0
   SemID       Count
   ----------  -----
   0x00000002  0
   SemID       Count
   ----------  -----
   0x00000003  1
   SemID       Count
   ----------  -----
   0x00000004  0
   SemID       Count
   ----------  -----
   0x00000005  1
   SemID       Count
   ----------  -----
   0x00000006  0

表2 输出说明

输出 说明
SemID 信号量ID。
Count 信号量使用数。

说明: ● sem命令的ID参数输入形式以十进制形式表示或十六进制形式表示皆可。

● sem命令的ID参数在[0, 1023]范围内时,返回对应ID的信号量的状态(如果对应ID的信号量未被使用则进行提示);其他取值时返回参数错误的提示。

示例2 查询所有在用的信号量信息

OHOS # sem fulldata
Used Semaphore List:
   SemID    Count    OriginalCount   Creator(TaskEntry)    LastAccessTime
   ------   ------   -------------   ------------------    --------------
   0xb      0x0      0x0             0x404978fc            0xa1
   0xc      0x0      0x0             0x404978fc            0xa1
   0xd      0x0      0x0             0x404978fc            0x12c
   0x10     0x0      0x0             0x404978fc            0x195
   0xf      0x0      0x0             0x404978fc            0x195
   0x11     0x0      0x0             0x4041a998            0x1d5
   0x15     0x0      0x0             0x404978fc            0x273
   0x14     0x0      0x0             0x404978fc            0x273
   0x18     0x0      0x0             0x404978fc            0x352
   0x17     0x0      0x0             0x404978fc            0x352
   0x16     0x0      0x0             0x404978fc            0x352
   0x1d     0x1      0x1             0x404978fc            0x385
   0x1e     0x1      0x1             0x404978fc            0x388
   0x1f     0x1      0x1             0x404978fc            0x38d
   0x20     0x1      0x1             0x404978fc            0x38f
   0x21     0x1      0x1             0x404978fc            0x392
   0x3d     0x1      0x1             0x404978fc            0x395
   0x3b     0x1      0x1             0x404978fc            0x395
   0x3c     0x1      0x1             0x404978fc            0x395
   0x39     0x1      0x1             0x404978fc            0x395
   0x3a     0x1      0x1             0x404978fc            0x395
   0x33     0x1      0x1             0x404978fc            0x395
   0x35     0x1      0x1             0x404978fc            0x395
   0x34     0x1      0x1             0x404978fc            0x395
   0x38     0x1      0x1             0x404978fc            0x395

表3 输出说明

输出 说明
SemID 信号量ID。
Count 信号量使用数。
OriginalCount 信号量原始计数。
Creator 信号量的创建线程的入口函数地址。
LastAccessTime 上次访问时间。

stack

命令功能

查看系统各堆栈使用情况。

命令格式

stack

参数说明

使用指南

使用实例

输入:stack

输出说明

示例 系统堆栈使用情况

OHOS # stack
 stack name    cpu id     stack addr     total size   used size
 ----------    ------     ---------      --------     --------
  svc_stack      1        0x405c4000     0x2000       0x484
  svc_stack      0        0x405c6000     0x2000       0xae4
  exc_stack      1        0x405c8000     0x1000       0x0
  exc_stack      0        0x405c9000     0x1000       0x0

表1 输出说明

输出 说明
stack name 系统堆栈名
cpu id cpu 号
stack addr 栈地址
total size 堆栈大小
used size 堆栈实际使用大小

su

命令功能

su用于变更为其他使用者的身份。

命令格式

su [uid] [gid]

参数说明

表1 参数说明

参数 参数说明 取值范围
uid 目标用户的用户id值。 - 为空。
- [0, 60000]
gid 目标用户的群组id值。 - 为空。
- [0, 60000]

使用指南

  • su命令缺省切换到root用户,uid默认为0,gid为0。

  • 在su命令后的输入参数uid和gid就可以切换到该uid和gid的用户。

  • 输入参数超出范围时,会打印提醒输入正确范围参数。

使用实例

举例:su 1000 1000

输出说明

示例 切换到为uid为1000,gid为1000的用户

OHOS # ls
Directory /data/system/param:
-rw-r--r-- 0 u:0 g:0 hello_1.txt
OHOS # su 1000 1000
OHOS # touch hello 2.txt
OHOS # ls
Directory /data/system/param:
-rw-r--r-- O u:1000 g:1000 hello 2.txt
-гw-r--r-- 0 u:0 g:0 hello_1.txt

swtmr

命令功能

swtmr命令用于查询系统软件定时器相关信息。

命令格式

swtmr [ID]

参数说明

表1 参数说明

参数 参数说明 取值范围
ID 软件定时器ID号。 [0, 0xFFFFFFFF]

使用指南

  • 参数缺省时,默认显示所有软件定时器的相关信息。

  • swtmr后加ID号时,显示ID对应的软件定时器相关信息。

使用实例

举例:

  • swtmr

  • swtmr 1

输出说明

示例1 查询所有软件定时器相关信息

OHOS # swtmr
SwTmrID     State    Mode    Interval  Count   Arg         handlerAddr
----------  -------  ------- --------- ------- ----------  --------
0x00000000  Ticking  Period   100      77      0x40802a50  0x4037b8a0
SwTmrID     State    Mode    Interval  Count   Arg         handlerAddr
----------  -------  ------- --------- ------- ----------  --------
0x00000001  Ticking  Period   1000     876     0x00000000  0x4037fc04
SwTmrID     State    Mode    Interval  Count   Arg         handlerAddr
----------  -------  ------- --------- ------- ----------  --------
0x00000002  Ticking  Period   100      76      0x00000000  0x403727f4
SwTmrID     State    Mode    Interval  Count   Arg         handlerAddr
----------  -------  ------- --------- ------- ----------  --------
0x00000016  Ticking  NSD      10       6       0x8021e000  0x401fe7d8
SwTmrID     State    Mode    Interval  Count   Arg         handlerAddr
----------  -------  ------- --------- ------- ----------  --------
0x00000079  Ticking  NSD      30000    1749    0x406189d8  0x40160e1c

示例2 查询对应 ID 的软件定时器信息

OHOS # swtmr 1
SwTmrID     State    Mode    Interval  Count   Arg         handlerAddr
----------  -------  ------- --------- ------- ----------  --------
0x00000001  Ticking  Period   1000     841     0x00000000  0x4037fc04

表2 输出说明

输出 说明
SwTmrID 软件定时器ID。
State 软件定时器状态。
状态可能为:“UnUsed”, “Created”, “Ticking”。
Mode 软件定时器模式。
模式可能为:“Once”, “Period”, “NSD(单次定时器,定时结束后不会自动删除)”。
Interval 软件定时器使用的Tick数。
Count 软件定时器已经工作的次数。
Arg 传入的参数。
handlerAddr 回调函数的地址。

说明:

  • swtmr命令的ID参数输入形式以十进制形式表示或十六进制形式表示皆可。

  • swtmr命令的ID参数在[0, 当前软件定时器个数 - 1]范围内时,返回对应ID的软件定时器的状态;其他取值时返回错误提示。

systeminfo

命令功能

systeminfo命令用于显示当前操作系统内资源使用情况,包括任务、信号量、互斥量、队列、定时器等。

命令格式

systeminfo

参数说明

使用指南

使用实例

举例:输入systeminfo

输出说明

示例 查看系统资源使用情况

OHOS:/$ systeminfo
   Module    Used      Total     Enabled
--------------------------------------------
   Task      96        256       YES
   Sem       435       1024      YES
   Queue     13        1024      YES
   SwTmr     20        1024      YES

表1 输出说明

输出 说明
Module 模块名称。
Used 当前使用量。
Total 最大可用量。
Enabled 模块是否开启。
Task 任务。
Sem 信号量。
Queue 队列。
SwTmr 定时器。

task

命令功能

task命令用于查询进程及线程信息。

命令格式

task/task -a

参数说明

表1 参数说明

参数 参数说明 取值范围
-a 查看更多信息。 N/A

使用指南

参数缺省时默认打印部分任务信息。

使用实例

举例:输入task

输出说明

示例 查询任务部分信息

OHOS # task
  allCpu(%):    3.54 sys,  196.46 idle
  PID  PPID PGID       UID  Status VirtualMem ShareMem PhysicalMem CPUUSE10s  PName
    1    -1    1         0 Pending   0x33b000  0xbb000     0x4dc8b      0.0   init
    2    -1    2         0 Pending  0x193318e        0   0x193318e      1.11  KProcess
    3     1    3         7 Pending   0x730000 0x1a2000    0x1d34f6      0.0   foundation
    4     1    4         8 Pending   0x35e000  0xb8000     0x56777      0.0   bundle_daemon
    5     1    5         1 Pending   0xdfa000 0x2e7000    0x1487ce      0.0   appspawn
    6     1    6         0 Pending   0x688000 0x137000    0x11c518      0.0   media_server
    7     1    7         0 Pending   0x9d2000 0x103000     0xa1ddf      0.89  wms_server
    8     1    1      1000 Running   0x2bf000  0x8f000     0x2a8c6      0.0   shell
    9     5    5       101 Pending  0x11ea000 0x2f9000    0x20429d      0.97  com.example.launcher
   11     1   11         0 Pending   0x4d4000 0x112000     0xe0ad7      0.0   deviceauth_service
   12     1   12         0 Pending   0x34f000  0xbd000     0x519ee      0.0   sensor_service
   13     1   13         2 Pending   0x34e000  0xb3000     0x523d9      0.0   ai_server
   14     1   14         0 Pending   0x61f000 0x13b000    0x16841c      0.50  softbus_server
  TID  PID Affi CPU       Status StackSize WaterLine CPUUSE10s    MEMUSE  TaskName
   23    1  0x3  -1      Pending    0x3000     0xe44      0.0           0  init
    1    2  0x1  -1      Pending    0x4000     0x2c4      0.37          0  Swt_Task
    2    2  0x3  -1      Pending    0x4000     0x204      0.0           0  system_wq
    3    2  0x2  -1      Pending    0x4000     0x514      0.65          0  Swt_Task
    4    2  0x3  -1      Pending    0x1000     0x36c      0.0           0  ResourcesTask
    7    2  0x3  -1      Pending    0x4e20     0xa5c      0.0           0  PlatformWorkerThread

表2 输出说明

输出 说明
PID 进程ID。
PPID 父进程ID。
PGID 进程组ID。
UID 用户ID。
Status 任务当前的状态。
CPUUSE10s 10秒内CPU使用率。
PName 进程名。
TID 任务ID。
StackSize 任务堆栈的大小。
WaterLine 栈使用的峰值。
MEMUSE 内存使用量。
TaskName 任务名。

uname

命令功能

uname命令用于显示当前操作系统的名称,版本创建时间,系统名称,版本信息等。

命令格式

uname [-a | -s | -r | -m | -n | -v | --help]

表1 参数说明

参数 参数说明
–help 显示uname指令格式提示。
无参数 默认显示操作系统名称。
-a 显示全部信息。
-s 显示操作系统名称。
-r 显示内核发行版本。
-m 显示系统架构名称。
-n 显示主机的网络域名称。
-v 显示版本信息。

使用指南

  • uname用于显示当前操作系统名称。

  • 除参数–help和-a以外,其他参数可以相互搭配使用;uname -a 等价于 uname -srmnv。

特殊说明

-r -m -n参数暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。

使用实例

举例:

  • uname -a

  • uname -ms

输出说明

示例1 查看系统信息

OHOS:/$ uname -a
LiteOS hisilicon 2.0.0.37 LiteOS 2.0.0.37 Oct 21 2021 17:39:32 Cortex-A7
OHOS:/$

示例2 只查看操作系统名称和系统架构名称

OHOS:/$ uname -ms
LiteOS Cortex-A7
OHOS:/$

vmm

命令功能

查看进程的虚拟内存使用情况。

命令格式

  • vmm [-a / -h / --help]

  • vmm [pid]

参数说明

表1 参数说明

参数 参数说明 取值范围
-a 输出所有进程的虚拟内存使用情况。 N/A
-h | --help 命令格式说明。 N/A
pid 进程ID,说明指定进程的虚拟内存使用情况。 [0, 63]

使用指南

命令缺省输出所有进程的虚拟内存使用情况。

使用实例

举例:输入vmm 3

输出说明

示例 PID为3的进程虚拟内存使用信息

OHOS # vmm 3
 PID    aspace     name       base       size     pages
 ----   ------     ----       ----       -----     ----
 3    0x408c0118 foundation 0x01000000 0x3e000000     800
         region      name                base       size       mmu_flags      pages   pg/ref
         ------      ----                ----       ----       ---------      -----   -----
         0x408cb364  /bin/foundation                  0x06da3000 0x00001000  CH US RD          1       1
         0x408cb80c  /bin/foundation                  0x06da4000 0x00001000  CH US RD EX       1       1
         0x408cb720  /bin/foundation                  0x06da5000 0x00001000  CH US RD          1       1
         0x408cb9a8  /bin/foundation                  0x06da6000 0x00001000  CH US RD WR       1       1
         0x413efde4  HEAP                             0x12b43000 0x00015000  CH US RD WR      19      19
         0x408c3d34  /lib/libc.so                     0x23b08000 0x0004a000  CH US RD         25       2
         0x408cbd44  /lib/libc.so                     0x23b52000 0x00068000  CH US RD EX      58      10
         0x408c3dc0  /lib/libc.so                     0x23bba000 0x00002000  CH US RD WR       2       2
         0x408cc128  /lib/libc.so                     0x23bbc000 0x00002000  CH US RD WR       2       2
         0x408d1634  MMAP                             0x23bbe000 0x00005000  CH US RD WR       5       5
         0x408c4e10  VDSO                             0x23bc3000 0x00002000  CH US RD EX       2       2
         0x408dbaec  /lib/libc++.so                   0x23bc5000 0x00046000  CH US RD         51       5
         0x408deba8  /lib/libc++.so                   0x23c0b000 0x0009f000  CH US RD EX      29      10
         0x408debf4  /lib/libc++.so                   0x23caa000 0x00006000  CH US RD          6       6
         0x408c3ce0  /lib/libc++.so                   0x23cb0000 0x00001000  CH US RD WR       1       1

表2 进程基本信息

输出 说明
PID 进程ID
aspace 进程虚拟内存控制块地址信息
name 进程名
base 虚拟内存起始地址
size 虚拟内存大小
pages 已使用的物理页数量

表3 虚拟内存区间信息

输出 说明
region 虚拟区间控制块地址信息
name 虚拟区间类型
base 虚拟区间起始地址
size 虚拟区间大小
mmu_flags 虚拟区间mmu映射属性
pages 已使用的物理页数量(包括共享内存部分)
pg/ref 已使用的物理页数量

watch

命令功能

watch命令用于周期性的监视一个命令的运行结果。

命令格式

  • watch

  • watch [-c/-n/-t/–count/–interval/-no-title/–over] [command]

参数说明

表1 参数说明

参数 参数说明 缺省值 取值范围
-c / --count 命令执行的总次数。 0xFFFFFF (0,0xFFFFFF]
-n / --interval 命令周期性执行的时间间隔(s)。 1s (0,0xFFFFFF]
-t / -no-title 关闭顶端的时间显示。 N/A N/A
command 需要监测的命令。 N/A N/A
–over 关闭当前监测指令。 N/A N/A

使用指南

watch运行过程中可以执行watch --over结束本次watch命令。

使用实例

watch -n 2 -c 6 task

输出说明

示例 每隔2秒运行一次task命令,一共运行6次

OHOS # watch  -n 2 -c 6 task
Thu Jan  1 23:57:13 1970
OHOS #
  allCpu(%):    3.55 sys,  196.45 idle
  PID  PPID PGID       UID  Status VirtualMem ShareMem PhysicalMem CPUUSE10s  PName
    1    -1    1         0 Pending   0x33b000  0xbb000     0x4dc8b      0.0   init
    2    -1    2         0 Running  0x19524f2        0   0x19524f2      1.14  KProcess
    3     1    3         7 Pending   0x730000 0x1a2000    0x1d34f6      0.0   foundation
    4     1    4         8 Pending   0x35e000  0xb8000     0x56777      0.0   bundle_daemon
    5     1    5         1 Pending   0xdfa000 0x2e7000    0x1487ce      0.0   appspawn
    6     1    6         0 Pending   0x688000 0x137000    0x11c518      0.0   media_server
    7     1    7         0 Pending   0x9d2000 0x103000     0xa1ddf      0.95  wms_server
    8     1    1      1000 Running   0x2bf000  0x8f000     0x2a8c6      0.0   shell
   11     1   11         0 Pending   0x4d4000 0x112000     0xe0ad7      0.0   deviceauth_service
   12     1   12         0 Pending   0x34f000  0xbd000     0x519ee      0.0   sensor_service
   13     1   13         2 Pending   0x34e000  0xb3000     0x523d9      0.0   ai_server
   14     1   14         0 Pending   0x61f000 0x13b000    0x16841c      0.51  softbus_server
  TID  PID Affi CPU       Status StackSize WaterLine CPUUSE10s    MEMUSE  TaskName
   23    1  0x3  -1      Pending    0x3000     0xe44      0.0           0  init
    1    2  0x1  -1      Pending    0x4000     0x2c4      0.64          0  Swt_Task
    2    2  0x3  -1      Pending    0x4000     0x204      0.0           0  system_wq
    3    2  0x2  -1      Pending    0x4000     0x514      0.40          0  Swt_Task
    4    2  0x3  -1      Pending    0x1000     0x36c      0.0           0  ResourcesTask
    7    2  0x3  -1      Pending    0x4e20     0xa5c      0.0           0  PlatformWorkerThread
    8    2  0x3  -1      Pending    0x4e20     0xa6c      0.0           0  PlatformWorkerThread
    9    2  0x3  -1      Pending    0x4e20     0xa5c      0.0           0  PlatformWorkerThread
   10    2  0x3  -1     PendTime    0x4000     0x3e4      0.5           0  hi_vdec_thread
   11    2  0x3  -1      Pending    0x3000     0x4cc      0.0           0  bcache_async_task
   12    2  0x3  -1      Pending    0x2710     0x224      0.0           0  LiteOS usb pnp notify handle kt
   13    2  0x3  -1      Pending    0x4000     0x204      0.0           0  vibrator_queue
   14    2  0x3  -1      Pending    0x3000     0x37c      0.0           0  bcache_async_task
   15    2  0x3  -1      Pending   0x20000     0x3e4      0.0           0  eth_irq_Task
   16    2  0x3  -1     PendTime    0x2000     0x3a4      0.0           0  MessageDispatcher
   17    2  0x3   0      Running    0x3000     0x73c      0.0           0  shellcmd_watch
   18    2  0x3  -1      Pending    0x2710     0x3ac      0.0           0  GPIO_IRQ_TSK_0_4

reboot

命令功能

reboot命令用于重启设备。

命令格式

reboot

参数说明

使用指南

reboot命令输入后,设备会立刻重启。

使用实例

reboot

输出说明

top

命令功能

top命令用于查询进程及线程信息。

命令格式

top [-a]

参数说明

表1 参数说明

参数 参数说明
–help 查看top命令支持的参数列表。
-a 显示更详细的信息。

使用指南

参数缺省时默认打印部分任务信息。

特殊说明

shell端暂不支持。切换mksh版本可全支持,方法:cd bin; ./mksh。

使用实例

举例:输入top

输出说明

示例1 top 命令显示详情

OHOS:/$ top
  allCpu(%):    4.68 sys,  195.32 idle
  PID  PPID PGID       UID  Status VirtualMem ShareMem PhysicalMem CPUUSE10s  PName
    1    -1    1         0 Pending   0x33b000  0xbb000     0x4e01c      0.0   init
    2    -1    2         0 Pending   0xd838c0        0    0xd838c0      1.16  KProcess
    3     1    3         7 Pending   0x72e000 0x1a3000    0x1d29dc      0.0   foundation
    4     1    4         8 Pending   0x362000  0xbb000     0x5cc19      0.0   bundle_daemon
    5     1    5         1 Pending   0xdfa000 0x2e7000    0x148a0a      0.0   appspawn
    6     1    6         0 Pending   0x688000 0x137000    0x11c1ba      0.0   media_server
    7     1    7         0 Pending   0x9d2000 0x103000     0xa21f9      0.87  wms_server
    8     1    8         2 Pending   0x1f5000  0x48000     0x462dc      0.0   mksh
   11     1   11         0 Pending   0x4d4000 0x112000     0xe0d9c      0.0   deviceauth_service
   12     1   12         0 Pending   0x34f000  0xbd000     0x51cb3      0.0   sensor_service
   13     1   13         2 Pending   0x34e000  0xb3000     0x5269e      0.0   ai_server
   14     1   14         0 Pending   0x61f000 0x13b000    0x16858b      0.45  softbus_server
   43     8   43         2 Running   0x1d7000  0x3a000     0x1e9f5      0.0   toybox
  TID  PID Affi CPU       Status StackSize WaterLine CPUUSE10s    MEMUSE  TaskName
   23    1  0x3  -1      Pending    0x3000     0xcf4      0.0           0  init
    1    2  0x1  -1      Pending    0x4000     0x2c4      0.33          0  Swt_Task
    2    2  0x3  -1      Pending    0x4000     0x204      0.0           0  system_wq
    3    2  0x2  -1      Pending    0x4000     0x514      0.75          0  Swt_Task
    4    2  0x3  -1      Pending    0x1000     0x3ac      0.0           0  ResourcesTask
    7    2  0x3  -1      Pending    0x4e20     0xa5c      0.0           0  PlatformWorkerThread
    8    2  0x3  -1      Pending    0x4e20     0xa6c      0.0           0  PlatformWorkerThread
    9    2  0x3  -1      Pending    0x4e20     0xbf4      0.0           0  PlatformWorkerThread
   10    2  0x3  -1      Pending    0x3000     0x4dc      0.0           0  bcache_async_task
   11    2  0x3  -1     PendTime    0x4000     0x3e4      0.5           0  hi_vdec_thread
   12    2  0x3  -1      Pending    0x2710     0x224      0.0           0  LiteOS usb pnp notify handle kt
   13    2  0x3  -1      Pending    0x3000     0x37c      0.0           0  bcache_async_task
   14    2  0x3  -1      Pending    0x4000     0x204      0.0           0  vibrator_queue
   15    2  0x3  -1      Pending   0x20000     0x35c      0.0           0  eth_irq_Task
   16    2  0x3  -1     PendTime    0x2000     0x354      0.0           0  MessageDispatcher
   18    2  0x3  -1      Pending    0x2710     0x200      0.0           0  GPIO_IRQ_TSK_0_4
   19    2  0x3  -1      Pending    0x4000     0x204      0.0           0  dispWQ
   20    2  0x3  -1      Pending    0x4000     0x204      0.0           0  hdf_sensor_test_work_queue
   21    2  0x3  -1     PendTime    0x6000     0x40c      0.2           0  tcpip_thread
   22    2  0x3  -1      Pending    0x4000     0x36c      0.0           0  SendToSer
   61    2  0x3  -1      Pending    0x4000     0x244      0.0           0  USB_GIANT_Task
   63    2  0x3  -1      Pending    0x4000     0x244      0.0           0  USB_NGIAN_ISOC_Task
   64    2  0x3  -1      Pending    0x4000     0x244      0.0           0  USB_NGIAN_BULK_TasK

表2 输出元素说明

输出 说明
PID 进程ID。
PPID 父进程ID。
PGID 进程组ID。
UID 用户ID。
Status 任务当前的状态。
CPUUSE10s 10秒内CPU使用率。
PName 进程名。
TID 任务ID。
StackSize 任务堆栈的大小。
WaterLine 栈使用的峰值。
MEMUSE 内存使用量。
TaskName 任务名。

鸿蒙开发进阶(OpenHarmony)系统命令功能总结_第1张图片

你可能感兴趣的:(OpenHarmony,鸿蒙开发,HarmonyOS,harmonyos,华为,android,鸿蒙,OpenHarmony,嵌入式硬件,前端)