第八周作业(网络、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)
上一篇 2016-12-18 20:19
下一篇 2016-12-18 21:34

相关推荐

  • 马哥教育网络班22期+第五周课程练习

    1、显示当前系统上root、fedora或user1用户的默认shell; [xw@localhost ~]$ cat /etc/passwd | grep -E "^(root|fedora|user1)\>" | cut -d:&…

    Linux干货 2016-10-09
  • linux中find命令的那些事

         概述:在介绍find这个强大的文件查找命令前,我们先介绍两个较简单的文件查找命令whereis和locate命令,通常我们都是先使用whereis或者是locate检查,如果真的找不到了,才用find来查找,因为whereis和locate是利用数据库来查找数据的,速度相当快,节约时间,缺点就是有可…

    Linux干货 2016-08-18
  • 计算机的发展及组成

    计算机发展 计算机(Computer):俗称电脑,是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动、高速地处理,然后把处理结果输出的现代化智能电子设备。 1946年,世界上诞生了第一台计算机,用于军事,计算弹道。 1946年数学家冯.诺依曼提出冯诺依曼体系结构,即所有计算机由运算器、控制器、存储器、输入设备、输出设备组成,所有遵循冯.诺依曼…

    Linux干货 2017-07-13
  • KeepAlived的配置及使用!

    此篇博客主要是和大家共同了解一下keepalived的功能及基础配置,以便于牢固掌握,此篇博客共分为三个部分;                ⊙ 简述keepalived的主要功能及安装环境;           &nb…

    2017-05-13
  • CentOS 6.5 LVM磁盘管理学习笔记(二)

    ACTIVE            '/dev/vg51cto/LogVol04' [22.80 GiB]inherit  ACTIVE       …

    Linux干货 2016-08-29
  • scp和rsync的使用

    通过一些简单需求了解scp和rsync的使用

    2017-09-18

评论列表(1条)

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

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