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.www58058.com/52870