01-CLI配置
本章节下载: 01-CLI配置 (241.58 KB)
CLI(Command Line Interface,命令行接口)是用户与设备之间的文本类指令交互界面。用户输入文本类命令,通过输入回车键提交设备执行相应命令,从而对设备进行配置和管理,并可以通过查看输出信息确认配置结果。
设备支持多种方式进入命令行接口界面,比如通过Console口/Telnet/SSH登录设备后进入命令行接口界面等,各方式的详细描述请参见“基础配置指导”中的“登录设备”。
设备提供了丰富的功能,不同的功能对应不同的配置和查询命令。为便于用户使用这些命令,设备按功能对命令进行分类组织。功能分类与命令视图对应,当要配置某功能的某条命令时,需要先进入这条命令所在的视图。每个视图都有唯一的、含义清晰的提示符,比如提示符[Sysname-vlan100]表示当前的命令视图是VLAN视图,VLAN的编号是100,在该视图下可对VLAN 100的属性进行配置。
· 用户登录设备后,直接进入用户视图。此时屏幕显示的提示符是:<设备名>。用户视图下可执行的操作主要包括查看操作、调试操作、文件管理操作、设置系统时间、重启设备、FTP和Telnet操作等。
· 从用户视图可以进入系统视图,此时屏幕显示的提示符是:[设备名]。系统视图下能对设备运行参数以及部分功能进行配置,比如配置夏令时、配置欢迎信息、配置快捷键等。
· 在系统视图下输入特定命令,可以进入相应的功能视图,完成相应功能的配置,比如:进入接口视图配置接口参数、进入VLAN视图给VLAN添加端口、进入用户线视图配置登录用户的属性、创建本地用户并进入本地用户视图配置本地用户的属性等。
想要了解某命令视图下支持哪些命令,请在该命令视图提示符后输入<?>。
“设备名”是设备的名称,可以通过在系统视图下执行sysname命令来配置。关于sysname命令的详细介绍请参见“基础配置命令参考”中的“设备管理”。
当前视图下的功能配置完成,使用本命令可以退出当前视图返回到上一级视图。需要注意的是:
· 用户视图下执行quit命令会中断用户终端与设备之间的当前连接。
· 公共密钥视图下请使用peer-public-key end命令返回系统视图。
本命令为用户提供了一种从任意的非用户视图返回到用户视图的快捷方式,而不需要多次执行quit命令逐级返回。用户也可以直接按组合键<Ctrl+Z>从当前视图返回用户视图。
在命令行输入过程中,可以在命令行的任意位置输入<?>以获得详尽的在线帮助。下面给出常见的在线帮助应用场景,供参考使用。
(1) 在任意视图下,输入<?>即可获取该视图下可以使用的所有命令及其简单描述。例如:
User view commands:
access-list acl
archive Archive configuration
backup Backup the startup configuration file to a TFTP server
boot-loader Software image file management
如果<?>位置为关键字,则列出全部关键字及其简单描述。例如:
debugging Enable to display debugging logs on the current terminal
logging Display logs on the current terminal
monitor Enable to display logs on the current terminal
如果<?>位置为参数,则列出有关的参数描述。例如:
[Sysname] interface vlan-interface ?
<1-4094> Vlan-interface interface number
[Sysname] interface vlan-interface 1 ?
<cr>
其中,<1-4094>表示该参数的取值范围为1~4094;<cr>表示命令行当前位置无参数,直接输入回车即可执行。
(3) 输入命令的不完整关键字,其后紧接<?>,显示以该字符串开头的所有命令关键字。例如:
quit
<Sysname> display ftp?
ftp
ftp-server
ftp-user
命令的undo形式一般用来恢复缺省情况、禁用某个功能或者删除某项设置。大部分配置命令都有对应的undo形式。例如,info-center enable命令用来开启信息中心,undo info-center enable命令用来关闭信息中心。
编辑命令行时,系统支持如表1-4所示的单个按键和如表1-8所示的组合键。
若编辑缓冲区未满,则插入到当前光标位置,并向右移动光标(命令行下发前会暂时缓存在编辑缓冲区,缓冲区的大小为511个字符,如果编辑缓冲区满,则后续输入的字符无效) |
|
左光标键<←> |
|
右光标键<→> |
|
上光标键<↑> |
|
下光标键<↓> |
|
输入不完整的关键字后按下<Tab>键,系统自动补全关键字: · 如果与之匹配的关键字唯一,则系统用此完整的关键字替代原输入并换行显示 · 如果与之匹配的关键字不唯一,则多次按<Tab>键,系统会循环显示所有以输入字符串开头的关键字 |
用户通过键盘输入命令行后,按<Enter>键执行该命令。
用户输入的命令行总长度不能超过512个字符,包括空格,关键字或特殊符号等。
如果命令行中的参数为STRING类型,则建议输入除“?”、“"”、“\”、空格之外的可见字符(可见字符对应的ASCII码区间为32~126),以免设备将该参数传递给其它网络设备时,对端设备无法解析。如果STRING类型的参数中需要包含字符“"”、“\”,则必须使用转义字符“\”辅助输入,即实际应输入“\"”、“\\”;如需输入空格,则需要将整个字符串包含在双引号中,例如,若要配置字符串参数为“my device”,则实际应输入“"my device"”。
如果命令行中的参数是TEXT类型的,则除了“?”外的其他字符都可输入。
需要注意的是,业务模块可能对参数有更多的输入限制,详情请见命令的提示信息以及命令参考中的参数描述。
设备支持不完整关键字输入,即在当前视图下,当输入的字符足够匹配唯一的关键字时,可以不必输入完整的关键字。该功能提供了一种快捷的输入方式,有助于提高操作效率。
比如用户视图下以s开头的命令有startup saved-configuration、system-view等。
· 如果要输入system-view,可以直接输入sy(不能只输入s,因为只输入s时,匹配到的关键字不唯一)。
· 如果要输入startup saved-configuration,可以直接输入st s。
可以按<Tab>键由系统自动补全关键字的全部字符,以确认系统的选择是否为所需输入的关键字。
通过本命令用户可以为命令行指定一个别名,使其符合用户的使用习惯。使用本特性,只有当命令行第一个关键字或者undo命令的第二个关键字是别名时,才按照别名命令替换执行,否则按照非别名命令执行。比如将命令“display ip routing-table”的别名配置为siprt后,就可以用命令siprt来代替执行命令“display ip routing-table”。
· 用户成功执行的带别名的命令将以系统原始的命令形式被显示或存储,而不会以别名的形式。
· 当用户在执行别名命令时,如果别名命令中定义了参数,则参数必须输入完全,设备才会按照替换后的命令执行相关操作;否则设备将会返回命令输入不完整的提示信息,并显示出当前别名代表的命令字符串。
· 为了方便用户使用,系统定义了部分常用的关键字作为缺省别名,如表1-5所示。
为便于用户对常用命令进行快捷操作,系统提供了一系列的快捷键。其中用户可自定义的快捷键有五个,配置步骤见表1-7,其他快捷键(见表1-8)为系统保留的,不能通过命令行配置。
hotkey { ctrl_g | ctrl_l | ctrl_o | ctrl_t | ctrl_u } command |
· <Ctrl+G>对应命令display current-configuration(显示当前配置) · <Ctrl+L>对应命令display ip routing-table(显示IPv4路由表信息) · <Ctrl+O>对应命令undo debugging all(关闭设备支持的所有功能项的调试开关) · <Ctrl+T>没有关联任何命令行 · <Ctrl+U>没有关联任何命令行 |
|
当用户在未完成输入操作却被大量的系统信息打断时,开启此功能可以回显用户已经输入而未提交执行的信息,方便用户继续完成未输入的内容。
命令行输入完毕后,请按<Enter>键执行该命令。设备执行命令的过程中,首先会对命令行进行语法检查。如果通过语法检查,则正确执行;否则,输出错误信息,常见的错误信息如表1-10所示。
命令无法解析,符号“^”指示位置出错 |
|
符号“^”指示位置的参数输入不完整 |
|
符号“^”指示位置的关键字不明确,存在二义性 |
|
在符号“^”指示位置的参数错误 |
当需要重复执行最近的历史记录命令时,使用该命令可以重复多次执行多条历史命令,并且可以设置每次重复执行历史命令的时间间隔。
在执行repeat命令时需要注意:
· repeat命令只能用于重复执行当前视图下的历史命令。
· 重复执行历史命令时,系统将按照历史命令的下发顺序执行。例如,用户在某视图下依次执行命令a、b和c后,再执行repeat 3命令,则系统将按照a、b和c的顺序重复执行一次。
· 如果用户重复执行的历史命令中存在交互式命令,需要用户手动处理此交互式命令,直到交互式命令执行结束,历史命令才会继续被重复执行。
用户在设备上成功执行的命令,会同时保存到用户独享的历史命令缓冲区和所有用户共享的历史命令缓冲区。两缓冲区的详细描述请参见表1-12。
可通过history-command max-size size-value命令来配置(该命令的详细介绍请参见“基础配置命令参考”中的“登录设备”)。缺省情况下,可存放10条历史命令;如果将size-value设置为0,则不会缓存历史命令;如果当前历史命令缓冲区满且有新的命令需要缓存,则自动删除最早的记录,来保存新命令 |
||||
为固定大小1024条。如果当前历史命令缓冲区满且有新的命令需要缓存,则自动删除最早的记录,来保存新命令 |
· 设备保存的历史命令与用户输入的命令格式相同。如果用户使用了命令的不完整形式,保存的历史命令也是不完整形式;如果用户使用了命令关键字的别名形式,保存的历史命令也是别名形式。
· 如果用户连续多次执行同一条命令,设备的历史命令中只保留一次。但如果执行时输入的形式不同,将作为不同的命令对待。例如:连续多次执行display current-configuration命令,设备只保存一条历史命令;如果分别执行display current-configuration命令和它的不完整形式display cu,设备将保存为两条历史命令。
需要注意的是,在Windows 200X及Windows XP的超级终端和Telnet下可使用光标键访问历史命令,但对于Windows 9X的超级终端,↑、↓光标键无效,这是由于Windows 9X的超级终端对这两个键作了不同解释所致。
当显示信息较多并超过一屏时,系统会将信息分屏显示,并在屏间自动暂停,方便查看显示信息。
缺省情况下,一屏显示24行信息,也可以使用screen-length命令设置用户线下一屏显示的行数(screen-length命令的详细介绍请参见“基础配置命令参考”中的“登录设备”)。
可以通过以下配置禁用当前登录用户的分屏显示功能。禁止分屏显示时,会一次显示所有信息,如果信息较多,则会连续刷屏,不方便查看。
缺省情况下,用户登录后将遵循用户线下的screen-length设置。screen-length设置的缺省情况为:允许分屏显示,下一屏显示24行数据 |
在用display命令查看显示信息时,用户可以用by-linenum参数在显示信息的同时显示信息行号,方便定位显示信息。如果不带by-linenum参数,则不会显示行号。
行号占5个字符,通常行号后面接“:”。当by-linenum和begin参数一起使用时,行号后面还可能接“-”,其中“:”表示该行符合匹配规则,“-”表示该行不符合匹配规则。
按行显示display命令执行结果(显示信息带行号) |
# 显示系统时间信息的同时显示行号。
<Sysname> display clock | by-linenum
1: 06:14:21 UTC Sat 01/01/2011
在执行display命令查看显示信息时,可以使用正则表达式来过滤显示信息,以便快速的找到自己关注的信息。
在display命令中通过输入| { begin | exclude | include } regular-expression参数的方式来过滤显示。begin、exclude和include关键字的含义如下:
· begin:显示特定行及其以后的所有行,该特定行必须包含指定正则表达式。
· exclude:显示不包含指定正则表达式的所有行。
· include:只显示包含指定正则表达式的所有行。
正则表达式(regular-expression)为1~256个字符的字符串,区分大小写,它支持多种特殊字符,特殊字符的匹配规则如表1-15所示。正则表达式的执行时间和正则表达式的复杂程度成正比,对于复杂的正则表达式,执行时间会比较长,如有需要,可按<CTRL+C>键终止。
^u只能匹配以u开始的行,不能匹配以Au开始的行
|
||
u$只能匹配以u结尾的行,不能匹配以uA结尾的行
|
||
.s可以匹配as和bs等 |
||
· zo*可以匹配z以及zoo · (zo)*可以匹配zo以及zozo |
||
匹配+前面的字符或字符串一次或多次 |
zo+可以匹配zo以及zoo,但不能匹配z |
|
匹配|左边或右边的整个字符串 |
def|int只能匹配包含def或者int的字符串所在的行
|
|
表示字符串,一般与“+”或“*”等符号一起使用 |
(123A)表示字符串123A;408(12)+可以匹配40812或408121212等字符串,但不能匹配408 |
|
表示重复一次指定字符串,字符串是指\前用()括起来的字符串,index对应\前字符串的顺序号按从左至右的顺序从1开始编号:如果\前面只有一个字符串,则index只能为1;如果\前面有n个字符串,则index可以为1到n中的任意整数 |
(string)\1表示把string重复一次,匹配的字符串必须包含stringstring;(string1)(string2)\2表示把string2重复一次,匹配的字符串必须包含string1string2string2;(string1)(string2)\1\2表示先把string1重复一次,再重复一次string2,匹配的字符串必须包含string1string2string1string2 |
|
· [16A]表示可以匹配到的字符串只需要包含1、6或A中任意一个 · [1-36A] 表示可以匹配到的字符串只需要包含1、2、3、6或A中任意一个(-为连接符) 如果]需要作为普通字符出现在[ ]内时,必须把]写在[ ]中字符的最前面,形如[]string],才能匹配到]。[没有这样的限制 |
||
[^16A]表示可匹配的字符串只需要包含1、6和A之外的任意字符,该字符串也可以包含字符1、6或A,但不能只包含这三个字符。比如[^16A]可以匹配abc、m16,不能匹配1、16、16A |
||
n是一个非负整数,匹配n次 |
o{2}不能匹配Bob,但是能匹配food |
|
n是一个非负整数,至少匹配n次 |
o{2,}不能匹配Bob,但能匹配foooood |
|
m和n均为非负整数,其中n小于等于m。只要字符串里包含n到m个某字符就能匹配到 |
o{1,3}能匹配fod、food、foood、foooood,但不能匹配fd |
|
\<do匹配单词domain,还可以匹配字符串doa |
||
do\>匹配单词undo,还可以匹配字符串cdo |
||
er\b可以匹配never,但不能匹配verb \ber可以匹配erase,但不能匹配verb |
||
er\B能匹配verb,但不能匹配never |
||
\w等效于[A-Za-z0-9_],是数字、字母或下划线 |
v\w能匹配vlan,v\w还能匹配service |
|
\W等效于[^A-Za-z0-9_],是除了数字、字母和下划线之外的任意字符 |
\Wa可以匹配-a,但是不能匹配2a和ba等 |
|
转义操作符,\后紧跟本表中罗列的单个特殊字符时,将去除特殊字符的特定含义 |
· \\可以匹配包含\的字符串 · \^可以匹配包含^的字符串 · \\b可以匹配包含\b的字符串 |
# 查看当前生效的配置中,从包含“line”字符串的行开始到最后一行的配置信息(该显示信息与设备型号以及用户的当前配置有关)。
<Sysname> display current-configuration | begin line
line class aux
user-role network-admin
#
line class vty
user-role network-operator
#
line aux 0
user-role network-admin
#
line vty 0 63
authentication-mode scheme
user-role network-operator
#
ssh server enable
#
return
# 检索并显示路由表中的不包含“Direct”字符串的行,即显示非直连路由(该显示信息与设备型号以及用户的当前配置有关)。
<Sysname> display ip routing-table | exclude Direct
Destinations : 12 Routes : 12
Destination/Mask Proto Pre Cost NextHop Interface
2.2.2.0/24 OSPF 10 2 1.1.2.2 Vlan 2
# 查看SNMP相关配置(该显示信息与设备型号以及用户的当前配置有关)。
<Sysname> display current-configuration | include snmp
snmp-agent
snmp-agent community write private
snmp-agent community read public
snmp-agent sys-info version all
snmp-agent target-host trap address udp-domain 192.168.1.26 params securityname public
display命令显示的内容通常是统计信息、功能是否使能以及功能的相关参数配置,这些信息在设备运行过程中会随着时间或者用户的配置而改变。使用本配置可以将当前显示信息保存到指定文件,方便随时比对和查看。有两种方式将显示信息保存到文件中:
· 将显示信息独立保存到指定文件:使用该方式时,该文件只包含该显示信息的内容。
· 将显示信息以追加方式保存到已有文件:使用该方式时,该命令的显示信息会追加在指定文件的尾部保存,该文件能包含多条显示信息的内容。
下面将通过举例示意如何将显示信息保存到指定文件以及保存效果。
# 将display clock的显示设备时间保存到指定文件clock.txt。
<Sysname> display clock > clock.txt
# 查看clock的内容,验证display >命令的执行效果。
06:03:58 UTC Sat 01/01/2014
# 再次将display clock的显示信息以追加方式保存到指定文件clock.txt。
<Sysname> display clock >> clock.txt
# 查看clock.txt的内容,验证display >>命令的执行效果。
06:03:58 UTC Sat 01/01/2014
06:04:58 UTC Sat 01/01/2014
执行display命令时,通过选择参数,可以同时实现“1.9.2 查看带行号的显示信息”、“1.9.3 使用正则表达式过滤显示信息”和“1.9.4 将显示信息保存到指定文件”。
# 按行号将当前配置保存到文件test.txt。
<Sysname> display current-configuration | by-linenum > test.txt
# 将SNMP的相关配置以追加方式保存到文件test.txt。
<Sysname> display current-configuration | include snmp >> test.txt
# 查看当前配置,从包含“user-group”字符串的行开始到最后一行配置信息,并同时显示行号。(行号后为“:”表示该行包含“user-group”字符串,行号后为“-”表示该行不包含“user-group”字符串。)
<Sysname> display current-configuration | by-linenum begin user-group
114: user-group system
115- #
116- return
在设备上,可以输入save命令,将当前配置保存到配置文件中。这样在设备重启后,所有保存的配置不会丢失。
配置保存不涉及一次性执行命令,比如:display命令(执行后即显示相关信息)和reset命令(执行后即清除相关信息)。save命令的详细介绍请参见“基础配置命令参考”中的“配置文件管理”。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!