马哥教育网络班21期+第8周课程练习

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

  • 集线器(HUB)是在OSI模型的第一层——物理层——连接多台主机、延长网络的设备。其主要功能是将从一个端口接收到的数据包转发给所有端口。中继器(Repeater)是将由电缆传过来的电信号或光信号调整波形和放大再传给另一个电缆的设备,提供多端口服务的中继器称作集线器。二者的主要区别是HUB是在物理层转发数据的,它并不关心电压值的大小,也不会放大物理信号;而Repeater的作用就是放大物理信号。

  • 网桥(Bridge)是在OSI模型的第二层——数据链路层——连接两个网络的设备。它能够识别数据链路层中的数据帧,并将这些数据帧临时存储于内存,再重新生成信号作为一个全新的帧转发给相连的另一个网段。网桥能识别数据包中的MAC地址信息,根据MAC信息实现对数据包有目的的转发,并将相关MAC地址信息与对应的端口记录在内部的地址表中。

  • 路由器(Router)是在OSI模型的第三层——网络层——连接两个网络、并对分组报文进行转发的设备。网桥是根据MAC地址进行处理,而路由器则是根据IP地址进行处理的。路由器的主要作用就是为经过路由器的数据包选择一条最佳传输途径,并将数据包有效地送达目的地。

  • 二层交换机与三层交换机的区别:二层交换器工作于数据链路层,用于小型的局域网络;三层交换机工作于网络层,加快大型局域网络内部的数据转发。

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

A类:
    0 000 0000 - 0 111 1111: 1-127
    网络数:126, 127
    每个网络中的主机数:2^24-2
    默认子网掩码:255.0.0.0
    私网地址:10.0.0.0/8

B类:
    10 00 0000 - 10 11 1111:128-191
    网络数:2^14
    每个网络中的主机数:2^16-2
    默认子网掩码:255.255.0.0
    私网地址:172.16.0.0/16-172.31.0.0/16

C类:
    110 0 0000 - 110 1 1111: 192-223
    网络数:2^21
    每个网络中的主机数:2^8-2
    默认子网掩码:255.255.255.0
    私网地址:192.168.0.0/24-192.168.255.0/24

D类:主要用于组播
    1110 0000 - 1110 1111: 224-239

子网掩码的表示形式:
    192.168.100.100/255.255.255.0 <--> 192.168.100.100/24
子网掩码的作用:
    区分网络上的主机是否处于同一子网络中。

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

OSI模型.png

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

编辑/etc/sysconfig/network-scripts/ifcfg-IFACE文件,指定IPADDR、NETMASK、GATEWAY和DNS;
编辑/etc/sysconfig/network-scripts/route-IFACE文件,指定网络路由;

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

配置IP:编辑/etc/sysconfig/network-scripts/ifcfg-IFACE文件 配置路由:编辑/etc/sysconfig/network-scripts/route-IFACE文件 dns服务器指定:编辑/etc/resolv.conf文件

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

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

不在线的主使用红色显示; #!/bin/bash net='192.168.40' declare -i uphosts=0 declare -i downhosts=0

    for i in {1..254}; do
        ping -c 1 -w 1 ${net}.${i} &> /dev/null
        if [ $? -eq 0 ]; then
            echo -e "\033[32m ${net}.${i} is up.\033[0m"
            let uphosts++
        else
            echo -e "\033[31m ${net}.${i} is down. \033[om"
            let downhosts++
        fi
        done

        echo "Up hosts: $uphosts."
        echo "Down hosts: $downhosts."

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

/etc/sysconfig/network-scripts/ifcfg-IFACE:
DEVICE:此配置文件应用到的设备;
HWADDR:对应的设备的MAC地址;
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp;
NM_CONTROLLED:NM是NetworkManager的简写;此网卡是否接受NM控制;CentOS6建议为“no”;
ONBOOT:在系统引导时是否激活此设备;
TYPE:接口类型;常见有的Ethernet, Bridge;
UUID:设备的惟一标识;

IPADDR:指明IP地址;
NETMASK:子网掩码;
GATEWAY: 默认网关;
DNS1:第一个DNS服务器指向;
DNS2:第二个DNS服务器指向;

USERCTL:普通用户是否可控制此设备;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中;

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

ifconfig:
    ifconfig IFACE_ALIAS IPADDR
ip:
    ip addr add ip_addr/mask dev IFACE label alias_label
配置文件:
    ifcfg-IFACE_ALIAS
        DEVICE=IFACE_ALIAS

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

Linux网络管理.png

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

Linux程序包管理.png

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

[root@CentOS6 ~]# mount /dev/cdrom /media/CentOS_6.4_Final/
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@CentOS6 ~]# cd !$
cd /media/CentOS_6.4_Final/
[root@CentOS6 CentOS_6.4_Final]# rpm --import RPM-GPG-KEY-CentOS-6
[root@CentOS6 CentOS_6.4_Final]# vi /etc/yum.repos.d/yum.repo 

[localyum]
name=localyum
baseurl=file:///media/CentOS_6.4_Final
gpgcheck=1
enabled=1

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

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

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

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

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

