您的位置:首页 > 运维架构 > Linux

【linux基础】第八周作业

2016-10-03 17:04 302 查看
1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
网桥
集线器
二层交换机
三层交换机
路由器
功能

连接连个不同的网段
多端口的中继器,数据信号广播转发
工作在数据链路层,数据寻址交换
工作在网络层,具有转发功能
NAT,网关设备,用于分割网络
使用场景
正在退出
信号整合放大
局域网内部
局域网内部
局域网到互联网入口
区别
功能不同且工作在不同的层次和场景
2、IP地址的分类有哪些?子网掩码的表示形式及其作用
范围子网掩码
形式作用
A
1.0.0.0-126.255.255.255
*/8或255.0.0.0
10.0.0.0-10.255.255.255局域
B
128.0.0.0-191.255.255.255
*/16或255.255.0.0
127.0.0.1专用,局域
172.16.0.0-172.31.255.255
C
192.0.0.0-223.255.255.255
*/24或255.255.255.0
192.168.0.0/24局域
D
224.0.0.0-239.255.255.255
组播
MASK将IP划分为网络ID和主机ID
E
多播保留地址
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
OSITCP/IP功能设备
应用层应用层人机交互接口
网络管理软件
表示层接收来自应用层的动作,并处理成机器指令传递给会话层
会话层为两个实体的表示层提供建立和使用连接的方法
传输层传输层会话层和网络层之间的传输
网络层网络层建立维持和终止网络连接
路由器
数据链路层物理接口建立和管理节点间的链路
交换机,网桥
物理层为网络连接提供物理介质
网线,网卡,中继器
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
1)物理连接,通过RJ45网线或者光纤连接linux主机和互联接入端;2)设置IP地址3)设置子网掩码4)设置网关5)设置主DNS服务器,从DNS服务器,备用DNS服务器6)重新加载网络服务
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes #开机启动
BOOTPROTO=static #手动指定IP地址
IPADDR=192.168.1.77
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
[root@localhost ~]# service network restart
[root@localhost ~]# vi /etc/resolv.conf
nameserver 8.8.8.8 #添加DNS


