N21 第八周 总有刁民想害朕

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

网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。

集线器的英文称为“Hub”。主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI参考模型第一层,即“物理层”。

二层交换机工作于OSI模块的第2层(数据链路层),故称为二层交换机。可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。

三层交换机就是具有路由功能的交换机。

路由器工作于OSI参考模型的第3层(网络层),是连接因特网中各局域网、广域网的设备,它根据信道的情况自动选择和设定路由,以最佳路径,按前后顺发送信号

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

A类:1-127默认子网掩码:255.0.0.0 10.0.0.0/8

B 类:128-191默认子网掩码:255.255.0.0 172.16.0.0/16-172.31.0.0/16

C 类:192-223默认子网掩码:255.255.255.0 192.168.0.0/24-192.168.255.0/24

D 类:223-254

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

OSI七层模型:

应用层:提供应用程序之间通信,

表示层:处理数据格式、数据加密

会话层:建立,维护,管理会话连接涉及操作系统和网络接口和各种数据

传输层:建立主机端到端连接,涉及物理设备

网络层:寻址和路由选择涉及物理设备,路由器

数据链路层:提供介质访问,链路管理,将数据分帧并处理流控制。网卡,网桥,交换机

物理层:比特流传输,将数据转换为可通过物理介质传送的电子信号物理设备双绞线、同轴电缆,集线器

TCP/IP 4层模型:

网络访问层:功能包括IP地址与物理硬件地址的映射,以及将IP分组封装成帧。基于不同硬件类型的网络接口,定义了和物理介质的连接。相当于OSI参考模型的物理层和数据链路层。

网际层:处理来自传输层的分组发送请求;处理输入数据报;处理ICMP报文,即处理网络的路由选择、流量控制和拥塞控制等问题。在功能上类似于ISO/OSI参考模型中的网络层。

传输层:主要功能是可靠而又准确地传输并控制源主机与目的主机之间的信息流,提供端到端的控制,通过滑动窗口机制提供流控制,通过序列号和确认机制来保证可靠性。

应用层:包括所有的高层协议,与OSI的应用层协议相差不大,包括HTTP、Telnet、FTP、SMTP、POP3、DNS等。

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

1)使用ip -a命令查看是否有发现网卡

2)编辑/etc/sysconfig/network-script/ifcfg-ethX centos 为eno17736,配置启动必要的参数,如:

BOOTPROTO=none

ONBOOT=yes

IPADDR=########

NETMASK=########

GATEWAY=########

DNS1=########

3)service network restart

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

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

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

#!/bin/bashfor ((i=1;i<255;i++));do
        ping -c 1 -w 1 "172.16.250.$i" >/dev/null
        if [ $? -eq 0 ];then
                echo -e "\033[0;32;1m 192.168.1.$i is up! \033[0m"
        else
                echo -e "\033[0;31;1m 192.168.1.$i is down! \033[0m" 
        fi
done

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

cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0 #设备名称,一般和NAME相同

TYPE=Ethernet #网络类型

ONBOOT=yes #系统启动时启用连接

NM_CONTROLLED=yes #接受network manager服务控制

BOOTPROTO=none #获得IP地址方式,手动选择none,自动选择dhcp

IPADDR=192.168.199.61 #设定IP地址

PREFIX=24 #掩码位数,也可使用NETMASK=255.255.255.0

GATEWAY=192.168.199.254 #网关

DNS1=192.168.199.1 #DNS

DEFROUTE=yes #是否作为默认路由

IPV4_FAILURE_FATAL=yes

IPV6INIT=no

NAME="System eth0"

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

1)使用ipaddr/ifconfig 命令添加IP,即时生效,重启系统后IP不存在

2)使用setup命令,出现面板添加IP

3)在/etc/sysconfig/network-scripts目录下修改网卡配置文件添加IP,需重启网卡,永久有效

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

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

rpm命令实现程序管理:

安装:-ivh, –nodeps, –replacepkgs

卸载:-e, –nodeps

升级:-Uvh, -Fvh, –nodeps, –oldpackage

查询:-q, -qa, -qf, -qi, -qd, -qc, -q –scripts, -q –changlog, -q –provides, -q –requires

校验:-V

导入GPG密钥:–import, -K, –nodigest, –nosignature

数据库重建:–initdb, –rebuilddb

Yum 命令实施软件包管理:

repolist [all|enabled|disabled]

显示程序包:list

#yum list [all | glob_exp1] [glob_exp2] […]

#yum list {available|installed|updates} [glob_exp1] […]

安装程序包: install package1 [package2] […]

reinstall package1 [package2] […] (重新安装)

升级程序包:

update [package1] [package2] […]

downgrade package1 [package2] […] (降级)

检查可用升级:

check-update

卸载程序包:

remove | erase package1 [package2] […]

查看程序包information:

info […]

查看指定的特性(可以是某文件)是由哪个程序包所提供:

provides | whatprovides feature1 [feature2] […]

