ios linux命令行,在CIOSCO IOS里执行Linux Shell命令

本文介绍了如何在Cisco IOS中使用Linux命令来提高工作效率,包括过滤接口列表、显示特定状态的接口、查看路由器信息等。通过shell命令,可以进行更复杂的过滤操作,如忽略大小写、显示特定行,甚至通过管道将内存配置写入文件。这些技巧适用于网络管理和面试场景,能有效提升网络工程师的工作效率。
摘要由CSDN通过智能技术生成

这是很多业内人士都不知道的隐藏技巧。

这些在IOS中运行的Linux命令可以提高你的工作效率,也可用于耍酷或面试等环节,让对方感到惊奇!这些命令已经在CISCO设备上存在很长时间了,根据测试,1900这样的老设备也支持。CISCO于2001年3月25日发布的一份文档说明了从IOS v15.1M版本开始支持Cisoc IOS Shell的相关细节:

https://www.cisco.com/c/en/us/td/docs/ios/netmgmt/configuration/guide/Convert/IOS_Shell/nm_ios_shell.html

a21b3d4c74a2

01.png

因为高版本的IOS(比如IOS XE)是基于Linux创建的,是Linux的一个进程,所以支持Shell命令。

本文以VIRL的vIOS为例。

打入命令 show ip int b之后列出所有接口,可见有一大堆环回口,暂停在“--More--”等待用户按任意键继续显示:

a21b3d4c74a2

01.png

此时输入正斜杠后跟关键字可以过滤之下的列表,比如从中找出地址为172.16.109.1的接口,会显示该接口及其之下的所有列表:

a21b3d4c74a2

01.png

在配置模式里打入命令:

shell processing full

这就启动了完整的shell进程,现在我想显示UP状态的、除了172开头和192开头之外的所有接口,所以使用了3层过滤,include就做不到这点:

show ip int b | grep up | grep -v 172 | grep -v 192

a21b3d4c74a2

01.png

如果不想显示环回口,那很简单:

show ip int b | grep up | grep -v 172 | grep -v 192 | grep -v Loop

a21b3d4c74a2

01.png

再比如显示所有UP同时又配置了地址的端口(排除掉UP却未配置地址的接口),可以这样打:

show ip int b | grep up | grep -v un

显示出内存中所有包含172.16.10的字符串:

show run | grep 172.16.10

a21b3d4c74a2

01.png

显示出包含1.1,却排除环回口的字符串(相当于同时使用include和exclude,传统上做不到这点):

show run | grep 1.1 | grep -v Loop

a21b3d4c74a2

01.png

uname -a 显示路由器的相关信息,uname -s、-v、-r 显示路由器的版本号,这在脚本中很有用,uname -n,显示路由器名字:

a21b3d4c74a2

01.png

如果想要知道shell的更多功能,打入帮助:

show shell functions

可见shell提供了大量的Linux命令,这可以大大提高我们的工作效率,比如head,tail等等:

a21b3d4c74a2

01.png

通过管道,把内存中的配置写入flash:

sh run > shrun.cfg

a21b3d4c74a2

01.png

more shrun.cfg显示文件(cat也可以,q退出):

a21b3d4c74a2

01.png

高级应用

上文所述的用法是打入命令shell processing full,其实也可以仅针对当前终端使用shell,以IOS XE为例,先关闭shell功能:

no shell processing full

再打入terminal shell:

a21b3d4c74a2

01.png

现在该终端支持shell命令了。

如果退出终端,shell将被停止,这种仅对当前终端启用shell的方法可以减轻全局支持对设备造成的资源压力。

忽略字符串的大小写,本例是Face和face通用,这可以大大提高字符串的查找效率:

show run | grep -i Face

a21b3d4c74a2

01.png

当然可以用man查看各种命令的用法:

a21b3d4c74a2

01.png

传统上,我们可以这样加行号显示内容:show run linenum:

a21b3d4c74a2

01.png

但如果你这样写则不起作用:

show ip route linenum

因为linenum不能和show ip route配配合使用;但这样输入就支持带行号显示路由表了:

show ip route | nl |more

a21b3d4c74a2

01.png

只看第带70字样的行:show ip route | nl | grep 70

只看第70行(正则表达式):show ip route | nl | grep ^70

这可以将大型路由表缩减到特定行。

按字母顺序输出:

show ip int b |sort

show run | sort | more

再比如,看有哪些vlan:

show run | grep vlan

我已经例举了一些,剩下的就是举一反三,看你的想象力了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值