马哥教育网络班21期-第八周课程练习

1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。

设备 使用场景 功能 区别
集线器 局域网 共享同一网络 不能分隔冲突域
网桥 局域网 连接不同网段,拓展局域网 端口少,可以分隔冲突域
二层交换机 局域网 连接不同局域网段,数据交换 端口更多,可以分隔冲突域,速率更快
三层交换机 局域网,广域网 路由,高速数据交换,分隔广播域 转发数据速度快,路由功能较路由器弱
路由器 广域网 路由转发,分隔广播域 转发数据比三层交换机速度慢,主要用于路由

2、IP地址的分类有哪些?子网掩码的表示形式及其作用

类别 范围 子网掩码
A 1~126 255.0.0.0
B 128~191 255.255.0.0
C 191~223 255.255.255.0
D 224~239
E 240~254

子网掩码作用:用来区分网络地址和主机地址

3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。

OSI模型 名称 功能 设备 TCP/IP模型 名称
第一层 物理层 定义物理设备通信的电气特性 集线器 第一层 物理层
第二层 数据链路层 物理地址寻址,流量控制,数据校验 网桥,交换机 第二层 数据链路层
第三层 网络层 路由选择 路由器、三层交换机 第三层 网络层
第四层 传输层 端到端通信、差错控制、流量控制 第四层 传输层
第五层 会话层 管理进程间通信 第五层 应用层
第六层 表示层 数据格式化、数据加密,代码转换
第七层 应用层 为操作系统或应用程序提供网络服务接口

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

 修改对应网卡配置文件

  [root@jumper ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0  #修改并添加以下选项

    ONBOOT=yes

    BOOTPROTO=none

    IPADDR=10.4.0.61

    NETMASK=255.255.255.0

    GATEWAY=10.4.0.10

    DNS=8.8.8.8

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

 a.修改配置文件方式(永久有效)

   vim 修改/etc/sysconfig/network-scripts/ifcfg-ethX,并保存

 b.命令行方式(当前有效)

   使用 ip,route命令指定ip地址,默认网关

 c.图形界面方式

   使用 setup 命令进入tui界面配置,或者是 system-config-network-tui

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

     在线的主机使用绿色显示;

     不在线的主使用红色显示;

#!/bin/bash
#
server='172.16.250.'

for num in {1..254};do
 if ping -c 1 -w 1 $server$num &> /dev/null ;then
    echo -e "\t\033[32m$server$num online\033[0m"
 else
    echo -e "\t\033[31m$server$num offline\033[0m"
 fi
done

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

DEVICE=eth0    #设备名

HWADDR=00:50:56:80:7C:4A    #设备物理MAC地址

TYPE=Ethernet    #设备类型

UUID=2c6e71ce-5562-46b2-a7a7-a4a27f2e226a    #通用惟一标识符

ONBOOT=yes    #开机启动

NM_CONTROLLED=yes    #该设备是否接受 network manager 控制

BOOTPROTO=none    #启动此设备时的地址匹配协议

IPADDR=10.4.0.60    #ipv4地址

NETMASK=255.255.255.0    #子网掩码

GATEWAY=10.4.0.10    #默认网关

DNS=8.8.8.8    #域名解析服务器地址

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

 a、[root@server ~]# ifconfig lo:1 192.168.1.1/24 up  #使用 ifconfig 查看配置结果

 b、[root@server ~]# ip addr add 192.168.1.1/24 dev lo  #使用 ip addr show lo 查看配置结果

 c、新建/etc/sysconfig/network-scripts/ifcfg-ethX:X 文件

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

 1)ifconfig #查看所有网络接口信息

  ifconfig 网卡名 ip地址/子网掩码 #配置网卡ip,立即生效

 2)route #打印路由表

  route add|del 目标主机或ip地址 #添加/删除对应主机/ip路由条目

 3)netstat #显示网络连接、路由表、接口统计、伪装的连接,和组播成员

  netstat -tnlp #以数字形式显示正在监听的tcp协议相关进程

  netstat -unlp #以数字形式显示正在监听的udp协议相关进程

   -n:以数字格式显示ip及端口

   -t:tcp协议相关

   -l:处于监听状态

   -P:显示相关的进程和PID

  

 4)ss #显示网络连接状态,速度较netstat快

  ss -tnlp #以数字格式显示tcp协议套接字

  ss -unlp #以数字形式显示正在监听的udp协议相关进程

10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。

 1)使用rpm工具管理(本地包组管理,无需网络,需要rpm本地包,手动解决依赖关系)

    查询 rpm -q package …

    安装 rpm -i package …

    升级 rpm -U package …

    卸载 rpm -e package …

 2)使用yum工具管理(若无本地源,则必须要连接互联网,无需本地包,安装时自动解决依赖关系)

    查询 yum list …

    安装 yum install package …

    升级 yum upgrate package …

    卸载 yum remove package …

