一、进入命令行试图


image.png
常见的命令行视图:

常用视图名称 进入视图 视图功能
用户视图 用户从终端成功登录至设备即进入用户视图,在屏幕上显示:
在用户视图下,用户可以完成查看运行状态和统计信息等功能。
系统视图 用户视图下,输入命令system-view后回车,进入系统视图
system-view
[HUAWEI]
在系统视图下,用户可以配置系统参数以及通过该视图进入其他的功能配置视图。
接口视图 使用interface命令并指定接口类型及接口编号可以进入相应的接口视图。
[HUAWEI] interface gigabitethernet X/Y/Z
[HUAWEI-GigabitEthernetX/Y/Z]
X/Y/Z为需要配置的接口的编号,分别对应“槽位号/子卡号/接口序号”。
配置接口参数的视图称为接口视图。在该视图下可以配置接口相关的物理属性、链路层特性及IP地址等重要参数。
路由协议视图 在系统视图下,使用路由协议进程运行命令可以进入到相应的路由协议视图。
[HUAWEI] isis
[HUAWEI-isis-1]
路由协议的大部分参数是在相应的路由协议视图下进行配置的。例如IS-IS协议视图、OSPF协议视图、RIP协议视图。

医疗_消息.png 说明

  • 有些在系统视图下执行的命令,在其它视图下也可以执行,但实现的功能与命令视图密切相关。例如lldp enable命令在系统视图表示使能全局的LLDP功能,在接口视图下,表示使能某一接口的LLDP功能。
  • 在系统视图下,可以执行命令diagnose进入诊断视图。诊断命令行主要用于设备的故障诊断,在此视图下执行某些命令可能导致设备异常或业务中断。如果您需要使用此类命令行,请联系技术支持人员,在技术支持人员指导下谨慎使用。
  • 用户可以在任意视图中,执行!或#加字符串,此时的用户输入将全部(包括!和#在内)作为系统的注释行内容,可以正常下发,不报错,不会产生对应的配置信息。
  • 命令输入后会立刻执行,在5秒之内。

二、编辑命令行


设备的命令行接口提供基本的命令行编辑功能。设备支持多行编辑,每条命令最大长度为510个字符,命令关键字不区分大小写,命令参数是否区分大小写则由各命令定义的参数决定。

功能键 功能
普通按键 若编辑缓冲区未满,则插入到当前光标位置,并向右移动光标,否则,响铃告警。
退格键Backspace 删除光标位置的前一个字符,光标左移,若已经到达命令首,则响铃告警。
左光标键←或 光标向左移动一个字符位置,若已经到达命令首,则响铃告警。
右光标键→或 光标向右移动一个字符位置,若已经到达命令尾,则响铃告警。

编辑命令行时的操作技巧 :::success

  • 不完整关键字输入

    • 设备支持不完整关键字输入,即在当前视图下,当输入的字符能够匹配唯一的关键字时,可以不必输入完整的关键字。该功能提供了一种快捷的输入方式,有助于提高操作效率。
    • 比如display current-configuration命令,可以输入d cudi cudis cu等都可以执行此命令,但不能输入d cdis c等,因为以d cdis c开头的命令不唯一。 ::: :::warning 医疗_消息.png 说明
  • 系统可正确执行的命令长度最大为510个字符,包括使用不完整格式的情况。如果使用不完整格式进行配置,由于命令保存到配置文件中时使用的是完整格式,可能导致配置文件中存在长度超过510个字符的命令。系统重启时,这类命令将无法恢复。因此,在使用不完整格式的命令进行配置时,也需要注意命令的总长度。 :::

TAB键的使用

  • 输入不完整的关键字后按下Tab键,系统自动补全关键字:
    • 如果与之匹配的关键字唯一,则系统用此完整的关键字替代原输入并换行显示,光标距词尾空一格。例如

image.png

三、使用命令行在线帮助


在线帮助通过键入“?”来获取,在命令行输入过程中,用户可以随时键入“?”以获得在线帮助。命令行在线帮助可分为完全帮助和部分帮助。

