linux学习作业-第八周

本周作业内容:

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

网桥是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。

与交换机一样可以隔离冲突域,可只有2个端口,交换机可有多个比集线器接口数少,无路由功能

集线器

是指将多条以太网双绞线或光纤集合连接在同一段物理介质下的设备。集线器是运作在OSI模型中的物理层。它可以视作多端口的中继器,若它侦测到碰撞,它会提交阻塞信号。无路由功能、不可隔离冲突域、较早时间的局域网连接产品

二层交换机

二层交换机工作于OSI模型的第2层(数据链路层),故而称为二层交换机。二层交换技术的发展已经比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。

上三个设备工作在物理层

三层交换机就是具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也

是为这目的服务的,能够做到一次路由,多次转发。

三层交换技术是在网络模型中的第三层实现了数据包的高速转发,既可实现网络路由功能,又可根据不同网络状况做到最优网络性能。

三层交换机在小企业可以做成无路由器的直接选购设备;一般用于企业的骨干网络,负责处理各二层交换机的快速转发,且带有路由功能。

路由器,是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。

主要用于外网接入的第一或第二设备,用于连接不同网络的主要设备。

与三层交换机类似,更多于路由信息更新、路由表维护、路由计算、路由确定等功能。

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

国际规定:把所有的IP地址划分为 A,B,C,D,E。

A类地址:范围从0~127,0是保留的并且表示所有IP地址,而127也是保留的地址,并且是用于测试环回用的。因此,A类地址的范

围其实是从1~126之间。

B类地址:范围从128-191

C类地址:范围从192-223

D类地址:范围从224-239

D类基本为广播地址

E类地址:范围从240-254

子网掩码的表示形式有2种

10.0.0.1/8

10.0.0.1 255.0.0.0

/8等于2进制11111111转换成10进制则为255

子网掩码就是用来指定某个IP地址的网络地址的,就是用来划分子网的。

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

应用层:TCP/IP应用层:

文件传输,电子邮件,文件服务,虚拟终端

TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet

表示层 :TCP/IP应用层

数据格式化,代码转换,数据加密

没有协议

会话层 :TCP/IP应用层

解除或建立与别的接点的联系

没有协议

传输层 :TCP/IP传输层

提供端对端的接口

TCP,UDP

设备:四层交换机

网络层 :TCP/IP网络层

为数据包选择路由

IP,ICMP,RIP,OSPF,BGP,IGMP

设备:路由器

数据链路层 :TCP/IP 物理层

传输有地址的帧以及错误检测功能

SLIP,CSLIP,PPP,ARP,RARP,MTU

设备:网卡、网桥、交换机

物理层 :TCP/IP 物理层

以二进制数据形式在物理媒体上传输数据

ISO2110,IEEE802。IEEE802.2

设备:集线器、中继器、调制解调器、网线、双绞线、同轴电缆

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

流程概述:

->首先物理层必须有网卡接口,将局域网的网线连接至网卡接口

->配置ip地址与掩码(这是内网的基础)

->配置网关信息(关系到跨网段)

->配置DNS信息(连接外网Internet的必要手段除非路由器已配置)

linux配置IP地址的几个方法

⑴GUI画面配置,只要找到网络配置,就能手动配置。

⑵ifconfig

ifconfig eth1:1 1.1.1.1 netmask 255.0.0.0

ifconfig (设备名) IP地址 netmask 子网掩码 (及时生效)

⑶修改/etc/sysconfig/network-scripts/ifcfg-eth0

修改接口配置文件,修改后需要重启service network restart

CentOS7则用systemctl restart network重启

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

上题写明白了配置IP的信息,这题就写配置默认路由与DNS吧

默认路由:

route add default gw 网关地址

route add default gw 1.1.1.1 #设置默认网关为1.1.1.1

添加路由:

route add -net 目标网段 netmask 掩码 gw IP(也可以替换成dev ethX)

route add -net 11.1.1.0 netmask 255.255.255.0 gw 172.16.0.1

add 增加路由

del 删除路由

-net 设置到某个网段的路由

-host 设置到某台主机的路由

gw 出口网关 IP地址

dev 出口网关 物理设备名

当然也可以在4题的ip设备上添加一条:

getaway 将设置网关(网关即路由)

配置DNS:

配置文件在/etc/resolv.conf

# DNS1=xxx.xxx.xxx.xxx

# DNS2=xxx.xxx.xxx.xxx

配置方法在有颜色,把#去掉就可以填写自己的DNS地址

操作需要重启network服务

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

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

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

echo -e "\033[32m 绿色字 \033[0m"
echo -e "\033[31m 红色字 \033[0m"
#!/bin/bash
i1=172.16.250
for (( i=1; i<255 ; ++i))
do
    ping -c 1 $i1.$i &>/dev/null
    case $? in
    0)
    echo "$i1.$i" >> online.txt
    ;;
    1)
    echo "$i1.$i" >> dealline.txt
    esac
done
i2=$(cat online.txt)
echo This is Online
echo -e "\033[32m$i2 \033[0m "
echo This is deline
i3=$(cat dealline.txt)
echo -e "\033[31m$i3 \033[0m "

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

TYPE=Ethernet #网卡类型

DEVICE=eth0 #网卡接口名称

ONBOOT=yes #系统启动时是否自动加载

BOOTPROTO=static #启用地址协议 --static:静态协议 --bootp协议 --dhcp协议

IPADDR=1.1.1.1 #网卡IP地址

NETMASK=255.0.0.0 #网卡网络地址

GATEWAY=1.1.1.1 #网卡网关地址

DNS1=202.96.128.86 #网卡DNS地址

HWADDR=00:0C:29:13:5D:74 #网卡设备MAC地址

BROADCAST=1.1.1.255 #网卡广播地址

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

⑴使用ifconfig

ifconfig eth0:# 在网卡0,添加虚拟接口  IP地址 netmask 掩码

⑵使用ip命令

ip addr add  1.1.1.3/16 dev eth1

ip addr (添加,删除,修改) ip地址/掩码 dev 设备号

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

arp:命令用于操作主机的arp缓冲区,它可以显示arp缓冲区中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系

常用直接arp

[[email protected] bin]# arp 
Address                  HWtype  HWaddress           Flags Mask            Iface
172.16.249.4                     (incomplete)                              eth1
172.16.249.6                     (incomplete)                              eth1
172.16.249.2             ether   00:50:56:c0:00:08   C                     eth
#Address :IP地址
#HWtype  :硬件类型
#HWaddress :Mac地址
#Flags Mask:记录标志,"C"表示arp高速缓存中的条目,"M"表示静态的arp条目
#Iface :来自哪张网卡识别。
arping:通过ping命令检查设备上的硬件地址
arping  -I eth1 -s 172.16.249.1 172.16.249.2 
-I 选择硬件设备
-s 源地址 后接目标地址
Unicast reply from 172.16.249.2 [00:50:56:C0:00:08]  0.950ms

ping命令:用来测试主机之间网络的连通性

用的最多的命令之一

-c<完成次数>
-f极限坚持
-s数据包大小(字节计算)
-t设置TTL值
ping [选项] 地址(可以是IP或者网址)
ping -c 1 -s 11111 172.16.249.2
向172.16.249.2此IP发送11111字节的包1次。
PING 172.16.249.2 (172.16.249.2) 11111(11139) bytes of data.
11119 bytes from 172.16.249.2: icmp_seq=1 ttl=64 time=1.68 ms
--- 172.16.249.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 1.686/1.686/1.686/0.000 ms

nslookup

nslookup命令是常用域名查询工具,就是查DNS信息用的命令。

nslookup IP或者域名

由于还未安装DNS服务,估演示不了

网上截取一份

[[email protected] ~]# nslookup www.linuxde.net 
解析www.linuxde.net 站点
Server: 202.96.104.15 
Address: 202.96.104.15#53
Non-authoritative answer: 
www.linuxde.net canonical 
name = host.1.linuxde.net. 
Name: host.1.linuxde.net 
Address: 100.42.212.8

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

安装模式:rpm  {-i |--install} PACKAGE

升级模式:rpm  {-U|--upgrade}  PACKAGE

卸载(删除)模式:rpm {-e|--erase} PACKAGE

查询模式:rpm  {-q |--query }  PACKAGE