5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
1)使用命令ifconfig eth0 192.168.1.77  临时立即生效,重启系统后失效
2)修改网卡配置 vim /etc/sysconfig/network-scripts/ifcfg-eth0 需要重启后生效
3)使用图形界面 setup--网络配置  修改后重启服务
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
在线的主机使用绿色显示;
不在线的主使用红色显示;
#!/bin/bash
#v0.1
#lanlin789@qq.com
net=172.16.150.
let online=0
let notonline=0
for i in {1..254};do
if (ping $net$i &> /dev/dull);then
let online+=1
echo -e “\e[1;32m $net$i \e[0m”
else
let notonline+=1
echo -e “\e[1;31m $net$i \e[0m”
fi
done
echo “online hosts  :$online”
echo  “not online hosts :$notonline”

7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;
CentOS6配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"        <网卡号,和ifcfg-eth0对应就可以>
HWADDR="08:00:27:1C:81:0A"  <网卡的MAC地址>
ONBOOT="yes"         <在系统引导时是否激活此设备>
BOOTPROTO=none        <手动设置IP选择none,自动获取选dhcp>
USERCTL="yes"         <普通用户是否可控制此设备>
IPADDR=192.168.1.100     <设定本网卡IP地址>
NETMASK=255.255.255.0    <子网掩码>
GATEWAY=192.168.1.1      <网关地址>
DNS1=211.67.32.32       <首选DNS地址>
DNS2=202.103.44.150      <次选DNS地址>
CentOS 7 配置文件
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
UUID="7a4d0a76-affb-42ab-b47c-4b548237c5ff"
DEVICE="eno16777736"
ONBOOT="yes"
8、如何给网络接口配置多个地址,有哪些方式?
配置网络别名 ifconfig eth0:1 192.168.1.77
新建eth0:0配置文件

vim /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
IPADDR=192.168.1.77 NETMASK=255.255.255.0 ONBOOT=yes

9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
ip [addr|route|link] 设置地址路由链接ifconfig查看当前网络连接
[root@localhost ~]# ifconfig
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
inet 10.2.11.194  netmask 255.255.255.0  broadcast 10.2.11.255
inet6 fe80::20c:29ff:fea6:a732  prefixlen 64  scopeid 0x20<link>
ether 00:0c:29:a6:a7:32  txqueuelen 1000  (Ethernet)
RX packets 49848  bytes 50749094 (48.3 MiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 32761  bytes 3468601 (3.3 MiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
inet 127.0.0.1  netmask 255.0.0.0
inet6 ::1  prefixlen 128  scopeid 0x10<host>
loop  txqueuelen 0  (Local Loopback)
RX packets 808  bytes 90300 (88.1 KiB)
RX errors 0  dropped 0  overruns 0  frame 0
TX packets 808  bytes 90300 (88.1 KiB)
TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

netstat 和ss 查看各种网络服务连接状态
[root@localhost ~]# netstat -tuan
#-t<tcp>,-u<udp>,-a<all>,-n<numeric>,-l<listening>,... ...
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN
tcp        0      0 10.2.11.194:22          10.2.11.26:52998        ESTABLISHED
tcp        0     52 10.2.11.194:22          10.2.11.26:52980        ESTABLISHED
tcp6       0      0 :::22                   :::*                    LISTEN
tcp6       0      0 ::1:25                  :::*                    LISTEN
udp        0      0 0.0.0.0:48559           0.0.0.0:*
udp        0      0 0.0.0.0:68              0.0.0.0:*
udp6       0      0 :::40698                :::*

route 路由相关信息
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.2.11.1       0.0.0.0         UG    100    0        0 eno16777736
10.2.11.0       0.0.0.0         255.255.255.0   U     100    0        0 eno16777736

setup 图形管理界面 10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。
rpm 包管理(原Redhat Packages Manager,RPM Packages Manager)
rpm -qa 查看所有已安装的包
rpm -qf Package 查找包
安装:rpm -ivh Package(-i安装,-v显示正在处理的文件,-h显示进度)
升级:rpm -uvh Package;此包为升级程序的升级补丁
卸载:rpm -e Package
查找已安装中损坏的程序:rpm -Va;可以通过安装光盘中的包进行修复操作。(-V验证)
--force 强制执行
--requires 显示包的依赖关系
--nodeps 忽略依赖关系继续执行
yum 包管理(Yellow dog Updater Modified)
安装:yum install package_name
升级:yum update package_name
卸载:yum remove package_name
查看:yum repolist仓库
yum grouplist 包组
yum list 所有包 11、如何使用发行版光盘作为yum repository,请描述该过程。
1)挂载光盘:mount /media/cdrom /tmp/contos6.8 2)编辑配置文件:vim /etc/yum.repo.d/*.repo [CentOS-localrepo] name = contos-localrepo baseurl=file:///tmp/contos6.8/Packages gpgcheck=0 enabled=1 3)更新yum并使配置生效 yum clean all 12、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
#!/bin/bash
#
let s=0
let k=0
for i in `ls /etc/rc.d/rc3.d/|sed -n  's/^K/stop&/p'`;do
echo $i
k+=1
done
for j in `ls /etc/rc.d/rc3.d/|sed -n  's/^S/start&/p'`;do
echo $j
s+=1
done
echo "S files:$s"
echo "K files:$k"


[root@localhost ~]# bash sknum.sh
stopK50netconsole
startS10network
S files:01
K files:01


13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/bash
#
let idnum=0
for i in $*;do
id -u $i &> /dev/null
if [ $? -ne 0 ] ;then
echo "$i not exist"
else
let idnum+=`id -u $i`
fi
done
echo "all user_id add:$idnum"

[root@localhost ~]# bash userid.sh lanin named mysql sshd ll
ll not exist
all user_id add:1126


14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
#!/bin/bash
#
let idnum=0
for i in $*;do
id -u $i &> /dev/null
if [ $? -ne 0 ] ;then
echo "$i not exist"
else
let idnum+=`id -u $i`
fi#!/bin/bash
#
let idnum=0
for i in $*;do
id -u $i &> /dev/null
if [ $? -ne 0 ] ;then
echo "$i not exist"
else
let idnum+=`id -u $i`
fi
done
echo "all user_id add:$idnum"

done
echo "all user_id add:$idnum"


15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bash
#
if  [ $# -lt 1 ];then
echo "Input a user name at least!"
fi
for i in $*;do
id -u $i &> /dev/null
if [ $? -ne 0 ] ;then
echo "$i not exist"
elif [ `id -u $i` -lt 500 ];then
echo "$i is system user"
else
echo "$i is common user"
fi
done


[root@localhost ~]# bash  usercommon.sh  apache lanin root
apache is system user
lanin is common user
root is system user


16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;
#!/bin/bash
#
user=user
declare -i num=0
for i in {1..10};do
if ( id -u $user$i &> /dev/null ) ;then
continue
else
echo "adding $user$i ..."
useradd $user$i
echo "$user$i" | passwd --stdin $user$i &> /dev/null
num+=1
echo "added $user$i finished."
fi
done
echo "addusers number:$num"


[root@localhost ~]# bash useradd.sh
adding user1 ...
added user1 finished.
adding user2 ...
added user2 finished.
adding user3 ...
added user3 finished.
adding user4 ...
added user4 finished.
adding user5 ...
added user5 finished.
adding user6 ...
added user6 finished.
adding user7 ...
added user7 finished.
adding user8 ...
added user8 finished.
adding user9 ...
added user9 finished.
adding user10 ...
added user10 finished.
addusers number:10


17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/basj
#v0.1
net=172.16.250.
let online=0
echo "正在执行......"
for i in {20..100};do
if ( ping -c 1 -w 1 $net$i &> /dev/dull );then
let online+=1
echo -e "\e[1;32m $net$i \e[0m"
fi
done
echo "online hosts  :$online"


linux下禁ping方法:
~]#echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
这样就可以禁ping了。如果想恢复ping可以执行命令
~]#echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

18、打印九九乘法表;
[root@localhost ~]# cat  jiujiu.sh
#!/bin/bash
#
for i in {1..9};do
for j in $(seq 1 $i);do
echo  -ne "$j*$i=$[$j*$i]\t"
done
echo
done


[root@localhost ~]# bash  jiujiu.sh
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6  3*3=9
1*4=4 2*4=8  3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