首先说一下路由器命令输出过滤的语法:任意show命令+管道符|+过滤器
这里的过滤器包括以下三种:
include和exclude:显示包含或者不包含特定正则表达式的行
begin:从符合特定正则表达式的行开始显示
section:仅显示特定符合正则表达式的section(所谓的section就是从一个非空格打头的行开始,直到下一个非空格打头的行之前结束,常用的是路由协议配置命令部分)
对于more命令的输出仅支持include,exclude和begin,其他的命令都不支持命令输出的过滤,这点和UNIX的针对任意命令都可以使用管道符是不同的,同时也不能像UNIX那样可以对过滤进行级联。
下面先以一个简单的例子来介绍一下输出的过滤。
show interface命令可以给我们很多信息的输出,比如:
R1#show interfaces
FastEthernet0/0 is up, line protocol is upHardware is DEC21140, address is ca00.0f08.0000 (bia ca00.0f08.0000)Internet address is 137.1.1.1/27MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,reliability 255/255, txload 1/255, rxload 1/255Encapsulation ARPA, loopback not setKeepalive set (10 sec)Half-duplex, 100Mb/s, 100BaseTX/FXARP type: ARPA, ARP Timeout 04:00:00Last input never, output 00:00:09, output hang neverLast clearing of "show interface" counters neverInput queue: 0/75/0/0 (size/max/drops/flushes); Total output drops: 0Queueing strategy: fifoOutput queue :0/40 (size/max)5 minute input rate 0 bits/sec, 0 packets/sec5 minute output rate 0 bits/sec, 0 packets/sec
.....
其实我们可能仅仅关注某部分的信息,比如通常会关心所有的端口是不是工作在全双工的模式下,也就是Half-duplex, 100Mb/s, 100BaseTX/FX这部分的内容,那么我们加个过滤条件看一下:
R1#show interfaces | include duplexHalf-duplex, 100Mb/s, 100BaseTX/FXHalf-duplex, 100Mb/s, 100BaseTX/FX
这样简洁多了吧,可是不够完美,发现了半双工,但是不知道是哪个端口怎么办,我们在扩展下这个输出过滤:
R1#show interfaces | include duplex|Ethernet
FastEthernet0/0 is up, line protocol is upHalf-duplex, 100Mb/s, 100BaseTX/FX
FastEthernet3/0 is administratively down, line protocol is downHalf-duplex, 100Mb/s, 100BaseTX/FX
恩,这下比较完美了。这里出现了两个管道符|,后面这个|不是对前面结果的再过滤,而是正则里面or的功能。
每次输入这么多是不是不爽,那就定义一个别名来简化吧:
R1#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R1(config)#alias exec duplex show interfaces | include duplex
R1(config)#end
R1#duplexHalf-duplex, 100Mb/s, 100BaseTX/FXHalf-duplex, 100Mb/s, 100BaseTX/FX然后再看一个section的例子,有时我们会只关注路由器上关于路由协议的配置,一般都会用下面的命令show run | begin router
这样显示的不但包含路由配置还会有以后更多的配置,这时候就可以使用section过滤(注意不是所有的IOS版本都支持section)
router1#show run | section router
hostname router1
router ospf 100
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
唉,还是不够完美,把配置路由器名字的命令也显示出来了,只好再修改一下了:
router1#sh run | section ^router
router ospf 100
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
这下就比较完美了。^router 就是代表以router打头的行了,这样就把hostname router1给排出再外了。最后再来一个比较复杂点的输出过滤。在OSPF中show ip ospf neighbor不能够显示出邻居的area,只能通过show ip ospf neighbor detail命令,
Neoshi#show ip ospf neighbor detail
Neighbor 172.16.0.21, interface address 172.16.1.2In the area 0 via interface Serial0/0/0.100Neighbor priority is 0, State is FULL, 6 state changesDR is 0.0.0.0 BDR is 0.0.0.0Options is 0x52LLS Options is 0x1 (LR)Dead timer due in 00:00:37Neighbor is up for 00:39:02Index 1/1, retransmission queue length 0, number of retransmission 1First 0x0(0)/0x0(0) Next 0x0(0)/0x0(0)Last retransmission scan length is 1, maximum is 1Last retransmission scan time is 0 msec, maximum is 0 msec
输出信息很多,而实际上最有用的就是前三行的输出。
Neoshi#show ip ospf neighbor detail | include (Neighbor.*(interface|priority))|area
Neighbor 172.16.0.21, interface address 172.16.1.2In the area 0 via interface Serial0/0/0.100Neighbor priority is 0, State is FULL, 6 state changes
Neighbor 172.16.0.12, interface address 10.0.0.6In the area 0 via interface FastEthernet0/0Neighbor priority is 1, State is FULL, 6 state changes
这个正则稍微复杂点,不过输出还是达到了预定目标。上面只是对命令输出过滤的一些总结,除了过滤器的选择外最重要的就是正则表达式的编写了,关于正则有专门的书我就不多说了。其实更进一步还可以对输出进行重新的排版,从而使输出变的更简洁,更有效,不过这就要用到TCL脚本。下面是一个学别人配置的别名为ipconfig的脚本输出示例,有兴趣的大家可以研究一下。
R1#ifconfig
Interface         IP Address      Mask            MTU  State
=================================================================
FastEthernet0/0   172.18.25.1     255.255.255.0   1500 up
FastEthernet0/1   no address                           admin down
Serial0/0/0       no address                           up
Serial0/0/0.101   192.168.201.2   255.255.255.252 1500 up
Serial0/1/0       no address                           up/down

