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-em1文件,使之重啓之後永久有效
Centos7
/etc/sysconfig/network-scripts/ifcfg-eth0
1 TYPE=Ethernet
2 BOOTPROTO=none
3 DEFROUTE=yes
4 PEERDNS=yes
5 PEERROUTES=yes
6 IPV4_FAILURE_FATAL=no
7 IPV6INIT=yes
8 IPV6_AUTOCONF=yes
9 IPV6_DEFROUTE=yes
10 IPV6_PEERDNS=yes
11 IPV6_PEERROUTES=yes
12 IPV6_FAILURE_FATAL=no
13 NAME=em1
14 UUID=302b3278-f774-4d5e-99cb-69ccc7c66dfd
15 DEVICE=em1
16 ONBOOT=yes
17 IPADDR=192.168.1.252
18 NETMASK=255.255.255.0
19 GATEWAY=192.168.1.1
ubuntu系統:
Unb
auto lo
iface lo inet loopback
auto em1
iface em1 inet static
address 192.168.1.118
netmask 255.255.255.0
gateway 192.168.1.1
重啓:
/etc/init.d/networking restart
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 #!/bin/bash
2 #
3 for i in `seq 254`;do
4 if ping -c 1 -W1 172.16.250.$i &> /dev/null;then
5 echo -e “\033[32m 172.16.250.$i is online. \033[0m”
6 else
7 echo -e “\033[31m 172.16.250.$i is not online. \033[0m”
8 fi
9 done
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,請描述該過程。
掛載光盤:mount /dev/cdrom /mnt/cdrom
創建:vim /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”
[root@hiall2016 /]# bash 12.sh
K* have 1 files,S* have 37
[root@hiall2016 /]#
13、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作爲參數;
(2) 計算此些用戶的ID之和;
1 #!/bin/bash# 2 declare -a username 3 declare -i idsum 4 declare -i argnum 5 idsum=0 6 read -p “please input username:” -a username 7 argnum=${#username[*]} 8 if [ $argnum -eq 1 ];then 9 useradd ${username[0]} 10 echo “idsum $(id -u ${username[0]})”else 11 for i in `seq 0 1 $[$argnum-1]`;do 12 useradd ${username[$i]} 13 idsum+=$(id -u ${username[$i]}) 14 done 15 echo $idsumfi 16 fi
[root@hiall2016 /]# bash 13.sh
please input username:user2
useradd: user ‘user2’ already exists
idsum 1024else
useradd: user ‘user2’ already exists
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”
[root@hiall2016 /]# bash 14.sh
total 8980488
dr-xr-xr-x. 19 root root 4096 Oct 24 22:34 .
dr-xr-xr-x. 19 root root 4096 Oct 24 22:34 ..
-rw-r–r–. 1 root root 197 Oct 24 22:34 14.sh
-rw-r–r–. 1 root root 83 Oct 24 22:29 15.sh
-rw-r–r–. 1 root root 12288 Oct 24 22:31 .15.sh.swo
-rw-r–r–. 1 root root 4096 Oct 24 22:29 .15.sh.swp
-rw-r–r–. 1 root root 237 Oct 24 22:22 16.sh
-rw-r–r–. 1 root root 4096 Oct 24 22:29 .16.sh.swn
-rw-r–r–. 1 root root 12288 Oct 24 22:28 .16.sh.swo
-rw-r–r–. 1 root root 12288 Oct 24 22:23 .16.sh.swp
-rw-r–r–. 1 root root 123 Oct 24 22:14 17.sh
-rw-r–r–. 1 root root 12288 Oct 24 22:15 .17.sh.swo
-rw-r–r–. 1 root root 4096 Oct 24 22:13 .17.sh.swp
drwxr-xr-x. 15 tomcat tomcatkzxj 4096 Aug 24 17:29 application
———-. 1 root root 820643840 Apr 8 2016 application1.tar.gz
———-. 1 root root 930647378 Aug 17 17:25 application20160815.tar.gz
———-. 1 root root 2699038778 Sep 5 10:12 application20160905.tar.gz
-rw-r–r–. 1 root root 3823343978 Oct 24 17:18 application20161024.tar.gz
———-. 1 root root 912977920 Apr 11 2016 application2016.4.11.tar.gz
-rw-r–r–. 1 root root 176 Oct 24 11:22 a.sh
-rw-r–r–. 1 root root 12288 Oct 24 22:13 .a.sh.swo
-rw-r–r–. 1 root root 12288 Oct 24 22:10 .a.sh.swp
lrwxrwxrwx. 1 root root 7 Mar 11 2016 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 Mar 11 2016 boot
-rw-r–r–. 1 root root 235 Oct 24 16:45 b.sh
-rw-r–r–. 1 root root 12288 Oct 24 22:14 .b.sh.swp
-rw-r–r–. 1 root root 158 Oct 24 22:08 cf.sh
-rw-r–r–. 1 root root 12288 Oct 24 22:09 .cf.sh.swp
-rw-r–r–. 1 root root 134 Oct 24 16:38 c.sh
-rw-r–r–. 1 root root 4096 Oct 24 22:09 .c.sh.swp
drwxr-xr-x. 5 root root 102 Aug 19 10:14 data
drwxr-xr-x. 19 root root 3240 Oct 17 14:18 dev
drwxr-xr-x. 78 root root 8192 Oct 24 22:22 etc
-rw-r–r–. 1 root root 315 Oct 23 20:26 grep.txt
drwxr-xr-x. 37 root root 4096 Oct 24 22:22 home
lrwxrwxrwx. 1 root root 7 Mar 11 2016 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Mar 11 2016 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Aug 12 2015 media
drwxr-xr-x. 3 root root 18 Oct 24 16:56 mnt
drwxr-xr-x. 2 root root 6 Aug 12 2015 opt
dr-xr-xr-x. 284 root root 0 Aug 17 11:43 proc
-rw-r–r–. 1 root root 16751 Aug 17 11:44 .readahead
dr-xr-x—. 7 root root 4096 Oct 24 22:34 root
drwxr-xr-x. 23 root root 600 Oct 24 16:51 run
lrwxrwxrwx. 1 root root 8 Mar 11 2016 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Aug 12 2015 srv
dr-xr-xr-x. 13 root root 0 Aug 17 11:43 sys
-rw-r–r–. 1 root root 0 Aug 14 23:00 test
-rw——-. 1 root root 1651 Aug 14 22:39 test2
-rwxrwxrwx. 1 root root 242 Oct 23 21:57 test.sh
drwxrwxrwt. 12 root root 4096 Oct 24 19:17 tmp
-rw-r–r–. 1 root root 9128610 Mar 11 2016 tools
drwxr-xr-x. 14 root root 4096 Mar 15 2016 usr
drwxr-xr-x. 20 root root 4096 Aug 17 11:43 var
sumtype 4echo sumdir 17
15、寫一個腳本
通過命令行傳遞一個參數給腳本,參數爲用戶名
如果用戶的id號大於等於500,則顯示此用戶爲普通用戶;
腳本:
#!/bin/bash if [ $(id -u $1) -ge 500 ];then echo “normal user” fidone
16、寫一個腳本
(1) 添加10用戶user1-user10;密碼同用戶名;
(2) 用戶不存在時才添加;存在時則跳過;
(3) 最後顯示本次共添加了多少用戶;
腳本:
#!/bin/bash# #16.sh declare -i sum sum=0 for 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 fi done echo “newadd $sum users”
[root@hiall2016 /]# bash 16.sh
Changing password for user user2.
passwd: all authentication tokens updated successfully.
Changing password for user user3.
passwd: all authentication tokens updated successfully.
Changing password for user user4.
passwd: all authentication tokens updated successfully.
Changing password for user user5.
passwd: all authentication tokens updated successfully.
Changing password for user user6.
passwd: all authentication tokens updated successfully.
Changing password for user user7.
passwd: all authentication tokens updated successfully.
Changing password for user user8.
passwd: all authentication tokens updated successfully.
Changing password for user user9.
passwd: all authentication tokens updated successfully.
Changing password for user user10.
passwd: all authentication tokens updated successfully.
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” fi done
[root@hiall2016 /]# bash 17.sh
PING 172.168.250.20 (172.168.250.20) 56(84) bytes of data.
— 172.168.250.20 ping statistics —
2 packets transmitted, 0 received, 100% packet loss, time 999ms
PING 172.168.250.21 (172.168.250.21) 56(84) bytes of data.
— 172.168.250.21 ping statistics —
2 packets transmitted, 0 received, 100% packet loss, time 999ms
PING 172.168.250.22 (172.168.250.22) 56(84) bytes of data.
— 172.168.250.22 ping statistics —
1 packets transmitted, 0 received, 100% packet loss, time 0ms
18、打印九九乘法表;
腳本:
#!/bin/sh for i in {1,2,3,4,5,6,7,8,9} do for j in {1,2,3,4,5,6,7,8,9} do ((product=$i*$j)) echo -ne $i\*$j=$product”\t” done echo done exit 0
[root@hiall2016 /]# bash a.sh
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81