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

Creative Commons
本作品采用知识共享署名

本文说明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开头的命令都提示出来

    1
    2
    3
    4
    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会将命令自动补全到输入位置

    1
    uart:~$ shell_sample_sub

历史命令

默认CONFIG_SHELL_HISTORY=y开启了命令历史记录。通过执行 history 命令可以查看历史执行过的命令。以通过 按键切换选择已经执行过的命令。当启用meta按键后也可以通过 Ctrl + nCtrl + 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