#!/bin/bash
read -p "Please enter a directory:" dir
for i in `ls $dir | grep -o '^K.*'`; do
    echo "$i.stop"
    let a++
done
for j in `ls $dir | grep -o '^S.*'`; do
    echo "$j.start"
    let b++
done
echo "Line of begining with S:$b"
echo "Line of stopping with K:$a"

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

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

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

#!/bin/bash
read -p "Please enter some users:" user
[ -z "$user" ] && echo "At least one user!" && exit
for i in $user; do
    if ! id $i &> /dev/null; then
        echo "$i not exists"
    else

        let j=`id -u $i`
        let sum+=$j
    fi
done
echo "Sum is $sum!"

14、写一个脚本

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

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

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

#!/bin/bash
read -p "Please enter file path:" file
[ -z "$file"  ] && echo "At least one path." && exit
for i in $file; do
    if [ ! -e $i ]; then
        echo "$i No such file!"
    continue 3
    elif [ -d $i ]; then
        echo "$i is directory!"
        let j++
    elif [ -f $i ]; then
        echo "$i is  common file!"
        let a++
    elif [ -L $i ]; then
        echo "$i is symbolic file!"
        let b++
    else
        echo "$i is Other type!"
    fi
done
echo "Directory : $j"
echo "Common file : $a"
echo "Symbolic file : $b"

15、写一个脚本

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

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

#!/bin/bash
[ $# -ne 1 ] && echo "Please enter one user!!!" && exit
! id $1 &> /dev/null && echo "No this user." && exit
let a=`id -u $1`
if [ $a -ge 500 ]; then
    echo "$1 is common user."
else
    echo "$1 is system user."
fi

16、写一个脚本

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

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

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

#!/bin/bash
for i in {1..10}; do
    if id user$i &> /dev/null ;then
        echo "user$i exists."
        continue 3
    else
        useradd user$i
        if [ $? -eq 0 ]; then
            echo "user$i" | passwd --stdin user$i &> /dev/null
            echo "Add user$i finished."
        let j++
        fi
    fi
done
echo "Add $j users."

17、打印九九乘法表;

使用for循环
#!/bin/bash
for i in {1..9}; do
    for j in $(seq 1 $i); do 
        echo -e -n "${i}X${j}=$[$i*$j]\t"
    done
    echo
done

使用while循环
#!/bin/bash
declare -i i=1
declare -i j=1
while [ $i -le 9 ]; do
    while [ $j -le $i ]; do
        echo -e -n "${i}X${j}=$[$i*$j]\t"
        let j++
    done
    echo 
    let i++
    let j=1
done 

使用until循环
#!/bin/bash
declare -i i=1
declare -i j=1
until [ $i -gt 9 ]; do
    until [ $j -gt $i ]; do
        echo -n -e "${i}X${j}=$[$i*$j]\t"
        let j++
    done
    echo
    let i++
    let j=1
done

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

(0)
JeasonJeason
上一篇 2016-08-29
下一篇 2016-08-29

相关推荐

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

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

    Linux干货 2016-08-02
  • Linux用户、组管理和正则表达式的基础命令

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何权限 [root@localhost skel]# cp -r /etc/skel /home/tuser1 [root@localhost skel]# ls -al /home/tuser1 total 12 drwxr-xr-x.…

    Linux干货 2017-07-20
  • 第五周作业

    1、显示当前系统上root、fedora或user1用户的默认shell; [root@localhost ~]# awk -F: '/^(root|user1|fedora)/{print $1,"shell is",$NF}' /etc/pass…

    Linux干货 2016-09-15
  • 关于软硬链接那些事儿

           小编这周接触到了链接,那么重点来了,啥是链接呢小编觉得链接简单来说就是一种共享的方式,比如我们去逛超市,超市的入口就是‘链接’。在Linux中,链接又分为软连接和硬链接,想要了解他俩,就得先了解几个基本概念。 一:Inode       我们知道文件包含数据和元数据,它的数据…

    Linux干货 2017-07-22
  • 实现软RAID0的方法

    实验利用三个分区分别为10G组成一个RAID0 分区时要注意ID的转换 创建RAID的设备名称为md0 通过mdadm -D /dev/md0可以查看md0的信息 创建配置文件: mdadm -Ds > /etc/mdadm.conf(为了系统启动时自动加载) 给RIAD0创建文件系统: 创建挂载目录mkdir /mnt/raid0 挂载: 同步: m…

    2017-12-11
  • Linux的发行版及哲学思想

    Linux是一套免费使用和自由传播的类Unix系统,是一个基于Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的工具软件、应用程序和网络协议。它支持32位和64位硬件,是一个性能稳定的多用户网络操作系统。严格来讲,Linux这个词本身只表示Linux内核,联合GNU 组织里的各种强大的应用软件而组成的操作系统。 从Linux的诞生至今,…

    Linux干货 2016-10-30

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-30 13:22

    如此好的原创图应该发到群里供其它同学学习一下,很好,很详细,很规范