完全帮助

  • 当用户输入命令时,可以使用命令行的完全帮助获取全部关键字和参数的提示。
    1. •在任一命令视图下,键入“?”获取该命令视图下所有的命令及其简单描述。
    2. <HUAWEI> ?
    3. User view commands:
    4. arp-ping ARP-ping
    5. backup Backup information
    6. batch-cmd Batch commands
    7. cd Change current directory
    8. check Check version
    9. clock Specify the system clock
    10. compare Compare function
    11. configuration Configuration interlock
    12. ...
    ```python •键入一条命令的部分关键字,后接以空格分隔的“?”,如果该位置为关键字,则列出全部关键字及其简单描述。举例如下:

system-view [HUAWEI] user-interface vty 0 4 [HUAWEI-ui-vty0-4] authentication-mode ? aaa AAA authentication, and this authentication mode is recommended password Authentication through the password of a user terminal interface [HUAWEI-ui-vty0-4] authentication-mode aaa ? [HUAWEI-ui-vty0-4] authentication-mode aaa

◾其中“aaa”和“password”是关键字,“AAA authentication”和“Authentication through the password of a user terminal interface”是对关键字的描述。 ◾“”表示该位置没有关键字或参数,直接键入回车即可执行。

  1. ```python
  2. •键入一条命令的部分关键字,后接以空格分隔的“?”,如果该位置为参数,则列出有关的参数名和参数描述。举例如下:
  3. <HUAWEI> system-view
  4. [HUAWEI] ftp timeout ?
  5. INTEGER<1-35791> The value of FTP timeout, the default value is 30 minutes
  6. [HUAWEI] ftp timeout 35 ?
  7. <cr>
  8. [HUAWEI] ftp timeout 35

部分帮助
当用户输入命令时,如果只记得此命令关键字的开头一个或几个字符,可以使用命令行的部分帮助获取以该字符串开头的所有关键字的提示。下面给出几种部分帮助的实例供参考:

  1. •键入一字符串,其后紧接“?”,列出以该字符串开头的所有关键字。举例如下:
  2. <HUAWEI> d?
  3. debugging delete dir display
  4. <HUAWEI> d
  1. •键入一条命令,后接一字符串紧接“?”,列出命令以该字符串开头的所有关键字。举例如下:
  2. <HUAWEI> display b?
  3. bfd bgp
  4. binding bpdu
  5. bpdu-tunnel bridge
  6. bridge-link bridge-profile
  7. bridge-whitelist bssid-decode
  8. buffer bulk-stat
  • 输入命令的某个关键字的前几个字母,按下键,可以显示出完整的关键字,前提是这几个字母可以唯一标示出该关键字,否则,连续按下键,可出现不同的关键字,用户可以从中选择所需要的关键字。

四、在系统视图下执行用户视图命令


对于某些命令只能在用户视图下执行,当用户需要执行该类命令时,必须退出到用户视图才能成功执行。为了便于用户在非用户视图下也能够执行用户视图命令,设备提供了run命令,使得用户在不用切换视图的情况下,可实现在其他视图下执行用户视图命令。 :::warning

  • 执行命令runcommand-line,执行用户视图命令。参数command-line即为用户视图下的命令,目前不支持联想帮助,需手动完整输入。 :::

五、使用命令行的快捷键


系统中的快捷键分成两类,自定义快捷键和系统快捷键:

  • 自定义快捷键:共有4个,包括。用户可以根据自己的需要将这4个快捷键与任意命令进行关联,当使用快捷键时,系统自动执行它所对应的命令。
  • 系统快捷键:是系统中固定的。这种快捷键不由用户定义,代表固定功能。 :::warning 医疗_消息.png 说明
    快捷键的功能可能受用户所用的终端影响,例如用户终端本身自定义的快捷键与设备系统中的快捷键功能发生冲突,此时如果用户键入快捷键将会被终端程序截获而不能执行它所对应的命令行。 :::

自定义快捷键
如果用户经常性地使用某一个或某几个命令时,可以将这些命令定义成快捷键,方便用户操作,提升效率。只有管理级用户和配置级用户有定义快捷键的权限。配置方法如下:

  1. 执行命令system-view,进入系统视图。
  2. 执行命令hotkey { CTRL_G | CTRL_L | CTRL_O | CTRL_U } command-text,配置快捷键对应的命令。

系统支持用户自定义四个快捷键,快捷键的缺省值如下:

  • :对应命令display current-configuration
  • :对应命令display ip routing-table
  • :对应命令undo debugging all
  • :默认值为空。

