Shell命令开发指导 更多...
结构体 | |
struct | ShellCB |
类型定义 | |
typedef UINT32(* | CmdCallBackFunc) (UINT32 argc, const CHAR **argv) |
typedef CmdCallBackFunc | CMD_CBK_FUNC |
typedef CmdType | CMD_TYPE_E |
枚举 | |
enum | CmdType { CMD_TYPE_SHOW = 0 , CMD_TYPE_STD = 1 , CMD_TYPE_EX = 2 , CMD_TYPE_BUTT , CMD_TYPE_SHOW = 0 , CMD_TYPE_STD = 1 , CMD_TYPE_EX = 2 , CMD_TYPE_BUTT } |
enum | CmdKeyDirection { CMD_KEY_UP = 0 , CMD_KEY_DOWN = 1 , CMD_KEY_RIGHT = 2 , CMD_KEY_LEFT = 4 , CMD_KEY_BUTT , CMD_KEY_UP = 0 , CMD_KEY_DOWN = 1 , CMD_KEY_RIGHT = 2 , CMD_KEY_LEFT = 4 , CMD_KEY_BUTT } |
函数 | |
UINT32 | osCmdReg (CmdType cmdType, const CHAR *cmdKey, UINT32 paraNum, CmdCallBackFunc cmdProc) |
以动态方式注册命令 更多... | |
Shell命令开发指导
OpenHarmony内核提供的Shell支持调试常用的基本功能,包含系统、文件、网络和动态加载相关命令。 同时OpenHarmony内核的Shell支持添加新的命令,可以根据需求来进行定制。 系统相关命令:提供查询系统任务、内核信号量、系统软件定时器、CPU占用率、当前中断等相关信息的能力。 文件相关命令:支持基本的ls、cd等功能。 网络相关命令:支持查询接到开发板的其他设备的IP、查询本机IP、测试网络连接、设置开发板的AP和station模式等相关功能。 在使用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命令,有两种输入方式: 1. 在串口工具中直接输入Shell命令。 2. 在telnet工具中输入Shell命令(telnet使用方式详见telnet)。 http://weharmonyos.com/openharmony/zh-cn/device-dev/kernel/kernel-small-debug-shell-net-telnet.html
在文件 shell.h 中定义.
typedef CmdCallBackFunc CMD_CBK_FUNC |
typedef CmdType CMD_TYPE_E |
enum CmdKeyDirection |
enum CmdType |
All support cmd types | 所有支持的类型
UINT32 osCmdReg | ( | CmdType | cmdType, |
const CHAR * | cmdKey, | ||
UINT32 | paraNum, | ||
CmdCallBackFunc | cmdProc | ||
) |
以动态方式注册命令
以动态方式注册命令
cmdKey | 命令关键字,函数在Shell中访问的名称。 |
cmdProc | 命令执行函数地址,即命令实际执行函数。 |
cmdType | CMD_TYPE_EX:不支持标准命令参数输入,会把用户填写的命令关键字屏蔽掉, 例如:输入ls /ramfs,传入给注册函数的参数只有/ramfs,而ls命令关键字并不会被传入。 CMD_TYPE_STD:支持的标准命令参数输入,所有输入的字符都会通过命令解析后被传入。 |
paraNum | 调用的执行函数的入参最大个数,暂不支持该参数;当前为默认值XARGS(0xFFFFFFFF)。 |