cisco中的管道符号(include begin section)相关推荐

  1. 思科服务器查看生成树协议,CISCO中生成树协议的配置

    <CISCO中生成树协议的配置>由会员分享,可在线阅读,更多相关<CISCO中生成树协议的配置(7页珍藏版)>请在人人文库网上搜索. 1.实验一生成树( STP)一.实验目的1 ...

  2. vs2019 MFC 中 cannot open include file 'afxres.h' 问题解决方法

    vs2019 MFC 中 cannot open include file 'afxres.h' 问题解决方法 使用Everything查找afxres.h文件,如果没有everything的,可以到 ...

  3. cisco中login 和login local区别的简单介绍

    cisco中login和login的简单区别 login和login local均为登录但login只需要远程登录密码而login  local需要建立本地数据库,在建立数据库后才可以调用 在配置远程 ...

  4. cisco中的igrp笔记

    Igrp 内部网关路由协议 IGRP (Interior Gateway Routing Protocol)是一种动态距离向量路由协议,它由Cisco公司八十年代中期设计.使用组合用户配置尺度,包括延 ...

  5. JSP中两种include的区别

    jsp中有两种include,一种是<%@include file="xxx.jsp"%>,另一种是<jsp:include page="xxx.jsp ...

  6. [转] iOS中@class #import #include 简介

    [转载自:http://blog.csdn.net/chengwuli125/article/details/9705315] 一.解析        很多刚开始学习iOS开发的同学可能在看别人的代码 ...

  7. html语言 section type,HTML5中div、article、section的区别及使用介绍

    最近正在学习html5,刚接触html5,感觉有点不适应,因为有一些标签改变了,特别是div, section article这三个标签,查了一些资料,也试着用html5和css3布局网页,稍微有点头 ...

  8. uml里的extend和include_用例图中包含(include)扩展(extend)和泛化(generalization)关系详解...

    标签:uml 用例图是解决用户需求的图,画好用例图一定要理清用例之间的关系.用例之间有三种关系:包含(include)扩展(extend)和泛化(generalization).下面介绍三者的相同点和 ...

  9. Visio中添加《include》包含符号

    用Visio画用例图时,发现Visio UML用例里面找不到include关系,即"箭头"+"<<include>>" 这个组件, 发现 ...

最新文章

  1. Altium Designer铺铜时抠铜
  2. 【倍增】7.11fusion
  3. python学习day04
  4. 为啥大街上全是跑外卖的年轻人?
  5. Echars 如何描绘世界地图
  6. 集合竞价如何买入_教你几招!什么是集合竞价?散户如何参与集合竞价?
  7. 一键root大师 android,一键Root大师
  8. java学习(方法)
  9. 计算机软考证书含金量和性价比分析
  10. teamlab什么意思_去看炸火的teamLab大型个展前 你应该知道的事
  11. 基于Docker-compose搭建Redis高可用集群-哨兵模式(Redis-Sentinel)
  12. 为什么你和同事关系处不好?
  13. java实现MD5加密和解密
  14. 在linux中启动mysql,在linux中启动mysql服务的命令
  15. 前端性能优化 - 使用内容分发网络CDN
  16. 跨设备设计基础 | 如何确定任意屏幕的分辨率指标
  17. 【会议记录】基于CPU性能调优的必要性和方法介绍
  18. 安卓pkg解包工具_这个曾改变安卓的男人,要对苹果下手了?
  19. 聊天应用Kik计划为其ICO向SEC提出抗议
  20. Android 壁纸应用之动态壁纸

热门文章

  1. JavaScript 中文转汉字
  2. 从硬件工程师转到纯软件开发,回顾那些岁月
  3. c语言 讲小写字母转换成大写
  4. Wifi BT 地址格式
  5. 拟物风格的小程序附源码
  6. 物流批量查询,在电脑上查询最简单的方法推荐
  7. MATLAB中./和/ .*和* 有什么区别
  8. 微信小程序培训笔记1
  9. 【愚公系列】2022年01月 MinIO文件存储服务器-对象操作(Python版)
  10. CTSC2014 被虐总结