在windows中,我们可以在360等管家软件中显示网速,在linux下想要查看实时的网速怎么办呢?当然在linux下也有很多优秀的软件可以实时显示网络状况!但是在这里我们使用shell脚本来先完成网络上传与下载流量的实时显示:

  思路:  

    在执行ifconfig查看网卡信息的时候,可以看到以下内容:

$ ifconfig  wlp2s0
wlp2s0: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.0.101 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::a67b:d8cd:4fab:56bb prefixlen scopeid 0x20<link>
ether b8:ee::1f:a0:d7 txqueuelen (以太网)
RX packets bytes (211.8 MB)
RX errors dropped overruns frame
TX packets bytes (13.8 MB)
TX errors dropped overruns carrier collisions

    这里有一些字段,字段详细的内容可以百度搜索。在这里我们用到RX与TX字段里的bytes值。

    RX:接收的

    TX:上传的

版本一:

#!/bin/bash
# version 1  2017-08-14 while true
do
#记录初始bytes数目
down_speed_old=`ifconfig wlp2s0 | sed -n 's/RX.*bytes \([0-9]\+\).*/\1/p'`
up_speed_old=`ifconfig wlp2s0 | sed -n 's/TX.*bytes \([0-9]\+\).*/\1/p'` sleep #保存最新的bytes数目
down_speed_now=`ifconfig wlp2s0 | sed -n 's/RX.*bytes \([0-9]\+\).*/\1/p'`
up_speed_now=`ifconfig wlp2s0 | sed -n 's/TX.*bytes \([0-9]\+\).*/\1/p'` #计算下行与上行的网速
down_speed=`echo "($down_speed_now-$down_speed_old)/1024"|bc`
up_speed=`echo "($up_speed_now-$up_speed_old)/1024"|bc` echo -e "speed : \n\tDN : $[(($down_speed_now-$down_speed_old))] B/s \t $down_speed KB/s"
echo -e "\tUP : $[(($up_speed_now-$up_speed_old))] B/s \t $up_speed KB/s"
done

  运行效果:

$ ./netspeed.sh
speed :
DN : B/s KB/s
UP : B/s KB/s
speed :
DN : B/s KB/s
UP : B/s KB/s
speed :
DN : B/s KB/s
UP : B/s KB/s
speed :
DN : B/s KB/s
UP : B/s KB/s
speed :
DN : B/s KB/s
UP : B/s KB/s
speed :
DN : B/s KB/s
UP : B/s KB/s

TODO:


版本二:

  

最新文章

  1. Maven学习笔记(1)之安装Maven
  2. android 之 Toast通知的使用
  3. php函数间的参数传递(值传递/引用传递)
  4. Android Studio导入github下载的工程
  5. ViewPager中使用PhotoView时出现pointerIndex out of range异常
  6. FFmpeg编译出错_img_convert 找不到
  7. c#中委托和事件(续)(转)
  8. 【HDOJ】1601 Galactic Import
  9. (转)server.urlencode有什么用?怎么用?
  10. PyQt5+python3的FindDialog
  11. POJ1275/ZOJ1420/HDU1529 Cashier Employment (差分约束)
  12. swift学习二:基本的语法
  13. CDH 无法查看history log
  14. 谦先生的程序员日志之我的hadoop大数据生涯一
  15. oracle12c:通过oracle客户端工具配置tns,并使用sqlldr进行批量导入数据
  16. 【Python3.6+Django2.0+Xadmin2.0系列教程之三(入门篇-下)】学生信息管理系统
  17. PMP知识点(四)——项目管理计划的内容
  18. Head First Java.(第2版)
  19. tarjan求强连通分量+缩点+割点/割桥(点双/边双)以及一些证明
  20. 03-14_WLST配置现有的Domain

热门文章

  1. qt model view 编程总结
  2. PCRE library
  3. Storm-源码分析-Topology Submit-Worker
  4. Java 内省(Introspector)深入理解
  5. Python中的高级数据结构(转)
  6. django模型:字段和选项
  7. 怎样将Arranged_2压入General_Polygon_set_2中
  8. java-mybaits-00203-DAO-mapper代理开发方法,多参数【推荐】
  9. 文字识别的google的库 tesseract
  10. POJ1088:滑雪(简单dp)