鸿蒙NEXT开发实战往期必看文章:
一分钟了解”纯血版!鸿蒙HarmonyOS Next应用开发!
“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线!(从零基础入门到精通)
HarmonyOS NEXT应用开发案例实践总结合(持续更新......)
HarmonyOS NEXT应用开发性能优化实践总结(持续更新......)
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 --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 [-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参数缺省时,默认打印缓存区内容。
各“ - ”选项不能混合使用。
举例:输入dmesg > dmesg.log。
示例 dmesg重定向到文件
OHOS # dmesg > dmesg.log
Dmesg write log to dmesg.log success
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 [-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命令用于显示当前操作系统内所有操作指令和部分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即显示当前中断号、中断次数及注册中断名称。
若开关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 [-l [signo] | -s signo | -signo] pid…
表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 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
无
当内存池所有节点完整时,输出"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
查看系统内存物理页及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
无
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
示例 系统堆栈使用情况
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 [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 [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
示例 查看系统资源使用情况
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 -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 [-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 [-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 [-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
无
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 | 任务名。 |