1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
集线器:工作于物理层,实现设备的接入,数据信号放大、中转,共享信道。
网桥:工作于数据链路层,实现多个lan之间数据的转发,隔离冲突域,类似二层交换机
二层交换机:工作于数据链路层,可连接多个lan,根据帧的mac来转发数据,隔离冲突域,端口较多。
三层交换机:工作于二、三层,可连接多个网段,实现数据包路由,实现部分路由器功能
路由器:工作于网络层,实现不同网段数据的转发,隔离广播域,多应用于广域网
2、IP地址的分类有哪些?子网掩码的表示形式及其作用
A类 01开头,0~127 默认掩码:255.0.0.0
B类 10开头,128~191 默认掩码:255.255.0.0
C类 110开头,192~223 默认掩码:255.255.255.0
D类 1110,组播地址,224~239
E类 11110,保留地址,240~255
子网掩码作用:用于计算出IP地址的网络位
3、计算机网络的分成模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
(1)osi七层模型和tcp/ip模型
(2)每层功能:
物理层:在物理媒体上传输原始的数据比特流。
数据链路层:将数据分成一个个数据帧,以数据帧为单位传输。有应有答,遇错重发。
网络层:将数据分成一定长度的分组,将分组穿过通信子网,从信源选择路径后传到信宿。
传输层:提供不具体网络的高效、经济、透明的端到端数据传输服务。
会话层:进程间的对话也称为会话,会话层管理不同主机上各进程间的对话。
表示层: 为应用层进程提供格式化的表示和转换数据服务。
应用层:提供应用程序访问OSI环境的手段。
(3)网络接口层:网络适配器、网络介质,交换机;网络层:路由器、三层交换机;传输层:;应用层。
(4)ISO/OSI参考模型与TCP/IP协议模型中各层的对应关系:
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
(1)编辑网络配置文件 vim /etc/sysconfig/network-scripts/ifcfg-ethX
(2)配置内容:
DEVICE=ethN
BOOTPROTO=none
HWADDR=xxx
ONBOOT=yes
TYPE=Ethernet
UUID="92fbbbe5-2f41-4c26-a4c2-f3c3a7e1ece8"
USERCTL=no
IPADDR=xxx
NETMASK=xxx
GATEWAY=xxx
5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
(1)命令:ifconfig device ip/netmask ;ip addr { add | del } IFADDR dev STRING
(2)图形配置:setup或nmtui
(3)编辑配置文件:vim /etc/sysconfig/network-scripts/ifcfg-ethX
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;在线的主机使用绿色显示;不在线的主使用红色显示;
#!/bin/bash
#
declare -i i
ip=172.16.250
for i in $(seq 1 254);do
if ping -c 1 -w 1 $ip.$i &> /dev/null;then
echo -e "\033[32m $ip.$i:host is up \033[0m"
else
echo -e "\033[31m $ip.$i:host is down \033[0m"
fi
done
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;
DEVICE=eth# —》设备名称
BOOTPROTO=none —》dhcp表示动态获取IP;static或none表示静态IP
HWADDR=00:0c:29:52:59:e1 —》该网卡的mac
IPV6INIT=no —》ipv6是否开启
NM_CONTROLLED=no —》是否开启nm管理
ONBOOT=yes —》该网卡是否开机启动
TYPE=Ethernet —》网卡网络的类型为以太网
UUID="92fbbbe5-2f41-4c26-a4c2-f3c3a7e1ece8" —》网卡的UUID标识
USERCTL=no —》是否允许普通用户编辑
IPADDR=10.0.0.219 —》ip地址
NETMASK=255.255.255.0 —》掩码
GATEWAY=10.0.0.1 —》网关
DNS# —》dns
8、如何给网络接口配置多个地址,有哪些方式?
(1)临时有效。命令:ifconfig eth#:# 10.0.0.221 netmask 255.255.255.0 /ifconfig eth#:# 10.0.0.222/24
ip addr add 10.0.0.225/24 dev eth#
(2)永久有效。配置文件:vim /etc/sysconfig/network-scripts/ifcfe-eth#:#
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
ip、ifconfig:配置或查看系统IP情况
netstat:查看当前系统的网络链接。如:netstat -tuanp
ss:类型与netstat功能
route:查看或添加路由。route -n ;route add -net|host ip netmask mask gw gateway dev eth#
dig/nslookup/host等
10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。
安装:rpm -ivh XXX.rpm
升级:rpm -Uvh xxx/rpm –>后面接的套件若没有安装过,则系统将直接安装。
rpm -Fvh xxx.rpm –>后面接的套件若没有安装过,则该套件不会安装。
卸载:rpm -e xxx.rpm
11、如何使用发行版光盘作为yum repository,请描述该过程。
(1)挂载光盘至/mnt
(2)开始配置本地yum,yum源为光盘
# cd /etc/yum.repos.d/
# mv CentOS-Base.repo CentOS-Base.repo.bak
# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever-Media
baseurl=file:///mnt
gpgcheck=1
enabled=1
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-6
(3)验证是否yum源是否成功:yum repolist c6-media
12、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
#!/bin/bash
#
for file in $(ls /etc/rc.d/rc3.d/);do
if [[ $file == K* ]];then
echo "K start:${file}stop"
let sum1++
elif [[ $file == S* ]];then
echo "S start:${file}start"
let sum2++
fi
done
echo "Number of files at the beginning of K:$sum1"
echo "Number of files at the beginning of S:$sum2"
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/bash
#
declare -i sum=0
declare -i id=0
read -t 30 -p "input username here:" -a uname
echo "===================="
[ "${uname[*]}" == "" ]&&echo "users is empty"&&exit 1
for i in $(seq 0 $[${#uname[@]}-1]);do
if id ${uname[$i]} &> /dev/null;then
id=$(cat /etc/passwd | grep "^${uname[$i]}\>" |cut -d":" -f3)
let sum+=$id
else
echo "user:${uname[$i]} do not exist"
fi
done
echo "====================="
echo "all users id sum:$sum"
14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
15、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bash
#
if [ $# -gt 0 ];then
for i in $(seq 1 $#);do
if id ${!i} &>/dev/null&&[ $(cat /etc/passwd |egrep "^${!i}\>" |cut -d":" -f3) -ge 500 ];then
echo "user:${!i} is common user "
elif id ${!i} &>/dev/null&&[ $(cat /etc/passwd |egrep "^${!i}\>" |cut -d":" -f3) -lt 500 ];then
echo "user:${!i} is sys user"
else
echo "user:${!i} is not exsit"
fi
done
else
echo "usage:username.sh user1 user2 …"
fi
16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;
#!/bin/bash
#
function adduser {
if id $1 &> /dev/null;then
echo "$1 is exist!"
else
useradd $1 &&echo $1 |passwd –stdin $1 &>/dev/null
[ $? -eq 0 ] && echo "Add $1 finished." && let sum++ && return 0
fi
}
for i in {1..10};do
adduser user$i
done
echo "add user sum:$sum"
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/bash
#
declare -i i
ip=172.16.250
for i in $(seq 20 100);do
if ping -c 1 -w 1 $ip.$i &> /dev/null;then
echo -e "\033[32m $ip.$i:host is up \033[0m"
fi
done
18、打印九九乘法表;
#!/bin/bash
#
for j in {1..9};do
for i in $(seq 1 $j);do
echo -n -e "${i}X${j}=$[$i*$j]\t"
done
echo
done
原创文章,作者:snow,如若转载,请注明出处:http://www.178linux.com/20449
评论列表(1条)
写的很好,可以多注意一下排版问题,加油