Zephyr shell系统使用指南-命令行特性

本文说明Zephyr shell系统的命令行特性。

Zephyr的shell系统提供一个类Unix shell界面,通过该命令行界面用户可以操作Zephyr或者用户自己定义的shell命令。Zephyr的shell系统提供了一系列命令行特性方便操作shell命令。

文本编辑按键支持 链接到标题

左右移动光标:, 删除光标所在字符:Backspace, Delete 移动光标到行尾/首:End, Home 切换插入/覆盖模式:Insert

自动补全 链接到标题

默认CONFIG_SHELL_TAB=y开启了tab支持

Tab按键支持以下特性:

  • 提示有效命令

    当按下tab时,会自动提示出所有有效的命令。例如敲入she后按下tab会将以she开头的命令都提示出来

    uart:~$ 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会将命令自动补全到输入位置

    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