清理本地缓存:

clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]

构建缓存:

makecache

DNF 命令实施软件包管理:

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

1)挂载光盘至某目录

mount /dev/sr0 /mnt/

2)创建配置文件

vim /etc/yum.repos.d/cdrom.repo

[cdrom] #仓库的名字

name=66666 #仓库的描述

baseurl=file:///mnt #repodata目录的仓库访问路径

gpgchecked=0 #使用前是否检验包

enabled=1 #是否启用此仓库,默认启用

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

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

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

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

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

#!/bin/bash
startsum=0,stopsum=0for i in $(ls /etc/rc.d/rc3.d/);do
        string=$(echo ${i:0:1})        if [ $string == K ];then
                echo "$i stop"
                let stopsum++
        elif [ $string == S ];then
                echo "$i start"
                let startsum++
        fi
done
echo "start S:$startsum"echo "start K:$stopsum

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

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

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

#!/bin/bash
sum=0if [ $# -lt 1 ];then
        echo "plz at least a username!"
        exit 20
        fifor i in $*;do
        if id $i &>/dev/null;then
        sum+=$(id -u $i)        else
        echo "the user $i is not exist!"
        exit 30
        fi
done
echo "sum gid:$sum"

14、写一个脚本

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

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

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

[ -d $i -a -x $i ]检查文件夹是否存在,且是否有权限读取

ls -l $i |grep ^d 取出目录

ls -l /tmp/ |grep -v ^d取出非目录

#!/bin/bash
dsum=0,fsum=0if [ $# -le 1 ];then
        echo "input at least a filepath!"fifor i in $*;do
        if [ -d $i -a -x $i ];then
        ls -l $i  |grep ^d |awk '{print $NF}'
        let dsum+=$(ls -l /tmp/ |grep ^d |wc -l)        let fsum+=$(ls -l /tmp/ |grep -v ^d |wc -l)        else
        echo "The $i is not exist or Permission denied,please check it!"
        exit 2
        fi
done
        echo "the directories sum:$dsum"
        echo "the file sum:$fsum"

15、写一个脚本

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

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

#!/bin/bashif [ $# -lt 1 ];then
echo "please input a username at least!"fifor username in $*;do
        if id $username &>/dev/null;then                if [ $(id -u $username) -gt 500 ];then
                        echo "$username is the regular user!"
                fi        else
                echo "$username is no exist!"
        fi
done

16、写一个脚本

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

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

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

#!/bin/bash
sum=0for ((i=1;i<=10;i++));do
        if id user$i &> /dev/null;then
                echo "user$i is exists!"
        else
                useradd -M -N user$i &> /dev/null
                let sum++
                echo "user$i is add!"
        fi
done
        echo "$sum users add done!"

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

#!/bin/bashfor ((i=1;i<=20;i++));do
        ping -w 1 -c 1 172.16.250.$i &> /dev/null
        if [ $? -eq 0 ];then
                echo "172.16.250.$i is up!"
        fi
done

18、打印九九乘法表;

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

原创文章,作者:N21-总有刁民想害朕,如若转载,请注明出处:http://www.178linux.com/46176

(0)
上一篇 2016-09-15 22:21
下一篇 2016-09-15 22:21

相关推荐

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

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

    Linux干货 2016-08-08
  • 路径操作&StringIO/BytesIO

    Edit 路径操作&StringIO/BytesIO 路径操作 路径操作模块: 3.4版本以前os.path模块 In [1]: from os import path In [2]: p = path.join(‘/etc’,’sysconfig’,’network’)#将字符…

    Linux干货 2017-10-30
  • Linux Bash Shell练习

    Linux Bash Shell练习 1、写一个脚本,完成以下功能: 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串 显示所有以S开头的文件的文件名,并且给其附加一个start字符串 分别统计S开头和K开头的文件各有多少 #!/bin/bash # for&…

    Linux干货 2016-12-17
  • N_28文件类管理命令

    1.linux文件管理类命令有:mkdir ,rmdir,cp ,mv,rm,ls,vi,cat ,cut,sort,wc等 mkdir –make directories  (创建目录) 用法 :mkdir [OPTION]… DIRECTORY… -P  按需要创建目录的父目录; -v  显示创建的详细过程; -m M…

    2017-12-09
  • N23_第六周

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;:%s/^[[:blank:]]\+.*/\0#/g 2、复制/boot/grub/grub.conf至/tmp目录中,删除/tmp/grub.conf文件中的行首的空白字符;:%s/^[[:space:]]\+/…

    Linux干货 2017-02-28
  • httpd服务归纳:浅谈I/O模型

    1. 四种理论的I/O模型      1) 调用者(服务进程):         阻塞:  进程发起I/O调用,如果调用为完成,进程被挂起休眠,不能再执行其他功能    …

    Linux干货 2015-05-27

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-19 17:30

    脚本排版是不是特别不合理,在仔细看看,前面的内容最好也和脚本一样的排版