使用一个简单的for循环和if判断语句实现某个网段内所有ping所有客户机的shell程序:

for i in {..}
do
if ping -c 192.168.10.${i} >/dev/null >&;
then
echo " ${i}通"
else
echo "${i}未通 "
fi
done

在这里i是一个循环变量,一共循环254次,${i}相当于192.168.10.0这个网段中从1~254的主机号。

for循环开始然后进行if判断:

判断 ping 192.168.10.xxx这个网段中的所有主机号中如果是标准输出就 ">"(重定向到)/dev/null这个文件中

then 如果是标准输出 那么就显示 ${i}(这个主机)通

"2>&1"  表示错误输出同样重定向到/dev/null文件下

else 如果是错误输出 那么就显示${i}(这个主机)不通

在这段程序中 ping -c 1 表示每个主机只ping一次。

这段程序中主要的点就是  ”192.168.10.${i} >/dev/null 2>&1“

首先要明白 dev下的null文件有什么用。这个null文件相当于windows下的回收站,但是在这个null中的东西是无法恢复的。

在这里ping 每个客户机时如果有返回值也就是ping通了,那么就属于一个标准输出这个标准输出就把他丢到 /dev/null中 如果不这样做你ping的返回数据会占用系统的某个空间。 在这里所有标准输出都会是1 而 2就表示错误输出 ,&符号表示等同于   “2>&1” 这里就表示 错误输出 等同于 标准输出(不代表 错误输出 等于 标准输出) 这样才能将错误输出也放到/dev/null中。

通过这样一个for循环加if判断就能实现ping所有主机号并返回一个 通 或者 没通 的信息。

linux菜鸟日记(4)的更多相关文章

  1. linux菜鸟日记(5)

    iptables详细语法及配置: SNAT:源地址转换DNAT:目标地址转换PNAT:端口地址转换 ----------------------------------iptables规则链 路由以后 ...

  2. linux菜鸟日记(3)

    Centos7利用shell编辑一串 一键完成一些基础配置的代码: 在这串shell代码中我实现了  IP地址的配置.光盘的挂载.本地yum源的搭建.一些服务的安装例如 httpd. php. ntp ...

  3. linux菜鸟日记(2)

    ntp服务的安装与配置: 安装ntp服务的过程比较简单首先你需要挂载光盘然后安装ntp服务如果配置了本地yum源可以直接使用光盘中的资源进行本地yum的安装,如果没有就使用rpm包进行安装. 由于我已 ...

  4. linux菜鸟日记

    本地yum源的安装: 要安装本地yum源,首先需要熟悉本地yum文件的配置和光盘的挂载 第一步挂载光盘: 首先需要指定一个光盘挂载目录 通常情况下我习惯使用默认挂载目录,所以一般我使用的光盘挂载命令是 ...

  5. Linux学习日记-使用EF6 Code First(四)

    一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是  请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...

  6. Linux管理日记(二)

    14  启动内网端口转发 ### 2. 查看IP以及网卡信息 # 可以发现, eth0 的地址 inet addr:10.144.7.195, 此为内网网卡 # 公网网卡, eth1 的地址 inet ...

  7. Linux菜鸟成长日记 ( Linux 下的 ftp 文件传输协议 )

    https://blog.csdn.net/buster_zr/article/details/80244542 FTP FTP 是 File Transfer Protocol (文件传输协议)的英 ...

  8. Linux 学习日记 1

    这是我第一次系统地学习Linux,希望通过这个学习日记收获一些东西把-- @_@ Grub - 启动管理器   在启动时让用户选择要启动的系统.(但是windows比较霸道--重装windows后会将 ...

  9. Linux学习日记——源码编译Apache

    [本文为笔者在学习Linux 下的软件安装时,尝试使用源码安装Apache 的过程,事后进行一个小小的总结,发现错误望指正.] 一.典型的源码编译安装软件的过程包括以下3步: 1) 运行 config ...

随机推荐

  1. JavaScript的==和===运算符

    JavaScript提供两个相等运算符:==和 ===.      简单说,它们的区别是相等运算符( ==)比较两个值是否相等,严格相等运算符( ===)比较它们是否为“同一个值”.如果两个值不是同一 ...

  2. 如何利用谷歌浏览器快速的通过方法名来确定多个js文件中的某一具体文件;

  3. 连载 [ LTS + Top ]

    +---[ LTS List ]--->| 1. 每日被自己坑的debugging.. http://www.cnblogs.com/tmzbot/p/5582302.html| 2. [待添加 ...

  4. linux回退到上次访问目录

    cd / cd ..  回到上级目录 cd - 回到上次访问目录

  5. yum 保存下载包

    --- 1 --- $ sudo yum install yum-plugin-downloadonly $ sudo yum install --downloadonly --downloaddir ...

  6. 设计模式--桥接模式Bridge(结构型)

    一.概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或者多个维度的变化,如何应对这种"多维度的变化",就可以利用桥接模式. 引例: 设想如果要绘制矩形.圆形.椭圆.正方形,我 ...

  7. python 装饰器

    #!/usr/bin/env python3 #-*-encoding:utf-8-*- def w3(*args, **kwargs): ') def w1(): def ww1(func): de ...

  8. js数组的sort排序详解

    <body> <div> sort()对数组排序,不开辟新的内存,对原有数组元素进行调换 </div> <div id="showBox" ...

  9. 解决Maven项目pom.xml文件报xxx\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径。)问题

    最近自己在公司项目修改一些代码以后,出现如题的错误,后来各种Google等,最终找到了解决办法. 错误环境:Tomcat7 + Eclipse + Maven + Spring + SpringMvc ...

  10. Git 小技巧

    分享git的几个小技巧,后面会根据使用补充.目前包括git撤销本地修改.git回退到前n个版本.git多用户提交冲突解决.git 命令简化.欢迎大家补充^_* 1.git撤销本地修改 git rese ...