过滤操作命令输出
管道 符号允许您(网络管理员)在操作和配置模式下过滤命令输出。|
关于使用管道 ( | )用于过滤命令输出的符号
您可以通过在输入命令时添加竖线 ( ) 符号来过滤命令输出。|
示例:
user@host> show rip neighbor ?
Possible completions:
<[Enter]> Execute this command
<name> Name of RIP neighbor
instance Name of RIP instance
logical-system Name of logical system, or 'all'
| Pipe through a command
下面的示例列出了可用于管道符号 ( | ) 的筛选器:
user@host> show interfaces | ?
user@host> show interfaces | ?
Possible completions:
append Append output text to file
count Count occurrences
display Show additional kinds of information
except Show only text that does not match a pattern
find Search for first occurrence of pattern
hold Hold text without exiting the --More-- prompt
last Display end of output only
match Show only text that matches a pattern
no-more Don't paginate output
refresh Refresh a continuous display of the command
request Make system-level requests
resolve Resolve IP addresses
save Save output text to file
tee Write to standard output and file
trim Trim specified number of columns from start of line
仅对于命令,您可以组合管道符号和问号以显示其他比较筛选器:show configuration
user@host> show configuration | ?
Possible completions:
compare Compare configuration changes with prior version
...
您可以组合输入任何管道过滤器。例如:
user@host>command | match regular-expression | save filename
本主题 仅 介绍可用于 操作模式命令 输出的筛选器。
示例:对管道使用正则表达式 ( | )用于过滤命令输出的符号
将 、 和筛选器与管道符号一起使用,以使用正则表达式来筛选输出。except
find
match
瞻博网络使用 POSIX 1003.2 中定义的正则表达式。如果正则表达式包含空格、运算符或通配符,请用引号将表达式括起来。
操作人员 |
功能 |
---|---|
|
指示匹配可以是管道两侧的两个术语之一。 |
|
在表达式的开头用于表示匹配的开始位置。 |
|
用于表达式的末尾,表示术语必须完全匹配到 $ 字符的点。 |
|
指定要匹配的字母或数字范围。若要分隔范围的开头和结尾,请使用连字符 ()。 |
|
指定要匹配的一组术语。 |
例如,如果命令生成以下输出:
user@host> show chassis hardware
Hardware inventory:
Item Version Part number Serial number Description
Chassis F0632 MX80
Midplane REV 09 711-031594 ZW0568 MX80
PEM 0 Rev 04 740-028288 VK09886 AC Power Entry Module
Routing Engine BUILTIN BUILTIN Routing Engine
TFEB 0 BUILTIN BUILTIN Forwarding Engine Processor
QXM 0 REV 06 711-028408 ZW4288 MPC QXM
FPC 0 BUILTIN BUILTIN MPC BUILTIN
MIC 0 BUILTIN BUILTIN 4x 10GE XFP
PIC 0 BUILTIN BUILTIN 4x 10GE XFP
Xcvr 0 REV 02 740-014289 C825XU010 XFP-10G-SR
Xcvr 1 REV 03 740-014289 CB25BQ0WD XFP-10G-SR
Xcvr 2 REV 01 740-011571 C739XJ039 XFP-10G-SR
FPC 1 BUILTIN BUILTIN MPC BUILTIN
MIC 1 *** Hardware Not Supported ***
Fan Tray Fan Tray
的 管道过滤器显示以下输出:| match "FPC-1"
FPC 1 BUILTIN BUILTIN MPC BUILTIN
的 管道过滤器显示以下输出:| except "FPC 1"
Hardware inventory:
Item Version Part number Serial number Description
Chassis F0632 MX80
PEM 0 Rev 04 740-028288 VK09886 AC Power Entry Module
Routing Engine BUILTIN BUILTIN Routing Engine
TFEB 0 BUILTIN BUILTIN Forwarding Engine Processor
FPC 0 BUILTIN BUILTIN MPC BUILTIN
Fan Tray Fan Tray
示例:管道 ( | )筛选命令行界面中的函数
本主题介绍并提供 CLI 支持的管道 ( | ) 筛选器函数 的示例。Junos OS
- 配置示例及其文本差异
- XML 中的配置及其差异的示例
- 计算输出行数的示例
- 以 XML 标记格式显示的输出示例
- 显示静态配置数据的示例
- 显示临时配置数据的示例
- 以 JSON 格式显示输出的示例
- 显示应用了 YANG 翻译脚本的配置的示例
- 显示命令的 RPC 标记的示例
- 忽略与正则表达式不匹配的输出的示例
- 显示正则表达式的第一个匹配项的输出的示例
- 在最后一个屏幕之后保留输出的示例
- 显示从最后一项开始的输出的示例
- 显示与正则表达式匹配的输出的示例
- 防止输出被分页的示例
- 向其他用户发送命令输出的示例
- 解析 IP 地址的示例
- 将输出保存到文件的示例
- 将输出追加到文件的示例
- 在屏幕上显示输出和写入文件的示例
- 通过指定起始列来调整输出的示例
- 刷新命令输出的示例
配置示例及其文本差异
筛选器将候选配置与当前提交的配置或配置文件进行比较。compare
它还用文本字符显示两种配置之间的差异。
要比较配置文件,请在竖线 ( | ) 符号后输入 ,如下所示:compare
show | compare [rollback n | filename]
该变量是以前提交的配置列表的索引。rollback
n 最近保存的配置为 0。如果未指定参数,则将候选配置与活动配置文件 () 进行比较,这与与索引 0 进行比较 相同。/config/juniper.confrollback
配置文件的完整路径(或 URL)为 。filename
比较输出使用以下约定:
-
仅候选配置中的语句以加号 (+) 为前缀。
-
仅在比较文件中的语句以减号 (–) 为前缀。
-
未更改的语句以单个空格 ( ) 为前缀。
示例:
user@host> show configuration system | compare rollback 9
[edit system]
+ host-name device;
+ backup-router 192.168.71.254;
- ports {
- console log-out-on-disconnect;
- }
[edit system name-server]
+ 172.17.28.11;
172.17.28.101 { ... }
[edit system name-server]
172.17.28.101 { ... }
+ 172.17.28.100;
+ 172.17.28.10;
[edit system]
- scripts {
- commit {
- allow-transients;
- }
- }
+ services {
+ ftp;
+ rlogin;
+ rsh;
+ telnet;
+ }
我们增强了命令的 输出,以更准确地反映配置更改。show | compare
此增强功能包括更智能地处理列表中的订单更改。例如,考虑按如下方式重新排序的组名:
groups { groups { group_xmp; group_xmp; group_cmp; group_grp: group_grp; group_cmp; } }
在早期版本中,命令 的输出如下所示:show | compare
[edit groups] - group_xmp; - group_cmp; - group_grp; + group_xmp; + group_grp; + group_cmp;
现在,命令 的输出如下所示:show | compare
[edit groups] group_xmp {...} ! group_grp {...}
XML 中的配置及其差异的示例
筛选器将 候选配置与当前提交的配置进行比较,并以 XML 格式显示两种配置之间的差异。compare | display xml
要比较配置,请在操作模式或配置模式下在竖线 (|) 符号后输入 。compare | display xml
操作模式下的示例:
user@host> show configuration | compare | display xml
配置模式下的示例:
[edit]
user@host# show | compare | display xml
您可以在使用 命令之前输入特定的配置层次结构。| compare
在配置模式下,您可以导航到应用命令的层次结构。
计算输出行数的示例
要计算命令输出中的行数,请在管道符号 ( | ) 后输入 。count
例如:
user@host> show configuration | count
Count: 269 lines
以 XML 标记格式显示的输出示例
要以 XML 标记格式显示命令输出,请在竖线符号 ( | ) 后输入 。display xml
以下示例将 命令输出显示为 XML 标记:show cli directory
user@host> show cli directory | display xml
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/7.5I0/junos">
<cli>
<working-directory>/var/home/user</working-directory>
</cli>
<cli>
<banner></banner>
</cli>
</rpc-reply>
如果配置数据或命令输出包含 7 位 ASCII 字符集之外的字符,CLI 将在 XML 输出中为这些字符显示等效的 UTF-8 十进制字符引用。
显示静态配置数据的示例
您可以查看继承的配置数据和有关从中继承配置的源组的信息,相对于静态配置数据库而言。要查看此数据,请发出 命令。show configuration | display inheritance
user@host> show configuration | display inheritance
## Last commit: 2018-03-29 15:54:17 PDT
version 16.2R2;
system {
...
}
显示临时配置数据的示例
瞻博网络扩展工具包 (JET) 应用程序、网络配置协议 (NETCONF) 和 Junos XML 协议客户端应用程序可以配置临时配置数据库。临时数据库是一种备用配置数据库,它提供用于执行配置更新的快速编程接口。
要查看与临时数据库所有实例中的配置数据合并的完整继承后配置,请使用 命令。show ephemeral-configuration merge
user@host> show ephemeral-configuration merge
## Last changed: 2019-02-01 09:47:20 PST
version 18.2R1;
system {
...
}
以 JSON 格式显示输出的示例
您可以通过在管道符号 (|) 后输入 ,以 JavaScript 对象表示法 (JSON) 格式显示配置或命令输出。display json
以下示例以 JSON 格式显示 命令输出:show cli directory
user@host> show cli directory | display json
{
"cli" : [
{
"working-directory" : [
{
"data" : "/var/home/username"
}
]
}
]
}
如果操作命令输出包含 7 位 ASCII 字符集之外的字符,CLI 将在 JSON 输出中为这些字符显示等效的 UTF-8 十进制字符引用。
显示应用了 YANG 翻译脚本的配置的示例
您可以将 YANG 模块加载到正在运行的设备上,以使用本机不支持的数据模型扩充配置层次结构。 确实支持这些模型的转换。 Junos OSJunos OSJunos OS活动配置和候选配置采用该模型定义的语法包含非本机 YANG 数据模型的配置数据。这些配置不会显式显示相应的已转换 语法,该语法作为瞬时更改提交。Junos OS
筛选器显示完整的继承后配置,输出中显式包含所有已启用翻译脚本的已转换配置数据。| display translation-scripts
要显示应用了所有已启用 YANG 转换脚本的配置,请将过滤器附加到操作模式下的命令或配置模式下的命令。| display translation-scripts
show configuration
show
例如:
user@host> show configuration | display translation-scripts
要在转换后仅查看非本机配置数据,请在操作模式或配置模式下使用 筛选器。| display translation-scripts translated-config
user@host> show configuration | display translation-scripts translated-config
在配置模式下,您可以只显示应用翻译脚本之前或之后与非本机 YANG 数据模型对应的层次结构中的配置差异。要显示这些差异,请分别将 or 关键字追加到命令中。configured-delta
translated-delta
show | display translation-scripts
在这两种情况下,XML 输出都显示已删除的配置数据,后跟新的配置数据。
user@host# show | display-translation-scripts (configured-delta | translated-delta)
以下示例显示应用和未应用翻译脚本的示例配置。该 命令将显示配置,其中包括 YANG 数据模型定义的语法中的非本机配置数据。show
筛选器以 YANG 数据模型定义的语法和转换后的 语法显示非本机配置数据。| display translation-scripts
Junos OS 这两个命令都显示整个配置,为简洁起见,此示例已将其截断。但是,该 命令返回固有之前的配置,而 命令返回继承后的配置。show
show | display translation-scripts
user@host# show
...
myint:intconfig {
interfaces {
interface ge-0/0/0 {
config {
description test;
}
}
}
}
...
user@host# show | display translation-scripts
...
interfaces {
ge-0/0/0 {
description test;
gigether-options {
no-flow-control;
}
}
}
...
myint:intconfig {
interfaces {
interface ge-0/0/0 {
config {
description test;
}
}
}
}
...
显示命令的 RPC 标记的示例
若要显示 操作模式命令的远程过程调用 (RPC) XML 标记,请在竖线符号 (|) 后输入 。display xml rpc
以下示例显示命令的 RPC 标记:show route
user@host> show route | display xml rpc
<rpc-reply xmlns:junos="http://xml.juniper.net/junos/10.1I0/junos">
<rpc>
<get-route-information>
</get-route-information>
</rpc>
<cli>
<banner></banner>
</cli>
</rpc-reply>
忽略与正则表达式不匹配的输出的示例
要忽略与正则表达式匹配的文本,请在竖线符号 ( | ) 后指定 命令。except
如果正则表达式包含任何空格、运算符或通配符,请用引号将其括起来。
以下示例显示已登录到路由器的所有用户(用户 除外):root
user@host> show system users | except root
8:28PM up 1 day, 13:59, 2 users, load averages: 0.01, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE WHAT
user p0 device1.example.com 7:25PM - cli
显示正则表达式的第一个匹配项的输出的示例
要显示从与正则表达式匹配的文本的第一次出现开始的输出,请在竖线符号 ( | ) 后输入 。find
如果正则表达式包含任何空格、运算符或通配符,请用引号将其括起来。
以下示例显示路由表中从 IP 地址 开始的路由:208.197.169.0
user@host> show route | find 208.197.169.0
208.197.169.0/24 *[Static/5] 1d 13:22:11
> to 192.168.4.254 via so-3/0/0.0
224.0.0.5/32 *[OSPF/10] 1d 13:22:12, metric 1
iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
47.0005.80ff.f800.0000.0108.0001.1921.6800.4015.00/160
*[Direct/0] 1d 13:22:12
> via lo0.0
以下示例显示转发表中的第一个 CCC 条目:
user@host> show route forwarding-table | find ccc
Routing table: ccc
MPLS:
Interface.Label Type RtRef Nexthop Type Index NhRef Netif
default perm 0 rjct 3 1
0 user 0 recv 5 2
1 user 0 recv 5 2
32769 user 0 ucst 45 1 fe-0/0/0.534
fe-0/0/0. (CCC) user 0 indr 44 2
10.0.16.2 Push 32768, Push
在最后一个屏幕之后保留输出的示例
您可以保留输出并滚动或搜索它,方法是在查看最后一个输出屏幕后按住而不是立即返回到 CLI 提示符。要保留输出,请在管道符号 ( | ) 后输入 。hold
以下示例可防止在查看命令输出 的最后一个屏幕后返回到 CLI 提示符:show
log log-file-1
user@host> show log log-file-1 | hold
显示从最后一项开始的输出的示例
您可以查看日志文件,其中文件末尾包含最新条目。要显示从输出末尾开始的文本,请在竖线符号 ( | ) 后输入 。last <
lines
>
下面的示例显示文件中的最后一个条目: log-file-1
user@host> show log log-file-1 | last
当请求的行数小于屏幕长度设置允许您显示的行数时,系统将返回子集。系统返回屏幕长度设置允许的行数。也就是说,如果您的屏幕长度设置为 20 行,并且您只请求了最后 10 行,则系统将返回最后 19 行而不是最后 10 行。
显示与正则表达式匹配的输出的示例
要显示与正则表达式匹配的输出,请在竖线符号 (|) 后输入 。match
regular-expression
如果正则表达式包含任何空格、运算符或通配符,请用引号将其括起来。
以下示例匹配配置中的所有异步传输模式 (ATM) 接口:
user@host> show configuration | match at-
at-2/1/0 {
at-2/1/1 {
at-2/2/0 {
at-5/2/0 {
at-5/3/0 {
防止输出被分页的示例
默认情况下,如果输出长于终端屏幕的长度,您将收到一条 消息以显示剩余输出。---(more)---
要显示剩余的输出,请按空格键。
要防止输出被分页,请在管道符号 ( | ) 后输入 。no-more
以下示例一次性显示命令的所有 输出: show configuration
user@host> show configuration | no-more
如果要复制整个输出并将其粘贴到电子邮件中,此功能非常有用。
向其他用户发送命令输出的示例
要在登录到路由器的特定用户的终端上或在登录到路由器的所有用户的终端上显示命令输出,请在管道符号 ( | ) 后输入 。request
message (all | user
account
@
terminal
)
如果您正在对路由器进行故障排除并通过电话与客户服务代表交谈,则可以共享命令输出。您可以使用命令向 代表发送您当前在终端上查看的命令输出。request message
以下示例将您在终端上输入的命令的 输出发送到用户的 终端:show interfaces
root@ttyp1
user@host> show interfaces | request message user root@ttyp1
用户 会看到终端屏幕上出现以下输出:root@ttyp1
Message from user@host on /dev/ttyp0 at 10:32 PST... Physical interface: dsc, Enabled, Physical link is Up Interface index: 5, SNMP ifIndex: 5 Type: Software-Pseudo, MTU: Unlimited...
解析 IP 地址的示例
仅在操作模式下,如果命令输出显示未解析的 IP 地址,则可以在命令后输入 以显示与该 IP 地址关联的名称。| resolve
过滤器 使系统能够对 IP 地址执行反向 DNS 查找。resolve
如果未启用 DNS,则查找将失败,并且不会执行替换。
要对未解析的 IP 地址执行反向 DNS 查找,请在管道符号 ( | ) 后输入 。resolve <full-names>
如果未指定该 选项,则名称将被截断,以适应适用于 IP 地址的任何字段宽度限制。full-names
以下示例对命令输出 中的任何未解析 IP 地址执行 DNS 查找:show ospf neighbors
user@host> show ospf neighbors | resolve
将输出保存到文件的示例
当命令输出较长时、需要存储或分析输出时,或者需要通过电子邮件或 FTP 发送输出时,可以将输出保存到文件中。默认情况下,文件放置在路由器的主目录中。
要将命令输出保存到文件,请在竖线符号 ( | ) 后输入 。save
filename
下面的示例将命令的 输出保存到名为 request support information
my-support-info.txt:
user@host> request support information | save my-support-info.txt
Wrote 1143 lines of output to ‘my-support-info.txt’
将输出追加到文件的示例
显示命令输出时,可以将输出保存到文件以覆盖该文件的现有内容,也可以将输出文本追加到特定文件。
要将命令输出追加到文件中,请在竖线符号 (|) 后输入 。append filename
下面的示例将命令的 输出追加到名为 request support information
my-support-info.txt:
user@host> request support information | append my-support-info.txt
Wrote 2247 lines of output to 'my-support-info.txt'
在屏幕上显示输出和写入文件的示例
显示命令输出时,还可以将输出写入文件。要同时显示输出并将其写入文件,请在管道符号 (|) 后输入 。tee filename
以下示例显示命令的 输出(显示有关设备上千兆以太网接口状态的信息),并将输出转移到名为 的文件:show interfaces ge-* terse
ge-interfaces.txt
user@host> show interfaces ge-* terse | tee ge-interfaces.txt
Interface Admin Link Proto Local Remote
ge-0/1/0 up down
ge-0/1/1 up up
ge-0/1/2 up down
ge-0/1/3 up up
与 UNIX 命令不同,如果无法打开文件,则仅显示错误消息(而不是显示输出,然后显示错误消息)。tee
user@host> show interfaces ge-* terse | tee /home/user/test.txt
error: tee failed: file /home/user/test.txt could not be opened
user@host>
通过指定起始列来调整输出的示例
输出以行和列的形式显示在终端屏幕上。从屏幕左侧开始的第一个字母数字字符位于第 1 列中,第二个字符位于第 2 列中,依此类推。要显示从特定列开始的输出(从而修剪输出的最左侧部分),请在管道符号 (|) 后输入 。trim columns
筛选器 可用于从系统日志消息的开头修剪日期和时间。trim
下面的示例显示命令的 输出,筛选出前 10 列:show system storage
user@host> show system storage | trim 11
该 命令不接受负值。trim
刷新命令输出的示例
您可以使用管道选项运行操作模式命令 ,以定期刷新屏幕上显示的输出。| refresh
默认刷新每秒发生一次。但是,您也可以显式指定从 1 到 604,800 秒的刷新间隔。例如,若要每 5 秒刷新一次命令的 输出,请运行以下命令:show interfaces
user@host> show interfaces | refresh 5
过滤 QFabric 系统中的操作模式命令输出
在 QFabric 系统中发出操作模式命令时,由于系统中包含的组件数量众多,生成的输出可能会相当广泛。若要使输出更易于访问,可以通过将选项附加到 大多数命令的末尾来筛选输出。| filter
变更历史表
是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。
show ephemeral-configuration | display merge
从 Junos OS 18.2R1 版开始,该 选项将被弃用。display merge
set system export-format state-data json compact
此命令将 XML 格式转换为紧凑的 JSON 格式。否则,它会以非紧凑格式发出 JSON。show | compare | display xml
<configuration>
show | compare | display xml
<configuration>
display json
show | compare
这包括更智能地处理列表中的订单更改。