查看原文
其他

每天在你办公电脑上敲上这种经典shell脚本,鸡腿加不断!

脚本之家 2022-09-23

The following article is from 浩道linux Author 点击关注👉👉

 关注
“脚本之家
”,与百万开发者在一起

来源 | 浩道linux(ID:hao_tiyu)
如若转载请联系原公众号

前言

不少读者反馈,平时忙于工作,没有时间进行学习,导致所学知识过一段时间就会忘记了。其实要我说,学习是无处不在的,并且我们也应注重学有所用,不能盲目的学习,我们应该将我们所学用到实际工作中,在工作中去学习。这样就做到了学习工作两不误了!

今天给大家分享一个,我日常工作中常做的事,那就是当自己手上工作停下来的时候,经常自己练习敲打的shell脚本,毕竟要充分利用自己的办公系统,好好学习。这样不知不觉自己的shell编程能力就提升了。我想这样同样适合在看这篇文章的各位,学好这一点,你每一天都会加鸡腿的!



可以加鸡腿的shell脚本

通过用shell脚本查看linux系统网络接口的ip地址mac地址网络速率等网口信息。

本题主要利用linux三剑客之一的awk命令去层层讲解,会结合过滤筛选等命令,去实现题目要求。



1、初始庐山面目---ifconfig命令查看当前我系统的网卡信息如下:


2、过滤出状态为UP的网络接口,命令如下所示:

ip addr |awk -F ":" '/state UP/ {print $2}'

执行结果如下图所示:


3、过滤出对应各网卡的IP地址信息,命令如下:

ip -o addr |awk '/inet/{print $2,$4}'

执行结果如下图所示:


4、查看所有网卡的mac地址实现脚本如下:

#!/usr/bin/bash
ip addr |awk '/state UP/{print $2}' | sed 's/://' | while read outputdo echo $output: ethtool -P $outputdone

执行结果如下图所示:


可以只查看特定网卡的mac地址,如查看ens160网卡对应的mac地址,实现脚本如下:

ip link show ens160 | awk '/link/{print $2}'

执行结果如下图所示:


5、查看所有网卡的速率,实现脚本如下所示:

#!/usr/bin/bash
ip addr |awk '/state UP/{print $2}' | sed 's/://' | while read outputdo echo $output: ethtool $output |grep "Speed:"done

执行结果如下图所示:


可以只查看特定网卡的速率,如查看ens160网卡对应的速率,实现脚本如下:

ethtool ens160 |grep "Speed:"


执行结果如下图所示:


6、针对以上的功能分解,最后可以将个分解的脚本合成一个脚本,将以上功能全部由一个脚本实现实现脚本如下:

#!/usr/bin/bash
hostnameecho "*****************************************"
for iname in $(ip addr |awk '/state UP/{print $2}')doecho "$iname"ip addr show $iname | grep inet | awk '{printf "%s:\t%s\n",$1,$2}'ip link show $iname | grep link | awk '{printf "MAC:\t%s\n",$2}'ethtool ens160 | awk '/Speed/{printf "%s\t%s\n",$1,$2}'done


执行结果如下图所示:


结语

其实,学习无处不在,工作中,只要我们敢想敢写,就可以找到学习路径提升自我。本文所列举的脚本实例既是可以提升自己的技能,又是一道经典的面试题,希望能够给大家带来学习动力,奥利给,鸡腿走起!


  推荐阅读:

卧槽!9000G??

如何隐藏shell脚本内容

shell逐行处理文本求和,我人傻了...

超硬核!11 个非常实用的 Python 和 Shell 拿来就用脚本实例!

7 个非常实用的 Shell 拿来就用脚本实例!

每日打卡赢积分兑换书籍入口

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存