11、如何使用发行版光盘作为yum repository,请描述该过程。

 1)挂载光盘 #mount -r -t iso9660 /dev/cdrom /media/cdrom

 2)编辑repo文件 #vim /etc/yum.repos.d/test.repo 

    [test-cent6]

    name=local_repo

    baseurl=file:///media/cdrom

    gpgcheck=1

    enabled=1

 3)检查结果 #yum repolist

  

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

   (1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;

   (2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;

   (3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;

   (4) 分别统计S开头和K开头的文件各有多少;

#!/bin/bash
#
declare -i k=0
declare -i s=0
dir_name="/etc/rc.d/rc3.d/"

for list in $(ls $dir_name);do
  if echo $list | grep ^K &> /dev/null;then
    echo "$list stop"
    let k++
  else
    echo "$list start"
    let s++
  fi
done
echo "kfile $k"
echo "sfile $s"

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

   (1) 脚本能接受用户名作为参数;

   (2) 计算此些用户的ID之和;

#!/bin/bash
#
declare -i sum=0

if [ $# -eq 0 ];then
  echo "Usage: $0 User_name ..."
  exit
fi
for list in $*;do
  if id $list &> /dev/null;then
    user_id=$(id -u $list)
    let sum+=$user_id
  else
   echo  "$list is not exist"
  fi
done
echo "id total is $sum"

14、写一个脚本

   (1) 传递一些目录给此脚本;

   (2) 逐个显示每个目录的所有一级文件或子目录的内容类型;

   (3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;

#!/bin/bash
#
declare -i dir_sum=0
declare -i file_sum=0

if [ $# -eq 0 ];then    
  echo "Usage: $0 dir_name ..."
fi
for list in $*;do
  if [ ! -d $list ];then
    echo "$list is not a directory,pls input directory name"
    exit
  fi
done

for list1 in $*;do
  for list2 in $(ls $list1);do
    if [ -d $list1/$list2 ];then
      let dir_sum++
    elif [ -f $list1/$list2 ];then
      let file_sum++
    fi
  done
done

echo "directory $dir_sum"
echo "file $file_sum"

15、写一个脚本

  通过命令行传递一个参数给脚本,参数为用户名

  如果用户的id号大于等于500,则显示此用户为普通用户;

#!/bin/bash
#

if [ $# -ne 1 ];then
  echo "Usage: $0 user_name"
  exit
fi
if id $1 &> /dev/null;then
  num=$(id -u $1)
  if [ $num -gt 500 ];then
    echo "$1 is normal user"
  fi
fi

16、写一个脚本

   (1) 添加10用户user1-user10;密码同用户名;

   (2) 用户不存在时才添加;存在时则跳过;

   (3) 最后显示本次共添加了多少用户;

#!/bin/bash
#
declare sum=0

Judge_user () {
  if id $1 &> /dev/null;then
    echo "$1 is exist"
  else
    useradd $1
    echo $1 | passwd --stdin $1 &> /dev/null
    let sum++
  fi
}

for list in $(seq 1 10);do
  Judge_user user$list
done

echo "$sum users is add in this operation"

17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;

#!/bin/bash
#
server='172.16.250.'

for num in {20..100};do
 if ping -c 1 -w 1 $server$num &> /dev/null ;then
    echo -e "\t\033[32m$server$num is online\033[0m"
 fi
done

18、打印九九乘法表;

#!/bin/bash
#

for ((b=1;b<=9;b++));do
  for ((a=1;a<=$b;a++));do
    echo -n -e "${a}x${b}=$[$a*$b]\t"
  done
  echo
done

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

(0)
Net21_木头Net21_木头
上一篇 2016-09-08 18:55
下一篇 2016-09-08 18:56

相关推荐

  • 第五周博客作业

      感觉进入了年底,明显的时间不够,不管怎么说,还是要努力跟上学习的进度,不能给自己松懈找借口!  1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@localhost ~]# grep "^[[:space:]]\+" /boot/grub/grub.co…

    Linux干货 2017-01-03
  • 面向对象

    语言分类 面向机器:抽象成机器指令,机器容易理解。代表:汇编语言 面向过程:一件事情分步骤来完成,出现各种情况有解决办法一一对应,问题规模小可以步骤化、按部就班的处理。代表:C语言 面向对象oop(object Oriented Programming):随着计算机解决问题的规模扩大、情况更复杂,需要很多部分协作,面向过程编程就不合适了,演变出了面向对象编程…

    Linux干货 2017-11-13
  • Linux运维学习历程-第十一天-bash逻辑运算、测试类型和脚本语句

    概述:本篇重点介绍linux当中默认设立了类型,bash的逻辑运算、测试类型和脚本语句,本篇内容极其重要,望小伙伴们在日后的学习中用心学习 一、逻辑运算 变量:   本地变量、环境变量、局部变量、位置参数变量、特殊变量   变量赋值:name=value,export name=value,declare -x nam…

    Linux干货 2016-08-24
  • 揭开链接文件的面纱——从根本上剖析硬链接与软链接异同

    在linux的学习过程中,链接文件的学习让不少人头疼,很多同学往往分不清什么是硬链接,什么是软链接,对于两者的概念和区别常常容易混淆、搞不清楚。今天我们就从原理、从根本上为大家辨析一些两者之间的区别,相信大家在看完这篇文章之后对链接文件会有一个清晰正确的认识。 1、在实现原理上不同 硬链接,涉及到文件的底层模式,因此被称为硬链接文件。硬链接文件只是一个指针指…

    Linux干货 2016-10-20
  • Linux学习总结&day07-正则表达式&文本处理工具

    第一部分、正则表达式     1、什么是正则表达式     正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易的达到查找、删除、替换某特定字符串的处理程序。     正则表…

    Linux干货 2016-08-08