第八周作业(网络、bash脚本)

1-3,计算机网络基础博客已总结,简要补充

协议的分层

为了使那些比较复杂的网络协议更加简单化。ISO根据各通信协议的功能将网络体系分成七层。

在这个分层中,下层为上一层提供服务。上下层之间进行交互时所遵循的约定叫做“接口”。同层之间的交互所遵循的约定叫做“协议”

第八周作业(网络、bash脚本)

说的更形象一点,两个中国人打电话这个通信。就可以分为两层,同层之间的叫协议,我说汉语,你也说汉语,我跟个韩国人打电话,肯定沟通不了。电话之间也要有协议,我用我的电话打到你的吹风机上也不行吧。我跟电话之间的联系,叫做接口,就是录音、扬声器吧,将声波转化为电磁波,发送给你。

第八周作业(网络、bash脚本)

OSI参考模型

每层的功能如下:

第八周作业(网络、bash脚本)

通信过程如下:

第八周作业(网络、bash脚本)

A对B发一句“早上好”的电子邮件,内容早上好

在应用层加上应用层首部,作用是指明目标地址,发件人为用户A;

到达表示层加上表示层首部,作用将数据从主机特有的格式转化为网络标准传输格式;

到达会话层加上会话层首部,作用是选择采用哪个连接,何种方法传输数据;

到达传输层,传输层作用是保证所传输的数据到达目标地址,如果没有到达则会负责重发;

到达网络层,A到B之间有很多路要走,选择哪一条路是靠网络层

到达数据链路层,数据链路层的作用是,在这些通过传输介质互联的设备之间进行数据处理,将数据转化为0,1的形式。

到达物理层,将数据的0,1转化为电压和脉冲传给B主机的地址,这个地址被称之为MAC地址,也叫物理地址。

然后B主机拿到0,1的数据再经过层层转变,就变为B主机应用层可读的信息。

网络的构成要素

第八周作业(网络、bash脚本)

网桥/2层交换机

第八周作业(网络、bash脚本)

路由器/3层交换机

第八周作业(网络、bash脚本)

网关

第八周作业(网络、bash脚本)

4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)

修改/etc/sysconfig/network-scripts/ifcfg-eth0,添加以下内容
                                BOOTPROTO=static
                                ONBOOT=yes
                                DNS1=10.1.1.254
                                IPADDR=10.1.1.100
                                GATEWAY=10.1.1.254
                                DNS1=10.1.1.254

5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。

方法一:使用ifconfig或者ip 临时添加网络信息,并使用route命令添加默认网关

     ifconfig IF_NAME IP_ADDR network MASK

例子:ifconfig eth0:1  192.168.0.3

       route add default gw GATEWAY
例子:route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1

方法二:使用修改/etc/sysconfig/network-scripts/ifcfg-IF_NAME文件

    ifcfg-IFACE 配置文件参数:
    DEVICE:此配置文件对应的设备的名称;
    ONBOOT:在系统引导过程中,是否激活此接口;
    UUID:此设备的惟一标识;
    IPV6INIT:是否初始化 IPv6;
    BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有 dhcp、bootp、
    static、none;
    TYPE:接口类型,常见的有 Ethernet, Bridge;
    DNS1:第一 DNS 服务器指向;
    DNS2:备用 DNS 服务器指向;
    DOMAIN:DNS 搜索域;
    IPADDR: IP 地址;
    NETMASK:子网掩码;CentOS 7 支持使用 PREFIX 以长度方式指明子网掩码;
    GATEWAY:默认网关;
    USERCTL:是否允许普通用户控制此设备;
    PEERDNS:如果 BOOTPROTO 的值为“dhcp”,是否允许 dhcp server 分配的 dns 服务器指
    向覆盖本地手动指定的 DNS 服务器指向;默认为允许;
    HWADDR:设备的 MAC 地址;      

方法三:CentOS 7 使用nmtui命令配置网络信息,Centos 7是setup。

6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;在线的主机使用绿色显示;不在线的主使用红色显示;

#!/bin/bash
 echo -e "\033[34m Find the online users. Input 'Ctrl + C' to end script run.\033[0m"
                   for ip in {250..254}; do
                            trap 'echo ; echo "Secrpt stoping by user.."; echo ;exit' INT
                            ping -c 1 -w 1 "172.16.250.$ip" &>/dev/null
                            if [ $? -eq 0 ]; then
                                        echo -e "\033[32m 172.16.250.$ip online \033[0m"
                           else
                                        echo -e "\033[31m $1.$ip time out !!!\033[0m"
                           fi
                  done