验证模式:rpm  {-V |--verify} PACKAGE

-a:查询所安装的软件包

--nodeps:不验证依赖的软件包。

--force:同--replacepkgs,--replacefiles一样,就算要安装的软件版本已经安装在系统上,或者是系统上现在的版本比要安装的版本高,依然强制覆盖安装。

有依赖关系包的会报错,error: Faileddependencies

->安装:
[[email protected] Packages]# rpm -ivh bind-9.8.2-0.37.rc1.el6.x86_64.rpm 
warning: bind-9.8.2-0.37.rc1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
   1:bind                   ########################################### [100%]
-i :安装
-v :显示详细
-h :用#显示完成的进度
[[email protected] Packages]# rpm -Uvh bind-9.8.2-0.37.rc1.el6.x86_64.rpm   
warning: bind-9.8.2-0.37.rc1.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
Preparing...                ########################################### [100%]
        package bind-32:9.8.2-0.37.rc1.el6.x86_64 is already installed
-Uvh,如果有老版本,则升级为新版本,否则安装。
-F,--freshen纯升级,如果没有老版本,则不升级。
[[email protected] Packages]# rpm -e bind
-e :删除软件包
#删除的话,只需要填写包名,不需要加后缀版本号其他内容

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

流程
->放入CD
->检测是否安装yum工具(默认已安装)
->重点来了:
->cd /etc/yum.repos.d/
->可以cp其他repo配置修改
->也可以自行创建
name 是仓库的描述也可以说是名字
baseurl 仓库的位置
enabled 是否启用这个仓库,1为起用,0为禁用
gpgcheck 是否检查GPG签名(用来验证要安装的包是不是REDHAT官方的)
GPGKEY 的存放地址我们需要用下面的命令导入这个签名。才能使用这项功能
name=CentOS-$releasever - Media
baseurl=file:///media/RHEL-6.7\ Server.x86_64/
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
->最后一步
->更新本地 YUM 缓存
yum clean all
yum makecache

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

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

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

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

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

#!/bin/bash
ls  /etc/rc.d/rc3.d/ |grep "^[k,K]"|awk -v i=stop ‘{print i$0}‘
ls  /etc/rc.d/rc3.d/ |grep "^[s,S]"|awk -v i=start ‘{print i$0}‘
echo "The K start have $(ls  /etc/rc.d/rc3.d/ |grep "^[k,K]"|awk ‘END{print NR}‘ )file"
echo "The S start have $(ls  /etc/rc.d/rc3.d/ |grep "^[s,S]"|awk ‘END{print NR}‘ )file"

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

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

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

#!/bin/bash
read -p "Please input UserName:" name
i=$(cat /etc/passwd |grep "^$name")
id1=$(grep "^$name" /etc/passwd|cut -d: -f 3  )
if grep -q "^$name" /etc/passwd ; then
    if [ $id1 -gt 500 ];then
    echo "$name is ordinary user."
        else
        echo "$name is super user."
    fi
else
    echo "error input"
fi

14、写一个脚本

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

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

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

#!/bin/bash
read -p "Please input File List :" file1
if [ -d "$file1" ]; then
    echo "This line file:"
    find $file1 -type l
    echo "This file list:"
    find $file1 -type d
    echo "This document"
    find $file1 -type f
else
echo "error input"
fi
f1=$(find $file1 -type l |wc -l)
f2=$(find $file1 -type d |wc -l)
f3=$(find $file1 -type f |wc -l)
echo -e "Have \nline file:$f1\nfile list:$f2\ndocument:$f3"

15、写一个脚本

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

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

#!/bin/bash
read -p "Please input UserName:" name 
i=$(cat /etc/passwd |grep "$name")
id1=$(grep "^$name")
if [ $id1 -gt 500 ];then
echo "$name is ordinary user."
else 
echo "$name is super user."
fi

16、写一个脚本

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

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

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

#!/bin/bash
u=user
unb=0
for((i=1;i<11;i++))
do
useradd $u$i &>/dev/null
    if [ $? = 0 ];then
echo "$u$i" |passwd --stdin $u$i &>/dev/null
    ((unb=unb+1))
    fi
done
echo "creat $unb user"

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

