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.www58058.com/20449
寫的很好,可以多注意一下排版問題,加油