01-CLI配置
本章节下载: 01-CLI配置 (235.58 KB)
目 录
CLI(Command Line Interface,命令行接口)是用户与设备之间的文本类指令交互界面。用户输入文本类命令,通过输入回车键提交设备执行相应命令,从而对设备进行配置和管理,并可以通过查看输出信息确认配置结果。
设备支持多种方式进入命令行接口界面,比如通过Console口/Telnet/SSH登录设备后进入命令行接口界面等,各方式的详细描述请参见“基础配置指导”中的“登录设备”。设备的命令行接口界面如图1-1所示。
设备提供了丰富的功能,不同的功能对应不同的配置和查询命令。为便于用户使用这些命令,设备按功能对命令进行分类组织。功能分类与命令视图对应,当要配置某功能的某条命令时,需要先进入这条命令所在的视图。每个视图都有唯一的、含义清晰的提示符,比如提示符[Sysname-vlan100]表示当前的命令视图是VLAN视图,VLAN的编号是100,在该视图下可对VLAN 100的属性进行配置。
命令视图采用分层结构,如图1-2所示。
· 用户登录设备后,直接进入用户视图。此时屏幕显示的提示符是:<设备名>。用户视图下可执行的操作主要包括查看操作、调试操作、文件管理操作、设置系统时间、重启设备、FTP和Telnet操作等。
· 从用户视图可以进入系统视图,此时屏幕显示的提示符是:[设备名]。系统视图下能对设备运行参数以及部分功能进行配置,比如配置夏令时、配置欢迎信息、配置快捷键等。
· 在系统视图下输入特定命令,可以进入相应的功能视图,完成相应功能的配置,比如:进入接口视图配置接口参数、进入VLAN视图给VLAN添加端口、进入用户线视图配置登录用户的属性、创建本地用户并进入本地用户视图配置本地用户的属性等。
想要了解某命令视图下支持哪些命令,请在该命令视图提示符后输入<?>。
“设备名”是设备的名称,可以通过在系统视图下执行sysname命令来配置。关于sysname命令的详细介绍请参见“基础配置命令参考”中的“设备管理”。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
该命令在用户视图下执行 |
当前视图下的功能配置完成,使用本命令可以退出当前视图返回到上一级视图。需要注意的是:
· 用户视图下执行quit命令会中断用户终端与设备之间的当前连接。
· 公共密钥视图下请使用peer-public-key end命令返回系统视图。
表1-2 返回上一级视图
操作 |
命令 |
说明 |
从当前视图返回上一级视图 |
quit |
该命令可在任意视图下执行 |
本命令为用户提供了一种从任意的非用户视图返回到用户视图的快捷方式,而不需要多次执行quit命令逐级返回。用户也可以直接按组合键<Ctrl+Z>从当前视图返回用户视图。
表1-3 返回用户视图
操作 |
命令 |
说明 |
返回用户视图 |
return |
该命令可在任意的非用户视图下执行 |
在命令行输入过程中,可以在命令行的任意位置输入<?>以获得详尽的在线帮助。下面给出常见的在线帮助应用场景,供参考使用。
(1) 在任意视图下,输入<?>即可获取该视图下可以使用的所有命令及其简单描述。例如:
<Sysname> ?
User view commands:
access-list acl
archive Archive configuration
backup Backup the startup configuration file to a TFTP server
bash
blade
boot-loader Software image file management
……略……
(2) 输入一条命令的关键字,后接以空格分隔的<?>。
如果<?>位置为关键字,则列出全部关键字及其简单描述。例如:
<Sysname> terminal ?
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> system-view
[Sysname] interface vlan-interface ?
<1-4094> Vlan-interface interface number
[Sysname] interface vlan-interface 1 ?
<cr>
其中,<1-4094>表示该参数的取值范围为1~4094;<cr>表示命令行当前位置无参数,直接输入回车即可执行。
(3) 输入命令的不完整关键字,其后紧接<?>,显示以该字符串开头的所有命令关键字。例如:
<Sysname> f?
fdisk
fixdisk
format
free
ftp
<Sysname> display ftp?
ftp
ftp-server
ftp-user
命令的undo形式一般用来恢复缺省情况、禁用某个功能或者删除某项设置。大部分配置命令都有对应的undo形式。例如,info-center enable命令用来开启信息中心,undo info-center enable命令用来关闭信息中心。
编辑命令行时,系统支持如表1-4所示的单个按键和如表1-8所示的组合键。
按键 |
功能 |
普通按键 |
若编辑缓冲区未满,则插入到当前光标位置,并向右移动光标(命令行下发前会暂时缓存在编辑缓冲区,缓冲区的大小为511个字符,如果编辑缓冲区满,则后续输入的字符无效) |
退格键<Backspace> |
删除光标位置的前一个字符,光标前移 |
左光标键<←> |
光标向左移动一个字符位置 |
右光标键<→> |
光标向右移动一个字符位置 |
上光标键<↑> |
访问上一条历史命令 |
下光标键<↓> |
访问下一条历史命令 |
<Tab>键 |
输入不完整的关键字后按下<Tab>键,系统自动补全关键字: · 如果与之匹配的关键字唯一,则系统用此完整的关键字替代原输入并换行显示 · 如果与之匹配的关键字不唯一,则多次按<Tab>键,系统会按字母序循环显示所有以输入字符串开头的关键字 · 如果没有与之匹配的关键字,系统会不作任何修改,重新换行显示原输入 |
用户通过键盘输入命令行后,按<Enter>键执行该命令。
用户输入的命令行总长度不能超过512个字符,包括空格,关键字或特殊符号等。
输入命令行时,如果命令行中的参数是STRING类型的,则设备对该参数的基本要求为:除“?”、“"”、“\”、空格之外的可见字符,可见字符对应的ASCII码区间为32~126。
如果命令行中的参数是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所示。
缺省别名 |
命令 |
access-list |
acl |
end |
return |
erase |
delete |
exit |
quit |
hostname |
sysname |
logging |
info-center |
no |
undo |
show |
display |
write |
save |
表1-6 配置命令字符串的别名
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
给指定的命令字符串配置别名 |
alias alias command |
系统定义的缺省别名命令,请参见表1-5 |
(可选)显示命令字符串别名功能的相关配置 |
display alias [ alias ] |
该命令可在任意视图下执行 |
为便于用户对常用命令进行快捷操作,系统提供了一系列的快捷键。其中用户可自定义的快捷键有五个,配置步骤见表1-7,其他快捷键(见表1-8)为系统保留的,不能通过命令行配置。
只要用户按下某个快捷键,系统即可执行对应的指令。需要注意的是,当用户使用终端软件与设备进行交互时,且终端软件定义了这些快捷键(包括用户可定义的和系统保留的),则快捷键会遵从终端软件的定义,不会对设备生效。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置命令行的快捷键 |
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>没有关联任何命令行 |
(可选)显示系统中快捷键的分配信息 |
display hotkey |
该命令可在任意视图下执行 |
快捷键 |
功能 |
<Ctrl+A> |
将光标移动到当前行的开头 |
<Ctrl+B> |
将光标向左移动一个字符 |
<Ctrl+C> |
停止当前正在执行的功能 |
<Ctrl+D> |
删除当前光标所在位置的字符 |
<Ctrl+E> |
将光标移动到当前行的末尾 |
<Ctrl+F> |
将光标向右移动一个字符 |
<Ctrl+H> |
删除光标左侧的一个字符 |
<Ctrl+K> |
终止呼出的连接 |
<Ctrl+R> |
重新显示当前行信息 |
<Ctrl+V> |
粘贴剪贴板的内容 |
<Ctrl+W> |
删除光标左侧连续字符串内的所有字符 |
<Ctrl+X> |
删除光标左侧所有的字符 |
<Ctrl+Y> |
删除光标右侧所有的字符 |
<Ctrl+Z> |
退回到用户视图 |
<Ctrl+]> |
终止当前连接 |
<Esc+B> |
将光标移动到左侧连续字符串的首字符处 |
<Esc+D> |
删除光标所在位置及其右侧连续字符串内的所有字符 |
<Esc+F> |
将光标向右移到下一个连续字符串之前 |
当用户在未完成输入操作却被大量的系统信息打断时,开启此功能可以回显用户已经输入而未提交执行的信息,方便用户继续完成未输入的内容。
表1-9 配置命令行输入回显功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
打开命令行输入回显功能 |
info-center synchronous |
缺省情况下,命令行输入回显功能处于关闭状态 本命令的详细介绍请参见“网络管理和监控命令参考”中的“信息中心” |
命令行输入完毕后,请按<Enter>键执行该命令。设备执行命令的过程中,首先会对命令行进行语法检查。如果通过语法检查,则正确执行;否则,输出错误信息,常见的错误信息如表1-10所示。
英文错误信息 |
错误原因 |
% Unrecognized command found at '^' position. |
命令无法解析,符号“^”指示位置出错 |
% Incomplete command found at '^' position. |
符号“^”指示位置的参数输入不完整 |
% Ambiguous command found at '^' position. |
符号“^”指示位置的关键字不明确,存在二义性 |
% Too many parameters. |
输入参数太多 |
% Wrong parameter found at '^' position. |
在符号“^”指示位置的参数错误 |
用户在设备上成功执行的命令,会同时保存到用户独享的历史命令缓冲区和所有用户共享的历史命令缓冲区。两缓冲区的详细描述请参见表1-11。
历史命令缓冲区 |
是否可查看 |
是否可调用 |
退出登录后,历史命令是否继续保存 |
大小是否可调 |
独享历史命令缓冲区,每个用户线对应一个独享历史命令缓冲区 |
可通过display history-command来查看 |
· 使用上光标键↑并回车,可调用上一条历史命令 · 使用下光标键↓并回车,可调用下一条历史命令 |
不保存 |
可通过history-command max-size size-value命令来配置(该命令的详细介绍请参见“基础配置命令参考”中的“登录设备”)。缺省情况下,可存放10条历史命令;如果将size-value设置为0,则不会缓存历史命令;如果当前历史命令缓冲区满且有新的命令需要缓存,则自动删除最早的记录,来保存新命令 |
共享历史命令缓冲区,所有用户线共用一个共享历史命令缓冲区 |
可通过display history-command all来查看 |
不能调用 |
保存 |
为固定大小1024条。如果当前历史命令缓冲区满且有新的命令需要缓存,则自动删除最早的记录,来保存新命令 |
设备保存历史命令时,遵循下列原则:
· 设备保存的历史命令与用户输入的命令格式相同。如果用户使用了命令的不完整形式,保存的历史命令也是不完整形式;如果用户使用了命令关键字的别名形式,保存的历史命令也是别名形式。
· 如果用户连续多次执行同一条命令,设备的历史命令中只保留一次。但如果执行时输入的形式不同,将作为不同的命令对待。例如:连续多次执行display current-configuration命令,设备只保存一条历史命令;如果分别执行display current-configuration命令和它的不完整形式display cu,设备将保存为两条历史命令。
需要注意的是,在Windows 200X及Windows XP的超级终端和Telnet下可使用光标键访问历史命令,但对于Windows 9X的超级终端,↑、↓光标键无效,这是由于Windows 9X的超级终端对这两个键作了不同解释所致。
当显示信息较多并超过一屏时,系统会将信息分屏显示,并在屏间自动暂停,方便查看显示信息。
这时用户可以使用表1-12所示的按键来选择下一步操作。
按键 |
功能 |
空格键 |
继续显示下一屏信息 |
回车键 |
继续显示下一行信息 |
<Ctrl+C> |
停止显示,退回到命令行编辑状态 |
<PageUp> |
显示上一页信息 |
<PageDown> |
显示下一页信息 |
缺省情况下,一屏显示24行信息,也可以使用screen-length命令设置用户线下一屏显示的行数(screen-length命令的详细介绍请参见“基础配置命令参考”中的“登录设备”)。
可以通过以下配置禁用当前登录用户的分屏显示功能。禁止分屏显示时,会一次显示所有信息,如果信息较多,则会连续刷屏,不方便查看。
表1-13 禁止分屏显示
操作 |
命令 |
说明 |
禁用当前用户的分屏显示功能 |
screen-length disable |
缺省情况下,用户登录后将遵循用户线下的screen-length设置。screen-length设置的缺省情况为:允许分屏显示,下一屏显示24行数据 该操作在用户视图下执行,仅对当前用户本次登录有效,用户重新登录后将恢复到缺省情况 |
在用display命令查看显示信息时,用户可以用by-linenum参数在显示信息的同时显示信息行号,方便定位显示信息。如果不带by-linenum参数,则不会显示行号。
行号占5个字符,通常行号后面接“:”。当by-linenum和begin参数一起使用时,行号后面还可能接“-”,其中“:”表示该行符合匹配规则,“-”表示该行不符合匹配规则。
操作 |
命令 |
按行显示display命令执行结果(显示信息带行号) |
display command | by-linenum |
下面将通过举例示意如何查看带行号的显示信息。
# 显示VLAN 999信息的同时显示行号。
<Sysname> display vlan 999 | by-linenum
1: VLAN ID: 999
2: VLAN type: Static
3: Route interface: Configured
4: IP address: 192.168.2.1
5: Subnet mask: 255.255.255.0
6: Description: For LAN Access
7: Name: VLAN 0999
8: Tagged ports: None
9: Untagged ports:
10: FortyGigE1/0/1
在执行display命令查看显示信息时,可以使用正则表达式来过滤显示信息,以便快速的找到自己关注的信息。
在display命令中通过输入| { begin | exclude | include } regular-expression参数的方式来过滤显示。begin、exclude和include关键字的含义如下:
· begin:显示特定行及其以后的所有行,该特定行必须包含指定正则表达式。
· exclude:显示不包含指定正则表达式的所有行。
· include:只显示包含指定正则表达式的所有行。
正则表达式(regular-expression)为1~256个字符的字符串,区分大小写,它支持多种特殊字符,特殊字符的匹配规则如表1-14所示。正则表达式的执行时间和正则表达式的复杂程度成正比,对于复杂的正则表达式,执行时间会比较长,如有需要,可按<CTRL+C>键终止。
特殊字符 |
含义 |
举例 |
^ |
匹配以指定字符开始的行 |
^user只能匹配以字符u开始的行,不能匹配以其他字符r开始的行 |
$ |
匹配以指定字符结束的行 |
user$只能匹配以字符r结尾的行,不能匹配以其他字符结尾的行 |
. |
通配符,可代表任何一个字符 |
.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 |
表示重复一次指定字符串,字符串是指\前用()括起来的字符串,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是一个非负整数,匹配n次 |
o{2}不能匹配Bob,但是能匹配food |
{n,} |
n是一个非负整数,至少匹配n次 |
o{2,}不能匹配Bob,但能匹配foooood |
{n,m} |
m和n均为非负整数,其中n小于等于m。只要字符串里包含n到m个某字符就能匹配到 |
o{1,3}能匹配fod、food、foood、foooood,但不能匹配fd |
\< |
匹配包含指定字符串的字符串,字符串前面如果有字符则不能是数字、字母和下划线 |
\<do匹配单词domain,还可以匹配字符串doa |
\> |
匹配包含指定字符串的字符串,字符串后面如果有字符则不能是数字、字母和下划线 |
do\>匹配单词undo,还可以匹配字符串cdo |
\b |
匹配一个单词边界,也就是指单词和空格间的位置 |
er\b可以匹配never,但不能匹配verb \ber可以匹配erase,但不能匹配verb |
\B |
匹配非单词边界 |
er\B能匹配verb,但不能匹配never |
\w |
\w等效于[A-Za-z0-9_],是数字、字母或下划线 |
v\w能匹配vlan,v\w还能匹配service |
\W |
\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 1
user-role network-admin
#
line vty 0 63
authentication-mode scheme
user-role network-operator
#
ssh server enable
#
return
# 查看路由表中的非直连路由(该显示信息与设备型号以及用户的当前配置有关)。
<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 FGE1/0/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命令显示的内容通常是统计信息、功能是否使能以及功能的相关参数配置,这些信息在设备运行过程中会随着时间或者用户的配置而改变。使用本配置可以将当前显示信息保存到指定文件,方便随时比对和查看。有两种方式将显示信息保存到文件中:
· 将显示信息独立保存到指定文件:使用该方式时,该文件只包含该显示信息的内容。
· 将显示信息以追加方式保存到已有文件:使用该方式时,该命令的显示信息会追加在指定文件的尾部保存,该文件能包含多条显示信息的内容。
表1-15 将显示信息保存到指定文件
操作 |
命令 |
将显示信息独立保存到指定文件 |
display command > filename |
将显示信息以追加方式保存到已有文件 |
display command >> filename |
下面将通过举例示意如何将显示信息保存到指定文件以及保存效果。
# 将display vlan 1的显示信息保存到指定文件vlan.txt。
<Sysname> display vlan 1 > vlan.txt
# 查看vlan.txt的内容,验证display >命令的执行效果。
<Sysname> more vlan.txt
VLAN ID: 1
VLAN type: Static
Route interface: Not configured
Description: VLAN 0001
Name: VLAN 0001
Tagged ports: None
Untagged ports:
FortyGigE1/0/2
# 将display vlan 999的显示信息以追加方式保存到指定文件vlan.txt。
<Sysname> display vlan 999 >> vlan.txt
# 查看vlan.txt的内容,验证display >>命令的执行效果。
<Sysname> more vlan.txt
VLAN ID: 1
VLAN type: Static
Route interface: Not configured
Description: VLAN 0001
Name: VLAN 0001
Tagged ports: None
Untagged ports:
FortyGigE1/0/2
VLAN ID: 999
VLAN type: Static
Route interface: Configured
IP address: 192.168.2.1
Subnet mask: 255.255.255.0
Description: For LAN Access
Name: VLAN 0999
Tagged ports: None
Untagged ports:
FortyGigE1/0/1
执行display命令时,通过选择参数,可以同时实现“1.8.2 查看带行号的显示信息”、“1.8.3 使用正则表达式过滤显示信息”和“1.8.4 将显示信息保存到指定文件”。
表1-16 各种便捷查看方式的综合应用
操作 |
命令 |
各种便捷查看方式的综合应用 |
display command [ | [ by-linenum ] { begin | exclude | include } regular-expression ] [ > filename | >> filename ] |
下面将通过举例示意如何将各种便捷查看方式综合应用。
# 按行号将当前配置保存到文件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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!