1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。
集線器(HUB)是在OSI模型的第一層——物理層——連接多臺主機、延長網絡的設備。其主要功能是將從一個端口接收到的數據包轉發給所有端口。中繼器(Repeater)是將由電纜傳過來的電信號或光信號調整波形和放大再傳給另一個電纜的設備,提供多端口服務的中繼器稱作集線器。二者的主要區別是HUB是在物理層轉發數據的,它并不關心電壓值的大小,也不會放大物理信號;而Repeater的作用就是放大物理信號。 網橋(Bridge)是在OSI模型的第二層——數據鏈路層——連接兩個網絡的設備。它能夠識別數據鏈路層中的數據幀,并將這些數據幀臨時存儲于內存,再重新生成信號作為一個全新的幀轉發給相連的另一個網段。網橋能識別數據包中的MAC地址信息,根據MAC信息實現對數據包有目的的轉發,并將相關MAC地址信息與對應的端口記錄在內部的地址表中。 路由器(Router)是在OSI模型的第三層——網絡層——連接兩個網絡、并對分組報文進行轉發的設備。網橋是根據MAC地址進行處理,而路由器則是根據IP地址進行處理的。路由器的主要作用就是為經過路由器的數據包選擇一條最佳傳輸途徑,并將數據包有效地送達目的地。 二層交換機與三層交換機的區別:二層交換器工作于數據鏈路層,用于小型的局域網絡;三層交換機工作于網絡層,加快大型局域網絡內部的數據轉發。
2、IP地址的分類有哪些?子網掩碼的表示形式及其作用
A類: 0 000 0000 - 0 111 1111: 1-127 網絡數:126, 127 每個網絡中的主機數:2^24-2 默認子網掩碼:255.0.0.0 私網地址:10.0.0.0/8 B類: 10 00 0000 - 10 11 1111:128-191 網絡數:2^14 每個網絡中的主機數:2^16-2 默認子網掩碼:255.255.0.0 私網地址:172.16.0.0/16-172.31.0.0/16 C類: 110 0 0000 - 110 1 1111: 192-223 網絡數:2^21 每個網絡中的主機數:2^8-2 默認子網掩碼:255.255.255.0 私網地址:192.168.0.0/24-192.168.255.0/24 D類:主要用于組播 1110 0000 - 1110 1111: 224-239 子網掩碼的表示形式: 192.168.100.100/255.255.255.0 <--> 192.168.100.100/24 子網掩碼的作用: 區分網絡上的主機是否處于同一子網絡中。
3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。
4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
編輯/etc/sysconfig/network-scripts/ifcfg-IFACE文件,指定IPADDR、NETMASK、GATEWAY和DNS; 編輯/etc/sysconfig/network-scripts/route-IFACE文件,指定網絡路由;
5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。
配置IP:編輯/etc/sysconfig/network-scripts/ifcfg-IFACE文件 配置路由:編輯/etc/sysconfig/network-scripts/route-IFACE文件 dns服務器指定:編輯/etc/resolv.conf文件
6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;
在線的主機使用綠色顯示;
不在線的主使用紅色顯示;
#!/bin/bash # ip='172.16.250' for i in {1..254};do ping -c 5 -w 5 $ip.$i &> /dev/null result=$? if [ $result -eq 0 ];then echo -e "\033[32m"$ip.$i is up. else echo -e "\033[31m"$ip.$i is down. fi done
7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值;
路由相關的配置文件:/etc/sysconfig/network-scripts/route-IFACE 配置當前主機的主機名:/etc/sysconfig/networkHOSTNAME= 網絡接口識別并命名相關的udev配置文件: /etc/udev/rules.d/70-persistent-net.rules
8、如何給網絡接口配置多個地址,有哪些方式?
ifconfig: ifconfig IFACE_ALIAS IPADDR ip: ip addr add ip_addr/mask dev IFACE label alias_label 配置文件: ifcfg-IFACE_ALIAS DEVICE=IFACE_ALIAS
9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。
netstat: 1、查看網絡連接netstat –ltan 2、查看路由netstat –r 3、顯示網絡接口netstat–i route: 查看路由route -n 添加:routeadd:route add [-net|-host] target [netmask Nm] [gwGw] [[dev] If] ip linkset dev IFACE up /down 激活或禁用指定接口 ipaddr { add | del } IFADDR dev IFACE ip route add 添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP ss命令:(相當于netstat ,但在非常繁忙狀態下,是netstat是幾倍速度) 格式:ss [options] [ FILTER ] 選項: -t:tcp協議相關 -u:udp協議相關 -w:裸套接字相關 -x:unix sock相關 -l:listen狀態的連接 -a:所有 -n:數字格式 -p:相關的程序及PID -e擴展的信息 -m:內存用量 -o:計時器信息 FILTER := [ state TCP-STATE ] [ EXPRESSION ]
10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。
rpm命令實現程序管理: 安裝: -ivh,--nodeps,--replacepkgs 卸載:-e,--nodeps 升級:-Uvh,-Fvh,--nodeps,--oldepackage 查詢: -q,qa,-qf,-qi,-qd,-qc,-q --scripts,-q --changlog,-q --provides,-q --requires 校驗:-V 導入GPG密鑰:--import,-K,--nodigest,--nosignature 數據庫重:--initdb,--rebuilddb YUM命令實現程序管理: 顯示倉庫的列表: repolist [all|enable|disabled] 顯示程序包: list # yum list [all | glob_exp] [glob_exp2][...] #yum list {available | installed | updates}[glob_exp][...] 安裝程序包 yum install package1 [package2] [...] reinstall package1 [package2] [...](重新安裝) 升級程序包: update [package1] [package2] [...] 升級軟件包的同時也升級軟件和系統內核 downgrade package1 [package2] [...](降級) upgrade [package1] [package2] [...] 只升級軟件包,不升級軟件和系統內核 檢查可用升級: check-update 卸載程序包: remove | erase package1 [package2] [...] 查看程序包infomation: info[...] 查看指定的特性(可以查看某文件)是由哪個程序包所提供: provides | whatprovides feature1 [feature2] [...] 清理本地緩存: clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] 構建緩存: makecache 搜索 search string1 [string2] [...] 以指定的關鍵字搜索程序包名及summary 信息 查看指定包所依賴的Capabilities: deplist package1 [package2] [...] 查看yum事務歷史: history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|roll-back|new|sync|stats] 安裝及升級本地程序包: *localinstall rpmfile1 [rpmfile2] [...] (maintained for legacy reasons only - use install) *localupdate rpmfile1 [rpmfile2] [...] (maintained for legacy reasons only - use update) 包組管理的相關命令: * groupinstall group1 [group2] [...] * groupupdate group1 [group2] [...] * grouplist [hidden] [groupwildcard] [...] * groupremove group1 [group2] [...] * groupinfo group1 [...]
11、如何使用發行版光盤作為yum repository,請描述該過程。
[root@CentOS6 ~]# mount /dev/cdrom /media/CentOS_6.4_Final/ mount: block device /dev/sr0 is write-protected, mounting read-only [root@CentOS6 ~]# cd !$ cd /media/CentOS_6.4_Final/ [root@CentOS6 CentOS_6.4_Final]# rpm --import RPM-GPG-KEY-CentOS-6 [root@CentOS6 CentOS_6.4_Final]# vi /etc/yum.repos.d/yum.repo [localyum] name=localyum baseurl=file:///media/CentOS_6.4_Final 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 stotal=0 declare -i ktotal=0 for i in `ls /etc/rc.d/rc3.d | grep "^S"`;do echo "$i start" let stotal++ done for i in `ls /etc/rc.d/rc3.d | grep "^K"`;do echo "$i stop" let ktotal++ done echo "K file is $ktotal" echo "S file is $stotal"
13、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作為參數;
(2) 計算此些用戶的ID之和;
#!/bin/bash # declare -i idsum=0 if [ $# -le 0 ];then echo "Userage:bash.sh user1 user2 ..." exit 1 fi for i in $*;do if id $i &> /dev/null;then idnum=`grep "$i" /etc/passwd | cut -d: -f3` idsum+=$idnum else echo "No exist $i " fi done echo "IDtotal is $idsum"
14、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
#!/bin/bash # declare -i foder=0 declare -i file=0 declare -i cfile=0 declare -i lfile=0 declare -i bfile=0 if [ $# -lt 1 ];then echo "Useage:bash.sh file1 file2 ..." exit 1 else for j in $*;do if [ -f $j ];then echo "This file is file" exit 1 else for i in `ls $j`;do cd $j if [ -f $i ];then echo -e "\033[31m"$i is file. let file++ elif [ -d $i ];then echo -e "\033[32m"$i is foder. let foder++ elif [ -c $i ];then echo "$i is string file." let cfile++ elif [ -L $i ];then echo "$i is link file." let lfile++ elif [ -b $i ];then echo "$i is block file." let bfile++ else echo "Unknow file." exit 2 fi done fi done fi echo "file total:$file" echo "link file total:$lfile" echo "String file total:$cfile" echo "block file total:$bfile" echo "foder file total:$foder"
15、寫一個腳本
通過命令行傳遞一個參數給腳本,參數為用戶名
如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
#!/bin/bash [ $# -ne 1 ] && echo "Please enter one user!!!" && exit ! id $1 &> /dev/null && echo "No this user." && exit let a=`id -u $1` if [ $a -ge 500 ]; then echo "$1 is common user." else echo "$1 is system user." fi
16、寫一個腳本
(1) 添加10用戶user1-user10;密碼同用戶名;
(2) 用戶不存在時才添加;存在時則跳過;
(3) 最后顯示本次共添加了多少用戶;
#!/bin/bash for i in {1..10}; do if id user$i &> /dev/null ;then echo "user$i exists." continue 3 else useradd user$i if [ $? -eq 0 ]; then echo "user$i" | passwd --stdin user$i &> /dev/null echo "Add user$i finished." let j++ fi fi done echo "Add $j users."
17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
#!/bin/bash # ip='172.16.250' for i in {1..254};do ping -c 5 -w 5 $ip.$i &> /dev/null result=$? if [ $result -eq 0 ];then echo "$ip.$i" fi done
18、打印九九乘法表;
#!/bin/bash for ((i=1;i<=9;i++)){ for((j=1;j<=i;j++));do echo -e -n "$j*$i=$(($i*$j))\t" done echo }
原創文章,作者:Bazinga,如若轉載,請注明出處:http://www.www58058.com/43100
完成的非常的不錯,1題的排版在進行調整一下哈,6題中的腳本在顏色顯示結果后應加\033[0m,7題在完善一下更完美,如ifcfg-eth0文件中的DEVICE、TYPE的含義和對應的值。