2016-10-16 第八周作业

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

网桥 将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。
集线器 主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它工作于OSI(开放系统互联参考模型)参考模型第一层,即“物理层”。
二层交换机 工作于OSI模型的第2层(数据链路层),故而称为二层交换机。二层交换技术的发展已经比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。
三层交换机 具有部分路由器功能的交换机,三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。三层交换技术就是二层交换技术+三层转发技术。传统交换技术是在OSI网络标准模型第二层——数据链路层进行操作的,而三层交换技术是在网络模型中的第三层实现了数据包的高速转发,既可实现网络路由功能,又可根据不同网络状况做到最优网络性能。
路由器 连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。 路由器是互联网络的枢纽,又称网关设备(Gateway)是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。路由和交换机之间的主要区别就是交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。

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

IP地址分为:
A类:
    1.0.0.1-126.255.255.254
    网络数:126
    每个网络中的主机数:2^24-2
    默认子网掩码:255.0.0.0
    私网地址:10.0.0.0/8-10.255.255.255/8
B类:
    128.0.0.1-191.255.255.254
    网络数:2^14
    每个网络中的主机数:2^16-2
    默认子网掩码:255.255.0.0
    私网地址:172.16.0.0/16-172.31.255.255/16
C类:
    192.0.0.1-223.255.255.254
    网络数:2^21
    每个网络中的主机数:2^8-2
    默认子网掩码:255.255.255.0
    私网地址:192.168.0.0/24-192.168.255.255/24
    
D类:组播 
    224.0.0.1-239.255.255.254
    
E类:
    240.0.0.1-255.255.255.254
    
子网掩码:将IP地址划分为网络地址与主机地址,与IP地址相与可计算出相应主机的网络地址

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

OSI七层模型从低到高分为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层;

物理层 主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等;
数据链路层 定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输;
网络层 在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择;
传输层 定义了一些传输数据的协议和端口号,如www端口为80,ftp端口为20、21等;
会话层 通过传输层建立数据传输的通路;
表示层 可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取;
应用层 为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。

TCP/IP模型分为四层,从高到低为应用层、传输层、互联网络层、网络接口层;

应用层 应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等;
传输层
在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收

互联网络层
负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP);

网络接口层 对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。

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

[[email protected] ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
 TYPE=Ethernet
 BOOTPROTO=static
 DEFROUTE=yes
 PEERDNS=yes
 PEERROUTES=yes
 IPV4_FAILURE_FATAL=no
 IPV6INIT=no
 IPV6_AUTOCONF=no
 IPV6_DEFROUTE=no
 IPV6_PEERDNS=no
 IPV6_PEERROUTES=no
 IPV6_FAILURE_FATAL=no
 NAME=eth0
 UUID=e440279d-0e7e-4f90-b961-7f97395f9685
 DEVICE=eth0
 ONBOOT=yes
 IPADDR=192.168.1.125
 NETMASK=255.255.255.0
 GATEWAY=192.168.1.1
 DNS1=202.106.0.20
 DNS2=8.8.8.8

Centos 6

[[email protected] ~]# system-config-network-tui

[[email protected] ~]# setup

Centos 7

[[email protected] ~]# nmtui-edit

重新读取配置文件:#/etc/init.d/network restart或者# service network restart

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

1)配置文件
[[email protected] ~]#/etc/sysconfig/network-script/ifcfg-IFACE
重启网络后永久生效
 
2)命令行
IP
[[email protected] ~]#ifconfig eth0 192.168.1.125 netmask 255.255.255.0
[[email protected] ~]#ip addr add 192.168.1.125/24 dev eth0  
配置完后立即生效,重启后失效
 
路由
[[email protected] ~]#route add default gw 192.168.1.1
[[email protected] ~]# ip route add default via 192.168.12.1 dev eth0
配置完后立即生效,重启后失效
 
3)图形窗口
CentOS 6
[[email protected] ~]#system-config-network-tui
[[email protected] ~]#setup
CentOS 7
[[email protected] ~]# nmtui-edit
重启网络后永久生效

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

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

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

[email protected] bin]# vim ping.sh 
#!/bin/bash
#
export ipaddr=172.16.250.
for i in {1..254};do
  if ping -c 1 -W 1 $ipaddr$i &> /dev/null;then
	 echo -e "\033[0;32;1m"$ipaddr$i is up." \033[0m"
	   else
	 echo -e "\033[0;31;1m"$ipaddr$i is down." \033[0m"
  fi
