OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【Shell 工具】上

Shell介绍

OpenHarmony内核提供的Shell支持调试常用的基本功能,包含系统、文件、网络和动态加载相关命令。同时OpenHarmony内核的Shell支持添加新的命令,可以根据需求来进行定制。

  • 系统相关命令:提供查询系统任务、内核信号量、系统软件定时器、CPU占用率、当前中断等相关信息的能力。

  • 文件相关命令:支持基本的ls、cd等功能。

  • 网络相关命令:支持查询接到开发板的其他设备的IP、查询本机IP、测试网络连接、设置开发板的AP和station模式等相关功能。

新增命令的详细流程可参见 Shell命令开发指导 和 Shell命令编程实例。

注意事项

在使用Shell功能的过程中,需要注意以下几点:

  • Shell功能支持使用exec命令来运行可执行文件。

  • Shell功能支持默认模式下英文输入。如果出现用户在UTF-8格式下输入了中文字符的情况,只能通过回退三次来删除。

  • Shell功能支持shell命令、文件名及目录名的Tab键联想补全。若有多个匹配项,则根据共同字符, 打印多个匹配项。对于过多的匹配项(打印多于24行),将会进行打印询问(Display all num possibilities?(y/n)),用户可输入y选择全部打印,或输入n退出打印,选择全部打印并打印超过24行后,会进行–More–提示,此时按回车键继续打印,按q键退出(支持Ctrl+c退出)。

  • Shell端工作目录与系统工作目录是分开的,即通过Shell端cd、pwd等命令是对Shell端工作目录进行操作,通过chdir、getcwd等命令是对系统工作目录进行操作,两个工作目录相互之间没有联系。当文件系统操作命令入参是相对路径时要格外注意。

  • 在使用网络Shell指令前,需要先调用tcpip_init函数完成网络初始化并完成telnet连接后才能起作用,内核默认不初始化tcpip_init。

  • 不建议使用Shell命令对/dev目录下的设备文件进行操作,这可能会引起不可预知的结果。

  • Shell功能不符合POSIX标准,仅供调试使用。

须知: Shell功能仅供调试使用,在Debug版本中开启(使用时通过menuconfig在配置项中开启"LOSCFG_DEBUG_VERSION"编译开关进行相关控制),商用产品中禁止包含该功能。

Shell命令开发指导

新增Shell命令的典型开发流程如下:

  1. 包含如下头文件:
    #include "shell.h"
    #include "shcmd.h"
  1. 注册命令。用户可以选择静态注册命令方式和系统运行时动态注册命令方式,静态注册命令方式一般用在系统常用命令注册,动态注册命令方式一般用在用户命令注册。

    1. 静态注册命令方式:

      1. 通过宏的方式注册。 这个宏的原型为:
         SHELLCMD_ENTRY(l, cmdType, cmdKey, paraNum, cmdHook)

表1 SHELLCMD_ENTRY参数详解

参数 描述
l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值