#!/bin/bash
ip1=172.16.250
echo "This Online IP address:"
for ((i=20;i<101;i++))
do
    ping -c 1 $ip1.$i &>/dev/null
    if [ $? = 0 ];then
    echo "$ip1.$i"
    fi
done
echo "END"

18、打印九九乘法表;

#!/bin/bash
typeset -i i=1
typeset -i j=1
方法1:
until [ $j -gt 9 ]; do
        until [ $i -gt $j ];do
                #echo -ne  "${i}X${j}=$[$i*$j]\t"
                printf "${i}X${j}=$(($i*$j))\t"
                ((i++))
        done
方法2:
for j in {1..9};do
        for ((i=1; i<=j; ++i));do
                printf "${i}X${j}=$(($i*$j))\t"
        done
        echo
done
时间: 2024-08-06 13:02:51

linux学习作业-第八周的相关文章

linux学习作业-第三周

本周作业内容: 1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可. [[email protected] ~]$ who | sort |cut -d " " -f1 |uniq -c 2.取出最后登录到当前系统的用户的相关信息. last |head -n 1|cut -d " " -f1 |id 3.取出当前系统上被用户当作其默认shell的最多的那个shell. echo $SHELL ;env |grep SHELL

linux学习作业-第五周

1.显示当前系统上root.fedora或user1用户的默认shell: #!/bin/bash #Program #input username ,then print userbash #2016/08/30 V0.0.1 rex frist  #注明程序使用的shell,作用,日期,版本 read -p "please input you username.then ,output you default shell :" userbash #读取输入的用户名 if [ $us

linux学习作业-第六周

1.复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#: cp /etc/rc.d/rc.sysinit /tmp  sed '[email protected]^[[:space:]]\[email protected]\#&@' /tmp/rc.sysinit 替换可用符号s#.#.# s/././  [email protected]@[email protected] 2.复制/boot/grub/

LINUX内核分析第八周学习总结——进程的切换和系统的一般执行过程

LINUX内核分析第八周学习总结——进程的切换和系统的一般执行过程 黄韧(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.知识概要 Linux中进程调度的基本概念与相关知识 schedule函数如何实现进程调度 Linux进程的执行过程(一般情况与特殊情况) 宏观描述Linux系统执行 二.学习笔记 (一)进程切换的关键代码switch_to分析 进程进度与进程调度的时机分析 1.

Linux内核设计第八周 ——进程的切换和系统的一般执行过程

Linux内核设计第八周 ——进程的切换和系统的一般执行过程 第一部分 知识点总结

Linux学习第十二周总结

linux学习第十一周总结 http协议和APACHE 实现LAMP架构 日志管理 网络文件共享服务 一 .HTTP协议和apache 1.HTTP 简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议. HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等). HTTP是一个属于应用层的面向对象的协议,由于其简捷.

每周更新学习进度表--第八周

每周更新学习进度表:   学习时间 新增代码行 博客量(篇) 知识总结 第一周  7h  80  2  对于软件工程这门课有个大致的了解,并在学习代码上步入正轨. 第二周  8h  100  4  四则运算:还有很多不足的地方,需要继续改进. 第三周  12h  100  5 课上对C语言各种语句重新复习了下,把不少渐渐生疏的语句又过了一遍,并尝试着编写简单语句i 后来看别人的四则运算发现需要回忆的太多,回宿舍把大一的C语言教材翻出来了—_—# 第四周  8h  200  6  重新安装了VS,

学习进度-第八周

  第八周 所花时间(包括上课) 16小时 代码量(行) 300行 博客量(篇) 15篇 了解到的知识点 javascript的使用和css的使用

Linux学习命令汇总八——文件查找命令find选项及使用技巧

本章Blog相关Linux知识点 find与grep的不同点: find为文件搜索命令--用来在指定目录下查找文件,而grep 为文本搜索命令--根据用户指定的文本模式对目标文件进行逐步搜索,显示能够被匹配的行 : find选项支持文件通配符,而grep选线支持正则表达式  : find查找为精确查找,精确匹配但搜索速度稍慢. grep命令选项及正则表达式类型,详细请参考前文"Linux学习命令汇总三--Linux用户组管理,文件权限管理,文本搜索命令grep及正则表达式"   bas