done
[[email protected] bin]# chmod +x ping.sh

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、如何给网络接口配置多个地址,有哪些方式?

(1)ip命令
     ip addr { add | del } IFADDR dev STRING

[[email protected] ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:34:99:fe brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.125/24 brd 192.168.1.255 scope global eth0
    inet 172.16.250.2/24 brd 172.16.250.255 scope global eth0:0
    inet6 fe80::20c:29ff:fe34:99fe/64 scope link 
       valid_lft forever preferred_lft forever
3: pan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 
    link/ether ea:cb:53:da:d7:c7 brd ff:ff:ff:ff:ff:ff
[[email protected] ~]# ip addr add 192.168.1.131/24 dev eth0
[[email protected] ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:34:99:fe brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.125/24 brd 192.168.1.255 scope global eth0
    inet 172.16.250.2/24 brd 172.16.250.255 scope global eth0:0
    inet 192.168.1.131/24 scope global secondary eth0
    inet6 fe80::20c:29ff:fe34:99fe/64 scope link 
       valid_lft forever preferred_lft forever
3: pan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 
    link/ether ea:cb:53:da:d7:c7 brd ff:ff:ff:ff:ff:ff
[[email protected] ~]#
(2)ifconfig
	ifconfig IFACE_ALIAS

[[email protected] ~]# ifconfig eth0:1 192.168.1.132/24 up
[[email protected] ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:34:99:fe brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.125/24 brd 192.168.1.255 scope global eth0
    inet 172.16.250.2/24 brd 172.16.250.255 scope global eth0:0
    inet 192.168.1.131/24 scope global secondary eth0
    inet 192.168.1.132/24 brd 192.168.1.255 scope global secondary eth0:1
    inet6 fe80::20c:29ff:fe34:99fe/64 scope link 
       valid_lft forever preferred_lft forever
3: pan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN 
    link/ether ea:cb:53:da:d7:c7 brd ff:ff:ff:ff:ff:ff
[[email protected] ~]#
(3)修改配置文件
首先将/etc/sysconfig/network-scripts/下的ifcfg-eth0文件复制一份,重命名为ifcfg-eth0:0,修改eth0:0
[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
TYPE=Ethernet
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=172.16.250.2
NETMASK=255.255.0.0
DNS=202.106.0.20
DNS1=8.8.8.8
IPV6INIT=no
USERCTL=no

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

(1) ifocnfig 接口及地址查看和管理
使用用法:
格式:ifconfig [-v] [-a] [-s] [interface]
选项:
   -a:显示所有网卡信息
   -S 显示接口信息
示例:
查看网卡信息:
[[email protected] ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:34:99:FE  
          inet addr:192.168.1.125  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe34:99fe/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:170335 errors:0 dropped:0 overruns:0 frame:0
          TX packets:44191 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:146923432 (140.1 MiB)  TX bytes:4185346 (3.9 MiB)

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:34:99:FE  
          inet addr:172.16.250.2  Bcast:172.16.250.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:34:99:FE  
          inet addr:192.168.1.132  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:58 errors:0 dropped:0 overruns:0 frame:0
          TX packets:58 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:5435 (5.3 KiB)  TX bytes:5435 (5.3 KiB)
(2)netstat 显示网路连接 
格式:netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
选项:
      -t: tcp协议相关连接,连接均有其状态;FSM(Finate state Machine) 
      -u: udp协议相关 -w: raw socket相关 裸套接字 
      -l: 处于监听状态,等待别人连接;不加的l话,正在建立的连接或正在通信的状态
      -a: 所有状态 -n: 以数字显示IP和端口;
      -e:扩展格式 
      -p: 显示相关进程及PID 
      -r: 显示路由信息
      常用选项: -tan -uan -tnl -unl -tunlp
示例:
显示路由:
[email protected] ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
172.16.250.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
172.26.0.0      192.168.1.1     255.255.0.0     UG        0 0          0 eth0
172.16.0.0      192.168.1.1     255.255.0.0     UG        0 0          0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG        0 0          0 eth0
显示当前已建立的端口
[[email protected] ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1605/sshd           
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      1419/cupsd          
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1905/master         
tcp        0      0 0.0.0.0:53629               0.0.0.0:*                   LISTEN      1381/rpc.statd      
tcp        0      0 0.0.0.0:10051               0.0.0.0:*                   LISTEN      1959/zabbix_server  
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      1757/mysqld         
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      1333/rpcbind        
tcp        0      0 :::22                       :::*                        LISTEN      1605/sshd           
tcp        0      0 :::54198                    :::*                        LISTEN      1381/rpc.statd      
tcp        0      0 ::1:631                     :::*                        LISTEN      1419/cupsd          
tcp        0      0 ::1:25                      :::*                        LISTEN      1905/master         
tcp        0      0 :::10051                    :::*                        LISTEN      1959/zabbix_server  
tcp        0      0 :::111                      :::*                        LISTEN      1333/rpcbind        
tcp        0      0 :::80                       :::*                        LISTEN      1943/httpd          
udp        0      0 127.0.0.1:717               0.0.0.0:*                               1381/rpc.statd      
udp        0      0 0.0.0.0:48607               0.0.0.0:*                               1381/rpc.statd      
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               1333/rpcbind        
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               1419/cupsd          
udp        0      0 0.0.0.0:660                 0.0.0.0:*                               1333/rpcbind        
udp        0      0 :::43856                    :::*                                    1381/rpc.statd      
udp        0      0 :::111                      :::*                                    1333/rpcbind        
udp        0      0 :::660                      :::*                                    1333/rpcbind
(3) ip  查看及管理 路由,设备,策略路由,隧道
格式:
    ip [ OPTIONS ] OBJECT { COMMAND | help }
        OBJECT := { link | addr | route }
     
选项:   
 ip link: 
   set
     dev IFACE
     可设置属性:
     up and down:激活或禁用指定接口;
     [[email protected] ~]# ip link set lo down
   show
     [dev IFACE]:指定接口
     [up]:仅显示处于激活状态的接口  
     [[email protected] ~]# ip link show up
 ip addr: 
   ip addr { add | del } IFADDR dev STRING 添加或删除IP
      [label LABEL]:添加地址时指明网卡别名
      [scope {global|link|host}]:指明作用域
            global: 全局可用;
            link: 仅链接可用;
            host: 本机可用;                      
      [broadcast ADDRESS]:指明广播地址
      ip addr show 查看IP
            [[email protected] ~]# ip addr show
                           
                           
     ip addr flush  清空某个网卡的所有地址
           ip addr flush dev IFAC 
           
(4)ss
格式:ss [options] [ FILTER ]
选项:
     -t: tcp协议相关连接,连接均有其状态;FSM(Finate state Machine)
     -u: udp协议相关
     -w: raw socket相关
     -l: 处于监听状态,等待别人连接;不加的l话,正在建立的连接或正在通信的状态
     -a: 所有状态
     -n: 以数字显示IP和端口;
     -e:扩展格式
     -p: 显示相关进程及PID
     -m:内存用量
     -o:计时器信息
     FILTER:=[state TCP-STATE][EXPRESSION] 过滤器
     tcp-STATE:
               LISTEN:监听
               ESTABLISEHD:建立的连接
               FIN_WAIT1:
               FIN_WAIT2:
               SYN-SENT:
               SYN_RECV:
               CLOSED:
     EXPRESSION:
                 dport=
                 sport=
  
[[email protected] ~]# ss -tan
State       Recv-Q Send-Q                                 Local Address:Port                                   Peer Address:Port 
LISTEN      0      128                                               :::22                                               :::*     
LISTEN      0      128                                                *:22                                                *:*     
LISTEN      0      128                                               :::54198                                            :::*     
LISTEN      0      128                                        127.0.0.1:631                                               *:*     
LISTEN      0      128                                              ::1:631                                              :::*     
LISTEN      0      100                                              ::1:25                                               :::*     
LISTEN      0      100                                        127.0.0.1:25                                                *:*     
LISTEN      0      128                                                *:53629                                             *:*     
LISTEN      0      128                                               :::10051                                            :::*     
LISTEN      0      128                                                *:10051                                             *:*     
LISTEN      0      50                                                 *:3306                                              *:*     
LISTEN      0      128                                               :::111                                              :::*     
LISTEN      0      128                                                *:111                                               *:*     
LISTEN      0      128                                               :::80                                               :::*     
ESTAB       0      0                                      192.168.1.125:22                                    192.168.1.105:3660  

[[email protected] ~]# ss -tan ‘( dport = :22 or sport = :22 )‘
State       Recv-Q Send-Q                                                   Local Address:Port                                                     Peer Address:Port 
LISTEN      0      128                                                                 :::22                                                                 :::*     
LISTEN      0      128                                                                  *:22                                                                  *:*     
ESTAB       0      64                                                       192.168.1.125:22                                                      192.168.1.105:3660

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

(1)rpm
安装
格式:rpm -i[option] PACKAGE_FILE
选项:
     -i:表示install安装
     -v -vv:表示显示安装过程,后者显示更加详细;
     -h:以#号显示进度条格式;
     -nodeps:忽略依赖关系
     -force:强制动作,注意安装成功后可能不能运行;
     -test:测试安装,作为测试检查
     -nosignature:不检查签名就是来源合法性;
     -nodigest:不检查包完整性;MD5头;
     -noscipts:不执行程序包脚本片断
     注意:rpm自带四类脚本
     %pre:安装前脚本;   -nopre
     %post:安装后脚本;  -nopost
       %preun:卸载前脚本; -nopreun
     %postun:卸载后脚本;-nopostun
 使用:
       rpm -ivh  PACKAGE_FILE
 
升级
格式: rpm -U|F[optIon] PACAGE_FILE  
选项:
     -U:表示不管软件事先是否存在都要升级,存在就升级,不存在就安装;
     -F:表示软件软件存在就升级,如何不存在,就放弃升级;
     -oldpackage:降级,如果升级之后发现有Bug或者兼容性问题,可以使用此选项回滚到升级前的版本;
     -force:强制动作,注意安装成功后可能不能运行;
     -replacepkgs:注意不能替换配置文件;
     注意:
        (1)不要对kernel做升级操作;支持多kernel并存;可以直接安装;
        (2)修改过的配置升级不会覆盖,升级同新文件,会重命名为file.rpmnew
 
查询:
格式:rpm -q[option] [PACKAGE-NAME|PACKAGE_FILE]
选项:
     -qa:查询系统所有已安装的程序包;
     -qf /path/to/file:查询文件是由那个程序包生成;
     -ql:查询程序生成的文件:
     -qi:查询程序属性信息;
     -qc:查询程序配置文件;
     -qd:查询程序提供的文档
     -q -whatprovides CAPABILITY(功能):查询这种CAPABILITY由那个程序提供;
     -q -whatrequires CAPABILITY:查询这种CAPABILITY被哪些程序包依赖;
     -q -scripts:查询程序包生成的脚本;
     -q -changelog:查询软件历史
     查询未安装的软件包信息,需要加-p选项跟上面的选项结合使用,后面的参数必须是PACKAGE_FILE;
     列如:
         -qpi:查询指定PACKAGE_FILE的程序属性信息;
 
卸载
格式:rpm -e[option] PACKAGE-NAME
选项:
     -vh:显示过程
     -nodeps:忽略依赖
     -noscripts:忽略脚本
     -allmatches:卸载所有匹配指定名称的程序包,也就是说卸载软件名称中包含此名称的所有包;
     -test:测试检查卸载,不是真卸载
 注意:
     卸载会检查依赖关系,如果卸载的软件被其他程序依赖,请谨慎卸载,否则导致其依赖程序无法运行;
      
使用:
       rpm -e  PACKAGE_FILE
  
校验
工作原理:校验检查的是软件包来源的合法性和完整性,要想对它们校验检查,必须要有校验机制,这种机制是根据签名和加密实现的,通常发行版的光盘中会有一个包含所有软件特征码的文件,特征码是根据软件包特征提取的,通过单项加密实现的用来校验软件包的完整性,如果软件包在获取途中被修改,在系统中再次提取软件包特征码,跟系统已有的特征码文件比对,不同则判断被攥该,修改过的软件包,根据相同的加密算法提取的特征肯定不同;来源合法性是根据签名实现的;特征码文件被称为公钥;校验是由校验程序完成的,默认rpm命令安装时会调用;
公钥获取:
      官方网站
      系统光盘
      系统配置文件中,这是系统在安装时从安装光盘复制进去的
        系统公钥位置:/etc/pik/rpm-gpg/RPM-GPG-KEY-CentOS-7
导入公钥:
         rpm -import /path/to/pub.key
校验软件:
         rpm -V PACKAGE-NAME:校验安装文件自安装后是否被修改过,根据PMS记录信息判断;
         rpm -K PACKAGE_FILE:对指定未安装的软件包进行手工校验;
 
数据库重建
默认数据库目录位置:/var/lib/rpm
语法格式:
       rpm -initdb     :初始化数据库
       rpm -rebuilddb  :重新构建
       -dbpath=/path/  :指定数据库创建位置;
       
(2)yum管理程序包,在使用前需配置yum仓库文件
repolist [all|enabled|disabled] 列出所有可用仓库
显示程序包:
# yum list [all | glob_exp1] [glob_exp2] [...]
# yum list {available|installed|updates} [glob_exp1] [...]
安装程序包:
install package1 [package2] [...]
升级程序包:
update package1 [package2] [...]
downgrade package1 [package2] [...](降级安装)
检查可用升级包:
check-update
卸载程序包:
remove | erase package1 [package2] [...]  有依赖关系的也会一同卸载
查看程序包信息:
yum info [...]
查看指定的特性(可以是某个文件)是有哪个程序包提供的:相当于rmp -qf
provides | whatprovides feature1 [feature2] [...]
清理本地缓存:
clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
生成本地缓存:
makecache
搜索:
search string1 [string2] [...]以指定关键字搜索程序包名及summary信息
重新安装:
reinstall package1 [package2] [...]
显示指定包所依赖关系包名:
deplist package1 [package2] [...]

(3)源码编译程序包管理
    	./configure:
        a.通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile
         b. 检查依赖到的外部环境

    	make:
    	根据makefile文件,构建应用程序
    make install

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

[[email protected]~]# mkdir /mnt/cdrom          ##新建文件夹作为挂载点使用
[[email protected]~]# mount /dev/cdrom /mnt/cdrom     ##将光盘挂载至文件夹
[[email protected]~]# cd /etc/yum.repos.d/        ##进入yum仓库配置文件夹
[[email protected] yum.repos.d]# vim CentOS-cdrom.repo  ##配置新的yum仓库文件
[cdrom]
name=CentOS 7.1 Release cdrom  # 名称
baseurl=file:///mnt/cdrom   # 路径 
enable=1   # 是否开启此yum仓库,默认开启。
gpgcheck=0  # 使用前是否检验包

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

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

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

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

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

[[email protected] bin]# vim SstopKstart.sh 
#!/bin/bash
#

export K=0
export S=0

for i in $(ls /etc/rc.d/rc3.d/K* | cut -d‘/‘ -f5);do
	echo "$i stop"
	let K=$K+1
done

for l in $(ls /etc/rc.d/rc3.d/S* | cut -d‘/‘ -f5);do
	echo "$l start"
	let S=$S+1
done

echo  "K开头的文件有$K 个;S开头的文件有$S 个。"
[[email protected] bin]# chmod +x SstopKstart.sh
[[email protected] bin]# SstopKstart.sh 
K50netconsole stop
KEQE stop
S10network start
K开头的文件有2 个;S开头的文件有1 个。
[[email protected] bin]#

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

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

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

[email protected] bin]# cat UserID.sh 
#!/bin/bash
#

export IDsum=0

for i in $*;do
   if id $i &> /dev/null ;then
       userid=$(id -u $i)
       echo "$i=$userid"
   else
       echo "user $i not found."
   fi
	let IDsum=$IDsum+$userid
done

echo "$* id sum $IDsum." 
[[email protected] bin]# chmod +x UserID.sh
[[email protected] bin]# UserID.sh centos mysql
centos=1000
mysql=3004
centos mysql id sum 4004.

14、写一个脚本

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

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

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

[[email protected] bin]# vim dirfile.sh 
#!/bin/bash
#
export dirsum=0
export filesum=0
if [ $# -le 1 ];then
   echo "please provide least one dir"
   exit 1
fi
for i in $*;do
if [ -d $i -a -x $i ];then
let dirsum+=$(ls -l $i | grep ^d |wc -l) 
let filesum+=$(ls -l $i | 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:$dirsum"
echo "the file sum:$filesum"
[[email protected] bin]# bash +x dirfile.sh /etc/ /var/
the directories sum:103
the file sum:119

15、写一个脚本

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

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

[[email protected] bin]# vim username.sh
#!/bin/bash
#

read -p "请给出用户:" username

if [ -z $username ]; then
	echo "用户名不能为空。"
	exit 1
fi

id $username &> /dev/null
if [ $? -eq 0 ];then
 	let ID=$(id -u $username)
	if [ $ID -ge 500 ];then
		echo "$username 为普通用户。"
	fi
else
	echo "用户名不存在,请给出有效用户名!"
fi
[[email protected] bin]# bash +x username.sh 
请给出用户:centos
centos 为普通用户。
[[email protected] bin]# bash +x username.sh 
请给出用户:mysql
mysql 为普通用户。
[[email protected] bin]# bash +x username.sh 
请给出用户:root
[[email protected] bin]#

16、写一个脚本

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

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

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

[[email protected] bin]# vim adduser.sh 
#!/bin/bash
#
export useraddsum=0
if [ ! $UID -eq 0 ]; then
	echo "Only root."
	exit 1
fi

for i in {1..10};do
	if id user$i &> /dev/null; then
		echo "user$i 用户已存在."
	else
		useradd user$i
		if [ $? -eq 0 ]; then
			echo "user$i" | passwd --sduin user$i &> /dev/null
			echo "Add user$i finished."
			let useraddsum+=1
		fi
	fi
done

         echo "共添加$useraddsum个用户。"
[[email protected] bin]# bash +x adduser.sh 
Add user1 finished.
Add user2 finished.
user3 用户已存在.
Add user4 finished.
Add user5 finished.
Add user6 finished.
Add user7 finished.
Add user8 finished.
Add user9 finished.
Add user10 finished.
共添加9个用户。

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

[[email protected] bin]# vim ping1.sh 
#!/bin/bash
#

for i in {20..100};do
	ping -c 1 -w 1 172.16.250.$i &> /dev/null
		if [ $? -eq 0 ];then
			echo "172.16.250.$i"
		fi
done
[[email protected] bin]# bash +x ping1.sh 
172.16.250.20
172.16.250.22
172.16.250.88
172.16.250.99

18、打印九九乘法表;

[[email protected] bin]# vim list.sh
#!/bin/bash
#

for i in {1..9};do
	for l in $(seq 1 $i);do
		let sum=$i*$l
		echo -e "${i}X${l}=$sum \c"
	done
	echo
done
[[email protected] bin]# bash +x list.sh 
1X1=1 
2X1=2 2X2=4 
3X1=3 3X2=6 3X3=9 
4X1=4 4X2=8 4X3=12 4X4=16 
5X1=5 5X2=10 5X3=15 5X4=20 5X5=25 
6X1=6 6X2=12 6X3=18 6X4=24 6X5=30 6X6=36 
7X1=7 7X2=14 7X3=21 7X4=28 7X5=35 7X6=42 7X7=49 
8X1=8 8X2=16 8X3=24 8X4=32 8X5=40 8X6=48 8X7=56 8X8=64 
9X1=9 9X2=18 9X3=27 9X4=36 9X5=45 9X6=54 9X7=63 9X8=72 9X9=81
时间: 2024-11-18 23:12:22

2016-10-16 第八周作业的相关文章

解题报告——-2018级2016第二学期第三周作业

解题报告——2018级2016第二学期第三周作业 A:[NOIP2002P]过河卒 题目: 描述 如图,A 点有一个过河卒,需要走到目标 B   点.卒行走规则:可以向下.或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点.例 如上图 C  点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C).卒不能通过对方马的控制点. 棋盘用坐标表示,A 点(0,0).B 点(n,m)(n,m 为不超过 20  的整数,并由键盘输入)

解题报告——2018级2016第二学期第五周作业排座椅

解题报告--2018级2016第二学期第五周作业 F:排座椅 描述 上课的时候总会有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来 之后,只有有限的D对同学上课时会交头接耳.同学们在教室中坐成了M行N列,坐在第i行第j列的同学的位置是(i,j),为了方便同学们进出,在教室中设 置了K条横向的通道,L条纵向的通道.于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅

解题报告—— 2018级2016第二学期第五周作业 删数问题

解题报告--  2018级2016第二学期第五周作业 删数问题 描述 键盘输入一个高精度的正整数n(<=240位),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小. 输入ns输出最后剩下的最小数样例输入 178543 4 样例输出 13 分析: 这题题目上已表明是贪心算法:原本最容易产生的错误贪心准则是删去其中最大的数字:但通过简单举例便可得之,这种贪心准则要漏洞:通过简单的计算举例发现如果这个数是一位比一位大的话

2017-2018-1 JAVA实验站 第八周作业

2017-2018-1 JAVA实验站 第八周作业 团队分工 UML 用例图 类图 活动图 状态图 工具选择 windows系统自带的画图软件 ProcessOn

2018-4-29 第八周作业

2018-4-29 第八周作业 网络攻防环境搭建 第八周作业: =网络攻防环境搭建 教材学习: 本次介绍了linux基本架构,Linux的远程攻防技术,Linux系统结构. 具体可以参考一下链接. =linux基本架构 =linux系统结构 kali视频课: SET工具的使用 嗅探欺骗,中间人攻击: 原文地址:https://www.cnblogs.com/nalanruntu/p/8970433.html

软件工程_东师站_第八周作业

一.PSP Date Type Job Start Interrupt(min) End Total(min) 20160417 助教 黄金点 20:00 5 21:00 55 20160418 助教 黄金点 19:00 12 21:00 108 20160419 助教 黄金点 18:45 100 23:00 155 20160420 助教 团队作业 10:00 35 11:20 45 20160425 结对编程 四则运算 19:00 5 19:30 25 ? 二.进度条 ? 代码行数 博客字数

软件项目与过程管理第八周作业

内容:软件项目与过程管理课程内容总结 经过八周时间的学习,软件项目与过程管理课程已经逐渐接近了尾声.通过这八周的学习,我对软件项目与过程管理课程有了更深的理解. 一.关于团队项目. 团队项目是本次软件项目与过程管理课程中最重要的一部分.我们团队项目是作业管理系统.在项目开发的整个过程中,我们在项目经理的带领下,项目团队的每一个成员团结合作.相互沟通,团队成员之间相互学习彼此的优点和技术,在每个成员的共同努力下,基本完成了此次软件开发项目. 通过这次团队项目, 我的总结如下: 1.在项目的开发过程

2017-2018-2 20179215《网络攻防实践》第八周作业

<网络攻防实践> 第八周 学习总结 一.第八章教材内容总结 Linux 操作系统简介 Linux 系统特点: 兼容UNIX :API 兼容,管理命令和各种工具: 源码开放 支持各种硬件平台,支持多CPU Linux 平台上存在大量的应用软件,以及应 用开发工具 多种不同发行版: RedHat(RHEL,Fedora, CentOS, -),Ubuntu,Debian, - 2.Linux 操作系统: 不是微内核系统,但具有某些微内核特征 Intel 版本:i386 的保护模式,特权级 内核态(

软件过程与项目管理第八周作业

软件过程与项目管理第8周作业 关于未来实体商城会不会消失的问题 现在网上购物.电子商务越来越流行.普遍,极大的方便了大众的生活,同时也给实体店带来巨大的压力.尽管如此,我认为实体商城不会有消失的那天. 不管未来物流达到如何发达的程度,实体商城仍然有其不可取代的价值.下面就举几个例子: 比如说服装店,虽然说在网上买衣服可以足不出户,也不用考虑天气.但对于很多女孩子来说,逛街(绝大部分是在逛服装店)绝不是为了单纯的去买衣服,也有很多人很享受逛的这个过程,试衣服的过程,或者和同伴消磨休闲时间,促进感情

马哥2016全新Linux+Python高端运维班第八周作业

1.请描述网桥.集线器.二层交换机.三层交换机.路由器的功能.使用场景与区别. 答: 网桥:双端口的二层设备,可以隔离冲突域,一般用于划分LAN,或者链接LAN. 集线器:物理层设备,多端口,无法隔离冲突域,用于连接主机. 二层交换机:数据链路层设备,多端口,与网桥相比,交换机可学习MAC地址,根据MAC地址转发数据,可隔离冲突域,用于在路由设备与主机之间架设,接入层与汇聚层皆可使用. 三层交换机:相当于是带路由功能的二层交换机,工作在网络层,有更高的带宽,可做核心层使用,用于大中型网络的路由交