:::warning 医疗_消息.png 说明

  • 定义快捷键时,对于由多个命令字组成的命令,即命令中间有空格,需要使用双引号标识,例如:hotkey ctrl_l “display tcp status”。对于单个命令字的命令,即命令中没有空格,不需要使用双引号。
  • 可通过display hotkey命令查看系统快捷键的使用情况,包括已定义、未定义以及系统快捷键。
  • 可通过undo hotkey命令恢复系统的快捷键缺省值。
  • 快捷键的执行与命令一样,也会将命令原形记录在命令缓冲区和日志中以备问题定位和查询。
  • 定义的快捷键对所有的登录用户均有效,但是如果用户没有快捷键所定义命令的使用权限,则执行此快捷键后会提示错误。 ::: | 功能键 | 功能 | | —- | —- | | | 将光标移动到当前行的开头。 | | | 将光标向左移动一个字符。 | | | 停止当前正在执行的功能。 | | | 删除当前光标所在位置的字符。 | | | 将光标移动到当前行的末尾。 | | | 将光标向右移动一个字符。 | | | 删除光标左侧的一个字符。 | | | 换行功能。 | | | 在连接建立阶段终止呼出的连接。 | | | 换行功能。 | | | 显示历史命令缓冲区中的后一条命令。 | | | 显示历史命令缓冲区中的前一条命令。 | | | 重新显示当前行信息。 | | | 终止呼出的连接。 | | | 粘贴剪贴板的内容。 | | | 删除光标左侧的一个字符串(字)。 | | | 删除光标左侧所有的字符。 | | | 删除光标所在位置及其右侧所有的字符。 | | | 返回到用户视图。 | | | 终止呼入的连接或重定向连接。 | | | 将光标向左移动一个字符串(字)。 | | | 删除光标右侧的一个字符串(字)。 | | | 将光标向右移动一个字符串(字)。 | | | 将光标向下移动一行。 | | | 将光标向上移动一行。 | | | 将光标所在位置指定为剪贴板的开始位置。 | | > | 将光标所在位置指定为剪贴板的结束位置。 |

六、控制命令行显示


  • 提示和警告信息提供中、英文两种语言显示。可以通过language-mode { chinese | english }命令切换语言模式,缺省情况下为英文模式。
  • 当终端屏幕上显示的信息过多时,可以使用显示上一页信息和下一页信息。
  • 当执行某一命令后,如果显示的信息超过一屏时,系统会自动暂停,以方便用户查看。此时用户可以通过功能键控制命令行的显示方式。 | 功能键 | 功能 | | —- | —- | | 键入 | 停止显示或命令执行。
    说明:
    也可以键入除空格键、回车键外的其他键(可以是数字键或字母键)停止显示和命令执行。 | | 键入空格键 | 继续显示下一屏信息。 | | 键入回车键 | 继续显示下一行信息。 |

:::warning 医疗_消息.png 说明

  • screen-length screen-length temporary命令可以用来设置当前终端屏幕每屏显示的行数,如果screen-length取值为0则关闭分屏功能,即当显示的信息超过一屏时,系统不会自动暂停。 :::

  • 设备除提供了命令执行后的信息显示控制方法,还可以控制命令行输入时的回显模式。命令行回显模式分为字符模式和行模式,可通过terminal echo-mode { character | line },设置命令行回显模式,缺省情况下为字符模式。

    • character:指定命令行回显模式是字符模式。输入命令行时,用户输入一个字符系统回显一个字符。
    • line:指定命令行回显模式是行模式。输入命令行时,用户输入字符后,只有键入回车键、Tab键或?键,系统才回显输入的字符。
  • 通过网管操作设备时,为了提高网管操作设备的效率,可将命令行回显模式修改为line模式。普通用户建议使用character模式,否则会影响命令行使用习惯,从而降低了操作设备的效率。

七、使用正则表达式过滤命令行显示信息


