1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。
网桥:是连接两个局域网的基于MAC地址数据存储转发设备,工作于数据链路层
集线器:所有端口处于同一个广播域和冲突域中,带宽共享,工作于物理层
二层交换机:多端口网桥,一个端口一个冲突域,默认所有端口位于同一个广播域中,可以划分vlan,隔离广播域,带宽独享
三层交换机:具有路由功能的二层交换机
路由器:连接不同网段的设备,负责不同网段之间数据通信
二层交换机一般用于接终端设备,三层交换机用于汇聚层,核心层,路由器用于不同网段之间数据通信
2、IP地址的分类有哪些?子网掩码的表示形式及其作用
3、计算机网络的分层模型有哪些(OSI模型和TCP/IP模型),每一层的功能及涉及到的物理设备有哪些。
4、如何将Linux主机接入到TCP/IP网络,请描述详细的步骤。(手动指定的方式)
1.ifconfig 查看网卡信息,此处以eth0为例
2.用命令指定主机IP地址:ifconfig eth0 XXX.XXX.XXX.XXX/XX,此命令即时生效
3.编辑/etc/sysconfig/network-scripts/ifcfg-eth0文件,使之重启之后永久有效
TYPE=Ethernet DEVICE=eth0 NAME="eth0" BOOTPROTO=none ONBOOT=yes IPADDR=X.X.X.X NETMASK=X.X.X.X GATEWAY=X.X.X.X DNS1=X.X.X.X
5、为Linux主机配置网络信息的方式有哪些,请描述各个过程。
1.通过修改配置文件的方式,重启之后使之永久有效,方法有2种:
(1)使用GUI界面的方式,使用以下命令启用
CentOS6:setup命令
CentOS7:nmtui命令
(2)通过修改网络配置文件
/etc/sysconfig/network-scripts/ifcfg-IFACE :用来设定IP|NETMASK|GW|DNS等属性的配置文件
/etc/sysconfig/networkj-scripts/route-IFACE:用来设定路由的相关配置文件
/etc/sysconfig/network-scripts/ifcfg-IFACE_LABEL:用来为网卡添加额外IP地址,并永久有效
2.通过命令的方式,临时生效
(1)ifconfig 语法格式:ifconfig interface IP netmask NETMASK
示例:
ifconfig eth1 192.168.10.100 netmask 255.255.255.0
(2)route命令,修改路由信息
示例:
route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth0
6、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态;
(1)在线的主机使用绿色显示;
(2)不在线的主使用红色显示;
#!/bin/bash#for i in {1..254};do if ping -w1 172.16.250.$i &>/dev/null ;then echo -e "\033[31m 11.11.11.$i\033[0m" else echo -e "\033[32m 11.11.11.$i\033[0m" fidone
7、详细描述每个网络接口的配置文件中各个参数的含义和其所对应的值;
示例内容解析:/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0" #关联的设备名称,要与文件名的后半部“INTERFACE_NAME”保持一致 BOOTPROTO="dhcp" #引导协议,一般的取值为{static|none|dhcp|bootp}:静态地址static|none; HWADDR="00:1C:42:15:8C:28" #设备的MAC地址; IPV6INIT="yes" #是否初始化IPv6; NM_CONTROLLED="yes" ONBOOT="yes" #在系统引导过程中,是否激活此接口; TYPE="Ethernet" UUID="4f2e9a9f-e70e-4da4-a606-388600e79eb2" #此设备的惟一标识;
8、如何给网络接口配置多个地址,有哪些方式?
1.ip命令
ip addr add IFADDR dev IFACE [label NAME]
示例:ip addr add 192.168.100.10/24 dev eth1 label eth1:0
2.ifconfig命令
ifconfig IFACE_LABEL IPADDR/NETMASK
3.修改配置文件,用来为网卡添加额外IP地址,并永久有效
/etc/sysconfig/network-scripts/ifcfg-IFACE_LABEL
9、常用的网络管理类工具有哪些,并用示例形式描述他们的使用方法。
-
ifcfg家族
-
ifconfig命令
-
语法格式1:ifconfig [-a] [interface]
-
语法格式2:ifconfig interface [aftype] options | address …
-
语法格式3:ifconfig IFACE_LABEL IPADDR/NETMASK
-
route命令:路由查看及管理命令
-
语法格式1:route [option]
-
语法格式2:route add|del [-net|-host] target [netmask Nm] [gw GW] [[dev] If]
-
netstat命令
-
常用语法格式1:netstat -rn 显示路由表信息
-
常用语法格式2:netstat [–tcp|-t] [–udp|-u] [–udplite|-U] [–sctp|-S] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p]
-
常用语法格式3:netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–verbose|-v] [–program|-p] [–numeric|-n]
-
ifup | ifdown命令
-
hostname命令
-
语法格式:hostname HOSTNAME
-
hostnamectl命令:CentOS 7下的命令
-
语法格式:hostnamectl [OPTIONS…] {COMMAND}
10、Linux系统软件包管理方法(安装、升级、卸载等操作)有哪些,以及如何管理的。
工具1:rpm命令
-
通用选项:
-
安装:-i|–install
-
升级:-U|–upgrade,-F|–freshen
-
卸载:-e|–erase
-
查询:-q|–query
-
校验:-V|–verify ###工具2:yum命令
-
通用选项:
-
install package1 [package2] […] 安装程序包
-
update [package1] [package2] […] 升级程序包
-
check-update 检查可用升级包
-
remove | erase package1 [package2] […] 卸载程序包
-
list […] 显示程序包
-
info […] 查看程序包信息
11、如何使用发行版光盘作为yum repository,请描述该过程。
1.挂载光盘至/media/cdrom
2.创建/etc/yum.repos.d/cdrom.repo
[centos7] name=cdrom baseurl=file:///media/cdrom gpgcheck=1 enabled=1
12、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干;
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串;
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串;
(4) 分别统计S开头和K开头的文件各有多少;
#!/bin/bash declare -i m declare -i s m=0 s=0 for i in `ls /etc/rc.d/rc3.d/ | grep "^[S]"`;do mv /etc/rc.d/rc3.d/$i /etc/rc.d/rc3.d/${i}start s+=1 done for h in `ls /etc/rc.d/rc3.d/ | grep "^[K]"`;do mv /etc/rc.d/rc3.d/$h /etc/rc.d/rc3.d/${h}stop m+=1 done echo "K* have $m files,S* have $s"
13、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数;
(2) 计算此些用户的ID之和;
#!/bin/bash#declare -a usernamedeclare -i idsumdeclare -i argnum idsum=0read -p "please input username:" -a username argnum=${#username[*]}if [ $argnum -eq 1 ];then useradd ${username[0]} echo "idsum $(id -u ${username[0]})"else for i in `seq 0 1 $[$argnum-1]`;do useradd ${username[$i]} idsum+=$(id -u ${username[$i]}) done echo $idsumfi
14、写一个脚本
(1) 传递一些目录给此脚本;
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型;
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型;
#!/bin/bash#argnum=$# ls -al $* sumtype=$(ls -l $* | grep -o -E "^([a-z]|[-])"| sort -u | wc -l) sumdir=$(ls -l $* | grep -o "^d" | wc -l)echo "sumtype $sumtype"echo "sumdir $sumdir"
15、写一个脚本
(1)通过命令行传递一个参数给脚本,参数为用户名
(2)如果用户的id号大于等于500,则显示此用户为普通用户;
#!/bin/bash if [ $(id -u $1) -ge 500 ];then echo "normal user" fidone
16、写一个脚本
(1) 添加10用户user1-user10;密码同用户名;
(2) 用户不存在时才添加;存在时则跳过;
(3) 最后显示本次共添加了多少用户;
#!/bin/bash#declare -i sum sum=0for i in {1..10};do if id user$i &>/dev/null ;then continue else useradd user$i echo "user$i" | passwd --stdin user$i sum+=1 fidoneecho "newadd $sum users" I
17、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来;
#!/bin/bash#for i in {20..100};do if ping -w 1 172.168.250.$i ;then echo "172.168.250.$i online" fidone
18、打印九九乘法表;
#!/bin/bash#for i in {1..9};do for j in $(seq 1 $i);do let sum=($i * $j) echo -n -e "${j}x${i}=$sum\t" done echodone
原创文章,作者:N22-武汉-enfp,如若转载,请注明出处:http://www.178linux.com/52870