Zephyr的shell系统提供一个类Unix shell界面,通过该命令行界面用户可以操作Zephyr或者用户自己定义的shell命令。Zephyr的shell系统提供了一系列命令行特性方便操作shell命令。
文本编辑按键支持
左右移动光标:←, →
删除光标所在字符:Backspace, Delete
移动光标到行尾/首:End, Home
切换插入/覆盖模式:Insert
自动补全
默认CONFIG_SHELL_TAB=y
开启了tab支持
Tab按键支持以下特性:
提示有效命令
当按下tab时,会自动提示出所有有效的命令。例如敲入she后按下tab会将以she开头的命令都提示出来
1
2
3
4uart:~$ she
shell shell_dict shell_dynamic
shell_sample shell_sample_args shell_sample_handler
shell_sample_null shell_sample_sub自动补全
默认
CONFIG_SHELL_TAB_AUTOCOMPLETION=y
开启了自动补全,当提示命令只有一条时就会自动补全被执行。例如敲入shell_sample_s 后按下tab会将命令自动补全到输入位置1
uart:~$ shell_sample_sub
历史命令
默认CONFIG_SHELL_HISTORY=y
开启了命令历史记录。通过执行 history 命令可以查看历史执行过的命令。以通过↑ 和↓ 按键切换选择已经执行过的命令。当启用meta按键后也可以通过 Ctrl + n 和 Ctrl + p来切换选择。
通配符
默认CONFIG_SHELL_WILDCARD=y
开启了通配符支持,shell支持两个通配符:
* :匹配字符串
? :匹配单个字符
MetaKey
默认情况下CONFIG_SHELL_METAKEYS=y
开启了metakey的支持。shell支持的metakey和作用如下表
Meta keys | Action |
---|---|
Ctrl + a | 移动光标到行首,等同于Home |
Ctrl + b | 将光标向左移动一个字符,等同于← |
Ctrl + c | 放弃当前行输入的内容,另外新开一行用于输入命令。类似于回Enter但不执行已经输入了的命令 |
Ctrl + d | 删除光标下的字符,等同于Delete |
Ctrl + e | 移动光标到行尾,等同于End |
Ctrl + f | 将光标向右移动一个字符,等同于→ |
Ctrl + k | 删除从光标到行尾的所有字符 |
Ctrl + l | 保留当前正在输入的命令,清除屏幕其它的内容。 |
Ctrl + n | 切换到上一个历史执行的命令 |
Ctrl + p | 切换到下一个历史执行的命令 |
Ctrl + u | 清除当前正在输入的命令 |
Ctrl + w | 删除光标侧的一个单词 |
Alt + b | 移动光标到前一个词 |
Alt + f | 移动光标到后一个词 |
参考
https://docs.zephyrproject.org/latest/services/shell/index.html