正则表达式
使用display命令查看设备的配置信息和运行状态信息时,可以通过正则表达式过滤不需要的信息。正则表达式(regular-expression)是一种模式匹配工具,用户根据一定的规则构建匹配模式,然后将匹配模式与目标对象进行匹配。正则表达式格式上是由1~256个普通字符和特殊字符组成的字符串。

  • 普通字符
    • 普通字符匹配的对象是普通字符本身。包括所有的大写和小写字母、数字、下划线、标点符号以及一些特殊符号。例如:a匹配abc中的a,20匹配20.1.1.1中的20,@匹配xxx@xxx.com中的@。
  • 特殊字符
    • 为帮助用户灵活地构建匹配模式,正则表达式提供了一些具有特殊含义的专用字符,也称为“元字符”(metacharacter)。这些特殊字符用来规定其它字符在目标对象中的出现模式。下表是对特殊字符及其语法意义的使用描述。 | 特殊字符 | 功能 | 举例 | | —- | —- | —- | | \ | 转义字符。将下一个字符(特殊字符或者普通字符)标记为普通字符。 | \匹配 | | ^ | 匹配行首的位置。 | ^10匹配10.10.10.1,不匹配20.10.10.1 | | $ | 匹配行尾的位置。 | 1$匹配10.10.10.1,不匹配10.10.10.2 | | | 匹配前面的子正则表达式零次或多次。 | 10可以匹配1、10、100、1000、……
      (10)*可以匹配空、10、1010、101010、…… | | + | 匹配前面的子正则表达式一次或多次。 | 10+可以匹配10、100、1000、……
      (10)+可以匹配10、1010、101010、…… | | ? | 匹配前面的子正则表达式零次或一次。
      说明:
      当前,在华为公司数据通信设备上运用正则表达式输入?时,系统显示为命令行帮助功能。华为公司数据通信设备不支持正则表达式输入?特殊字符。 | 10?可以匹配1或者10
      (10)?可以匹配空或者10 | | . | 匹配任意单个字符。 | 0.0可以匹配0x0、020、……
      .oo.可以匹配book、look、tool、…… | | () | 一对圆括号内的正则表达式作为一个子正则表达式,匹配子表达式并获取这一匹配。圆括号内也可以为空。 | 100(200)+可以匹配100200、100200200、…… | | x|y | 匹配x或y。 | 100|200匹配100或者200
      1(2|3)4匹配124或者134,而不匹配1234、14、1224、1334 | | [xyz] | 匹配正则表达式中包含的任意一个字符。 | [123]匹配255中的2 | | [^xyz] | 匹配正则表达式中未包含的字符。 | [^123]匹配除123之外的任何字符 | | [a-z] | 匹配正则表达式指定范围内的任意字符。 | [0-9]匹配0到9之间的所有数字 | | [^a-z] | 匹配正则表达式指定范围外的任意字符。 | [^0-9]匹配所有非数字字符 |

正则表达式的使用方法 :::info 交换机采用正则表达式实现管道符的过滤功能。并非所有display命令均支持指定过滤方式,一般只有显示信息较多的命令才支持。
如果显示信息较多,查看过滤后的配置信息时系统需要较长的时间才能获取正确的信息,因此需要用户等待一段时间。 ::: 使用正则表达式过滤命令行显示信息的方法有两种:

  • 在命令中指定过滤方式:在命令行中通过输入beginexcludeinclude关键字加正则表达式的方式来过滤显示。
  • 在分屏显示时指定过滤方式:在分屏显示时,使用“/”、“-”或“+”符号加正则表达式的方式,可以对还未显示的信息进行过滤显示。其中,“/”等同关键字begin;“-”等同关键字exclude;“+”等同关键字include

在命令中指定过滤方式
系统支持使用| count,显示使用过滤条件后输出的结果的行数。可以与过滤方式配合使用。
在支持正则表达式的命令中,有三种过滤方式可供选择:

  • | begin regular-expression:输出以匹配指定正则表达式的行开始的所有行。即过滤掉所有待输出字符串,直到出现指定的字符串(此字符串区分大小写)为止,其后的所有字符串都会显示到界面上。
  • | exclude regular-expression:输出不匹配指定正则表达式的所有行。即待输出的字符串中没有包含指定的字符串(此字符串区分大小写),则会显示到界面上;否则过滤不显示。
  • | include regular-expression:只输出匹配指定正则表达式的所有行。即待输出的字符串中如果包含指定的字符串(此字符串区分大小写),则会显示到界面上;否则过滤不显示。regular-expression为字符串形式(不包括中文),长度范围是1~255。