7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;

ifcfg-IFACE 配置文件参数:
        DEVICE:此配置文件对应的设备的名称;
        ONBOOT:在系统引导过程中,是否激活此接口;
        UUID:此设备的惟一标识;
        IPV6INIT:是否初始化 IPv6;
        BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有 dhcp、bootp、
        static、none;
        TYPE:接口类型,常见的有 Ethernet, Bridge;
        DNS1:第一 DNS 服务器指向;
        DNS2:备用 DNS 服务器指向;
        DOMAIN:DNS 搜索域;
        IPADDR: IP 地址;
        NETMASK:子网掩码;CentOS 7 支持使用 PREFIX 以长度方式指明子网掩码;
        GATEWAY:默认网关;
        USERCTL:是否允许普通用户控制此设备;
        PEERDNS:如果 BOOTPROTO 的值为“dhcp”,是否允许 dhcp server 分配的 dns 服务器指
        向覆盖本地手动指定的 DNS 服务器指向;默认为允许;
        HWADDR:设备的 MAC 地址;

8、如何给网络接口配置多个地址,有哪些方式?

方法一:ifconfig eth0:1 192.168.1.2 netmask 255.255.255.0
方法二:
      CentOS 6:vim /etc/sysconfig/network-scripts/ifcfg-eth0
                添加  IPADDR1、IPADDR2...
      CentOS 7:vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
                添加  IPADDR1、IPADDR2...

9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。

 ifconfig 
    常见用法:
        查看网卡信息:ifconfig [interface]
        查看所有网卡信息:ifconifg -a
        开启或关闭网卡:ifconfig IFACE [up|down]
        配置网卡参数:ifconfig interface [aftype] options | address ...
        配置网卡IP地址:
            ifconfig IFACE IP/mask [up]
            ifconfig IFACE IP network MASK

 ip:显示/配置路由,接口,策略路由和隧道
        常见用法:
             网卡添加多一个IP地址,并设置别名为eth0:0
                 ip addr IPADDR/MASK dev eth0 label 'eth0:0'
            显示网卡设备的信息: ip addr show 
            清除IP地址信息:ip addr flush dev interface
            添加路由:ip route add TARGET via GW dev INTERFACE src SOURCE_IP
            删除单条路由: ip route del TARGET 


 route:路由管理命令
            查看路由条目:route -n
            添加路由条目:route add
            route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] if]
            删除路由:route del
            route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]


netstat :显示网络连接、路由表、接口数据统计、伪装连接、组播成员关系
    常用选项:
                        -t : 显示TCP协议相关已建立的连接(ESTABLISHED)
                        -u : 显示UDP协议相关已建立的连接(ESTABLISHED)
                        -r : 显示raw socket(裸套接字)相关已建立的连接(ESTABLISHED)
                        -l : 处于监听状态的连接
                        -n : 以数字显示IP和协议端口(默认显示协议名称,如SSH)
                        -a : 显示所有状态的连接
                        -e : 扩展格式
                        -p : 显示相关进程及PID

常用组合:
                        -tan , -uan , -tnl, -unl,-tunlp

ss:网络状态查看工具
常见选项:
    -t : tcp协议相关
    -u : udp协议相关
    -w : 裸套接字相关
    -x : unix sock相关
    -l : listen状态的连接
    -a : 所有
    -n : 数字格式
    -p : 相关的程序及PID
    -e : 扩展的信息
    -m : 内存用量
    -o : 计时器信息
    常用组合:
                        -tan , -tanl , -tanlp , -uan,-tunlp

10、11题见博客

12、写一个脚本,完成以下功能

