马哥教育网络班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
下一篇 2016-09-08

相关推荐

  • HAProxy实现请求的80端口转发至后端的8000端口并实现动静分离

    一 实验目的 用HAProxy作为负载均衡器,实现把前端请求调度到后端,前端监听80端口,转发至后端的8000端口,并会对访问资源进行判断实现不同的访问内容转发至相对应的服务器。 二 实验拓扑 三 实验环境 IP 功能 192.168.20.108 HAProxy 192.168.237.129 Nginx 192.168.237.130 Nginx+PHP…

    Linux干货 2016-12-19
  • linux磁盘管理补充之挂载选项及常用工具

    一、文件挂载的配置文件         配置文件:/etc/fstab 要挂载的设备的UUID或卷标或/dev/sd[a-z]    挂载点        &n…

    Linux干货 2016-08-30
  • 基础命令

    1,对于Linux的实验环境我们要用到虚拟机,往往每次上线都要登录,这时候如果把用户设为自动登录就会方便许多,接下来就介绍下设置虚拟机的自动登录 , /etc/gdm/custom.conf 这个就是设置自动登录的一个配置文件,我们先来使用nano打开这个文件,如下 # GDM configuration storage 这是GDM的一个配置存储 [daem…

    2017-11-19
  • 马哥网络班21期,第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。     who | cut -d " " -f1 | sort -u     who:查看当前系统所有用户的会话     cut:剪切命令       cut…

    Linux干货 2016-07-26
  • N25_第十二周作业

    1、请描述一次完整的http请求处理过程;     1)建立或者处理连接:建立请求或拒绝请求     2)接收请求:接收来自于网络上的主机请求报文中对特定资源的一次请求的过程;     3)处理请求:对请求报文进行解析,主要获取客户端请求的…

    Linux干货 2017-03-06
  • 马哥教育网络班20期+第五周博客作业

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; ]# grep  "^[[:space:]]\+" /boot/grub/grub.conf 2、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行; ]#…

    Linux干货 2016-07-12