八、设置命令级别


为了限制不同用户对设备的访问权限,系统对用户也进行了分级管理。用户的级别与命令级别对应,不同级别的用户登录后,只能使用等于或低于自己级别的命令。缺省情况下,命令级别按0~3级进行注册,用户级别按0~15级进行注册,用户级别和命令级别对应关系如下表所示。

命令级别 说明 举例 用户级别
参观级(0级) 网络诊断命令
- tracert
- ping
所有级别(0~15级)
访问外部设备命令
- telnet
- stelnet
监控级(1级) 系统维护命令 display命令
说明:
并不是所有display命令都是监控级,比如display current-configuration命令和display saved-configuration命令是3级管理级。
不低于监控级(1~15级)
配置级(2级) 业务配置命令 路由配置命令 不低于配置级(2~15级)
管理级(3级) 系统基本运行命令
- 用户管理
- 命令级别设置
- 系统参数设置
- debugging命令
管理级(3~15级)
系统支撑模块命令
- 文件系统
- FTP/TFTP下载
- 配置文件切换命令

缺省的命令级别设置已基本可以满足用户对操作权限的控制,一般不需要重新设置。如果对用户操作权限有特殊要求,需要调整某级别的用户可进行的操作,例如希望只有4级及以上用户才可以执行stelnet命令,设备提供了调整命令行级别的功能,可以将stelnet命令的级别提升至4级。
调整命令行级别,不仅可以提升命令行的级别,也包含降低命令行的级别。 :::info

  1. 执行命令system-view,进入系统视图。
  2. 设置命令级别。
    • 执行命令command-privilege level level viewview-namecommand-key,设置指定视图内命令的级别。
    • 执行命令command-privilege level rearrange,批量提升命令的级别。在执行此命令之前,用户需要确保自己的级别为15级,否则无法执行该命令。
      • 对于没有单独调整过级别的命令,批量提升命令级别后,按以下原则自动调整:
        • 0级和1级命令保持级别不变。
        • 2级命令提升到10级,3级命令提升到15级。
        • 2~9级和11~14级这些命令级别中没有命令行。用户可以单独调整需要的命令行到这些级别中,以实现用户权限的精细化管理。
      • 对于执行command-privilege level level viewview-namecommand-key命令修改过命令级别的命令,批量提升命令级别后,维持原来级别不变。 :::

九、查看历史命令


设备能够自动保存用户键入的历史命令。当用户需要输入之前已经执行过的命令时,可以调用设备保存的历史命令。
缺省情况下,为每个登录用户保存10条历史命令。可以通过history-command max-size size-value命令在相应的用户界面视图下重新设置保存历史命令的条数,最大设置为256。 :::warning 医疗_消息.png 说明

  • 不推荐用户将此值设置过大,因为可能会花费较长时间才查看到所需要的历史命令,反而影响配置效率。 ::: | 操作 | 命令或功能键 | 结果 | | —- | —- | —- | | 显示历史命令 | display history-command [ all-users ] |
    - 不指定all-users,显示当前用户键入的历史命令。
    - 指定all-users,显示的是所有登录用户键入的历史命令。(3级及3级以上的用户才能执行此参数)
    | | 访问上一条历史命令 | 上光标键或者 | 如果还有更早的历史命令,则取出上一条历史命令,否则响铃警告。 | | 访问下一条历史命令 | 下光标键或者 | 如果还有更新的历史命令,则取出下一条历史命令,否则显示为空,响铃警告。 |

在使用历史命令功能时,需要注意:

  • 保存的历史命令与用户输入的命令格式相同,如果用户使用了命令的不完整形式,保存的历史命令也是不完整形式。
  • 如果用户多次执行同一条命令,则历史命令中只保留最近的一次。但如果执行时输入的形式不同,将作为不同的命令对待。例如:多次执行display current-configuration命令,历史命令中只保存一条。如果执行display current-configurationdis curr,将保存为两条历史命令。
  • 当前用户的历史命令可以在所有视图下通过reset history-command命令进行清除,清除后则无法显示和访问之前执行过的历史命令。如果需要清除所有用户的历史命令,则需要3级及3级以上的用户执行reset history-command [ all-users ]命令进行清除。