(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干; (2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串; (3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串; (4) 分别统计S开头和K开头的文件各有多少; #!/bin/bash #

        for  i in  $(ls /etc/rc.d/rc3.d/  |grep "^K");do
                echo $i.stop
                let sum1+=1
        done

        for  j in  $(ls /etc/rc.d/rc3.d/  |grep "^S");do
                echo $j.start
                let  sum2+=1
        done

        echo   "the number of "K" is  $sum1 "
        echo   "the number of "S" is $sum2 "

第八周作业(网络、bash脚本)

13、写一个脚本,完成以下功能

(1) 脚本能接受用户名作为参数; (2) 计算此些用户的ID之和; #/bin/bash #

        if [ $# -lt 1 ];then
                echo "at least one username"
                exit 0
        fi

        for i in $*;do
                for j in $(id -u $i);do

                        let sum+=$j
                done
                echo "id.$i =  $(id -u $i) "
        done

        echo "sum=$sum"

第八周作业(网络、bash脚本)

14、写一个脚本

(1) 传递一些目录给此脚本; (2) 逐个显示每个目录的所有一级文件或子目录的内容类型; (3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型; #!/bin/bash #

    if [ $# -lt 1 ];then
            echo "at least one file"
            exit 1
    fi

    for i in $*;do
            if [ -b $j ];then
                    echo "$j is block file."
                    let sum1+=1
            elif [ -c $j ];then
                    echo "$j is character file."
                    let sum1+=1
            elif [ -d $j ];then
                    echo "$j is a directory."
                    let sum1+=1
            elif [ -f $j ];then
                    echo "$j is a common file."
                    let sum1+=1
            elif [ -L $j ];then
                    echo "$j is a symbolic link."
                    let sum1+=1
            elif [ -p $j ];then
                    echo "$j is a pipe file."
                    let sum1+=1
            elif [ -S $j ];then
                    echo "$j is a socket file."
                    let sum1+=1
            else    
                    echo "$j is unknown file."
                    let sum1+=1
            fi
    done

                    echo "$sum1"

第八周作业(网络、bash脚本)

15-18 前面bash脚本总结过

原创文章,作者:N24_yezi,如若转载,请注明出处:http://www.178linux.com/64078

(0)
N24_yeziN24_yezi
上一篇 2016-12-18 20:19
下一篇 2016-12-18 21:34

相关推荐

  • 正则表达式

    grep:Global search REgular expression and Print out the line         文本搜索工具,根据用户指定的”模式“对目标文本逐行进行匹配检查;打印匹配到的行        模式:由正则表达式字符及文本字符所编写的过滤条件…

    Linux干货 2016-08-08
  • Linux中Vim编辑器的使用

    Linux中Vim编辑器的使用 Vim功能介绍 vim是一款功能丰富而强大的文本编辑器,支持语法高亮,支持多窗口编辑,是vi文本编辑器的增强版。如果在CentOS7.2中如果是选择最小化安装,其默认是没有安装vim rpm包的,需要自行安装,可以使用yum工具进行在线安装。  vim至今已经走过了25个春秋,现在8.0版的已经发布了。  …

    Linux干货 2016-12-02
  • Linux下软链接与硬链接

    Linux下软链接与硬链接的区别 Linux中的文件都文件名和数据,在linux上面被分为两个部分:元数据与数据。用户数据,即文件数据块(data block),数据块是记录文件真实内容的地方,而元数据是文件的附加属性,如大小,创建时间,所有者等信息。在Linux中,元数据中的inode号(inode是文件的元数据的一部分,但其不包含文件名,inode号即索…

    Linux干货 2016-10-20
  • mysql/mariadb基于ssl的主从复制

     当mysql/mariadb跨越互联网进行复制时别人可以窃取到mysql/mariadb的复制信息, 这些信息是明文的, 因此存在不安全性, 这里通过ssl对复制的信息进行加密      1. 创建证书中心 在主服务器上创建证书中心 cd /etc/pki/CA 生成私钥 (umask&…

    Linux干货 2016-12-05
  • centos启动流程

    1、centos启动流程 简单流程简介: POST –> Boot Sequence(BIOS) –> Boot Loader (MBR) –> Kernel(ramdisk) –> rootfs –> switchroot –> /sbin/init…

    Linux干货 2016-09-09
  • shell脚本之批量添加用户

        没错,这是一个简单的脚本,不写不知道,写了才发现自己多垃圾。     我是一名普通的公司网络管理,接触linux不长,一直理想都是和马哥学习linux,可惜因为拖家带口的原因,没办法交学费和马哥学习,心里小小遗憾吧。每天看着马哥的文章以及百度搜索的视频文章学习,感觉自己学…

    Linux干货 2016-07-07

评论列表(1条)

  • 马哥教育
    马哥教育 2016-12-23 12:13

    赞,针对自己的理解再加上几幅图更能体现知识~最后一个脚本能加个使用说明会更好一点~继续加油~