N21-天天-第八周課程練習

1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。

主要功能:
網橋將兩個相似的網絡連接起來,并對網絡數據的流通進行管理。它工作于數據鏈路層,不但能擴展網絡的距離或范圍,而且可提高網絡的性能、可靠性和安全性。
集線器的英文稱為“Hub”。主要功能是對接收到的信號進行再生整形放大,以擴大網絡的傳輸距離,同時把所有節點集中在以它為中心的節點上。它工作于OSI參考模型第一層,即“物理層”。
二層交換機工作于OSI模塊的第2層(數據鏈路層),故稱為二層交換機。可以識別數據包中的MAC地址信息,根據MAC地址進行轉發,并將這些MAC地址與對應的端口記錄在自己內部的一個地址表中。
三層交換機就是具有路由功能的交換機。
路由器工作于OSI參考模型的第3層(網絡層),是連接因特網中各局域網、廣域網的設備,它根據信道的情況自動選擇和設定路由,以最佳路徑,按前后順序發送信號。

2、IP地址的分類有哪些?子網掩碼的表示形式及其作用

IP地址中的前五位用于標識IP地址的類別,IP地址共分五類。
A類地址:以0開頭,網絡地址7位,主機地址24位
B類地址:以10開頭,網絡地址14位,主機地址16位
C類地址:以110開頭,網絡地址21位,主機地址8位
D類地址:以1110開頭,組播地址
E類地址:以11110開頭
子網掩碼的表示形式:
1)通過與IP地址格式相同的點分十進制表示,如255.255.255.0
2)在IP地址后加上“/”符號以及1-32的數字,其中1-32的數字表示子網掩碼中網絡標識位的長度,如192.168.1.0/24
子網掩碼的作用:
1)用于屏蔽IP地址的一部分以區別網絡標識和主機標識
2)用于將一個大的IP網絡劃分為若干小的子網絡

3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。

OSI七層模型:
1)物理層:主要功能是完成相鄰結點之間原始比特流的傳輸,控制數據怎么被放置到通信介質上。
2)數據鏈路層:主要功能是如何在不可靠的物理線路上進行數據的可靠傳輸。完成的是網絡中相鄰結點之間可靠的數據通信。
3)網絡層:主要功能是完成網絡中主機間的報文傳輸。
4)傳輸層:是整個網絡的關鍵部分,實現兩個用戶進程間端到端的可靠通信,處理數據包錯誤、數據包次序,以及其他一些關鍵傳輸問題,
5)會話層:允許不同機器上的用戶之間建立會話關系。
6)表示層:處理用戶信息的表示問題,如編碼、數據格式轉換和加密等。
7)應用層:是用戶與網絡,以及應用程序與網絡間的直接接口,使得用戶能夠與網絡進行交互聯系,實實現各種服務
TCP/IP4層模型
1)網絡訪問層:功能包括IP地址與物理硬件地址的映射,以及將IP分組封裝成幀?;诓煌布愋偷木W絡接口,定義了和物理介質的連接。相當于OSI參考模型的物理層和數據鏈路層。
2)網際層:處理來自傳輸層的分組發送請求;處理輸入數據報;處理ICMP報文,即處理網絡的路由選擇、流量控制和擁塞控制等問題。在功能上類似于ISO/OSI參考模型中的網絡層。
3)傳輸層:主要功能是可靠而又準確地傳輸并控制源主機與目的主機之間的信息流,提供端到端的控制,通過滑動窗口機制提供流控制,通過序列號和確認機制來保證可靠性。
4)應用層:包括所有的高層協議,與OSI的應用層協議相差不大,包括HTTP、Telnet、FTP、SMTP、POP3、DNS等。

4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)

vim /etc/sysconfig/network-scripts/ifcfg-eth0    
DEVICE=eth0                                     #網卡號,和ifcfg-eth0對應就可以>
TYPE=Ethernet                                    #網絡類型
UUID=b04b477a-06f1-494b-85f8-83e070dc9010                            
ONBOOT=yes                                      #啟動時啟用連接
NM_CONTROLLED=yes                                #network manager參數
BOOTPROTO=none                                  #獲得IP地址方式,手動選擇none,自動選擇dhcp
IPADDR=192.168.1.61                             #設定IP地址
PREFIX=24                                       #掩碼位數
GATEWAY=192.168.1.254                           #網關
DNS1=192.168.1.1                                #DNS
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
修改完成后重啟網絡
/etc/init.d/network restart

5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。

 1)可以使用ifconfig ip addr 命令來設置網卡的ip地址及網關;設置后立即生效,重啟后生效。
 2)可以修改網絡配置文件/etc/sysconfig/network-scripts/ifcfg-接口,設置IP、MAC、網關,重啟服務服務后生效。
 3)使用setup圖形界面設置網絡信息
 4)使用system-config-network-tui

6、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;

     在線的主機使用綠色顯示;

     不在線的主使用紅色顯示;

#!/bin/bash
net=172.16.250
for((i=1;i<=254;i++))
do
    if ping -c 1 -w 1 $net.$i &> /dev/null;then
        echo -e "\033[32m $net.$i\033[0m"
    else
        echo -e "\033[31m $net.$i\033[0m"
    fi
done

7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值;

vim /etc/sysconfig/network-scripts/ifcfg-eth0    
DEVICE=eth0                                     #網卡號,和ifcfg-eth0對應就可以>
TYPE=Ethernet                                    #網絡類型
UUID=b04b477a-06f1-494b-85f8-83e070dc9010                            
ONBOOT=yes                                      #啟動時啟用連接
NM_CONTROLLED=yes                                #network manager參數
BOOTPROTO=none                                  #獲得IP地址方式,手動選擇none,自動選擇dhcp
IPADDR=192.168.1.61                             #設定IP地址
PREFIX=24                                       #掩碼位數
GATEWAY=192.168.1.254                           #網關
DNS1=192.168.1.1                                #DNS
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
修改完成后重啟網絡
/etc/init.d/network restart

8、如何給網絡接口配置多個地址,有哪些方式?

1)命令方式,即時生效
ip addr add 192.168.1.66/24 dev eth0:1
2)創建配置文件,重啟服務后生效
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0{,:1}
vim ifcfg-eth0:1
修改以下內容
DEVICE=eth0:1
IPADDR=192.168.1.66
PREFIX=24

9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。

1)ifconfig
ifconfig -a:     查看所有網絡接口信息
ifconfig interface     查看指定網絡接口信息
ifconfig interface up|download     啟用或停用指定網絡接口
ifconfig interface ip/mask [up]     設定指定網絡接口IP地址和掩碼
2)route
route -n查看所有路由信息
route add添加路由
    route add [-net|-host] target [netmask Nm] [gw Gw][[dev] If]
    route add -net 192.168.0.0/24 gw 192.168.0.254 dev eth0
    route add -host192.168.1.5 gw 192.168.1.254 dev eth1
route del刪除路由
    route del [-net|-host] target [netmask ] [gw Gw][dev] 
    route del -net 192.168.0.0 255.255.255.0
    route del -host192.168.1.5
3)netstat
-t    tcp協議相關的連接
-u    udp協議相碰的連接
-w    raw socker相關的連接
-l    處于監聽狀態的連接
-a    所有的連接
-n    以數字顯示ip和端口
-e    擴展格式
-p    顯示相關進程及PID
常用組合
-tan
-uan
-tln
-uln
4)ip
ip link
    ip link set DEVICE IFACE up/down 激活或禁用指定接口
    ip link show up/dev 顯示所有激活狀態/指定接口信息
ipaddr
    ip addr { add | del } IFADDR dev STRING 增加或刪除IP地址
    ip addr show 顯示網絡接口信息
ip route
    ip route { add | del | show} 添加、刪除或顯示路由
5)ss
-t    tcp協議相關的連接
-u    udp協議相碰的連接
-w    raw socker相關的連接
-l    處于監聽狀態的連接
-a    所有的連接
-n    以數字顯示ip和端口
-e    擴展格式
-p    顯示相關進程及PID
-x    unix sock相關
-m    內存用量
-o    計時器信息

10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。

1)用rpm命令管理程序包
安裝    rpm -ivh     PACKAGE_FILE    安裝包
升級    rpm -Uvh    PACKAGE_FILE    升級包,無則安裝此包
          rpm -Fvh    PACKAGE_FILE    升級包,無則無變化
查詢    rpm -qa | grep FileName    查詢已安裝的某個軟件
          rpm -qf     FILE    查詢文件出處
          rpm -qc    PACKAGE_FILE    查詢包的配置文件
          rpm -ql    PACKAGE_FILE    查詢包的所有文件
          rpm -qd    PACKAGE_FILE    查詢包的信息
          rpm -qpi   PACKAGE_FILE    安裝之前查詢包信息
          rpm -qpl    PACKAGE_FILE    安裝之前查詢包的所有文件
卸載    rpm -e    PACKAGE_FILE    卸載包
驗證    rpm -V    PACKAGE_FIL    E驗證包
          rpm --import     PUBKEY    導入公鑰
維護    rpm initdb新建數據庫
           rpm rebuilddb重建數據庫
2)用yum倉庫來管理程序包
查看
    yum info PACKAGE_FILE            查看包信息
    yum historylist                        查看yum事務歷史
    yum deplistpackage1                查看包依賴
顯示
    yum repolist all    顯示yum倉庫列表
    yum list installed    顯示已安裝列表
    yum list available    顯示可用包
    yum list updates    顯示可升級的包
    yum list anaconda    顯示系統安裝的包
安裝 
    yum install PACKAGE_FILE    安裝包
    yum localinstall rpmfile1    安裝本地包
升級
    yum update PACKAGE_FILE    升級包
    yum downgrade PACKAGE_FILE    降級包
    yum check-update    檢查更新
卸載
     yum remove PACKAGE_FILE    卸載包
    yum providesfeature1    查看指定的特性
    yum clean    清理本地緩存
    yum search string1    搜索字符串
    yum info PACKAGE_FILE    查看包信息
包組管理
    yum groupinstall group1 [group2] [...]    安裝包組
    yum groupupdate group1 [group2] [...]    升級包組
    yum grouplist [hidden] [groupwildcard][...]    顯示包組
    yum groupremove group1 [group2] [...]    卸載包組
    yum groupinfo group1 [...]     查看包組信息

11、如何使用發行版光盤作為yum repository,請描述該過程。

(1)掛載光盤至某目錄
mount -r /dev/sr0 /mnt/
(2)創建配置文件
vim /etc/yum.repos.d/CentOS-DVD.repo
[CentOS6.6]
name=CentOS cdrom    #倉庫的名字
baseurl=file:///mnt    #repodata目錄的倉庫訪問路徑
gpgchecked=0    #使用前是否檢驗包
enabled=1    #是否啟用此倉庫

12、寫一個腳本,完成以下功能

   (1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;

   (2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;

   (3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;

   (4) 分別統計S開頭和K開頭的文件各有多少;

#!/bin/bash
declare -i k=0,s=0
for i in $(ls /etc/rc.d/rc3.d/K* | grep -o "[^/]*$")
do
echo "$i stop"
let k++
done
for j in $(ls /etc/rc.d/rc3.d/S* | grep -o "[^/]*$")
do
echo "$j start"
let s++
done
echo "S開頭的文件有$s個,K開頭的文件有$k個!"

13、寫一個腳本,完成以下功能

   (1) 腳本能接受用戶名作為參數;

   (2) 計算此些用戶的ID之和;  

#!/bin/bash
declare -i sum
if [ $# -lt 1 ];then
echo "At least one username"
exit 1
else
for name in $*
do
if id $name &> /dev/null;then
let sum+=$(grep "^\<$name\>" /etc/passwd | cut -d: -f3)
fi
done
echo "id sum is $sum"
fi

14、寫一個腳本

   (1) 傳遞一些目錄給此腳本;

   (2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;

   (3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;

#!/bin/bash
if [ $# -lt 1 ];then
echo "At  least a Directory"
exit 1
fi
ls -l "$@" | grep ^d | awk '{print $NF}' > directory
ls -l "$@" | grep ^- | awk '{print $NF}' > files
ls -l "$@"
echo "Total $(wc -l directory) "
echo "Total $(wc -l files) "

15、寫一個腳本

  通過命令行傳遞一個參數給腳本,參數為用戶名

  如果用戶的id號大于等于500,則顯示此用戶為普通用戶;

  #!/bin/bash
if [ $# -lt 1 ];then
echo "At least one username"
exit 1
fi
if id $1 &> /dev/null;then
uid=$(grep "^\<$1\>" /etc/passwd | cut -d: -f3)
if [ $uid -ge 500 ];then
echo "$1 is regular user"
else
echo "$1 is system user"
fi
else
echo "$1 is not exists"
fi

16、寫一個腳本

   (1) 添加10用戶user1-user10;密碼同用戶名;

   (2) 用戶不存在時才添加;存在時則跳過;

   (3) 最后顯示本次共添加了多少用戶; 

#!/bin/bash
declare -i num
for((i=1;i<11;i++)){
if ! id user$i &> /dev/null;then
useradd user$i
echo user$i:user$i | chpasswd
let num++
fi
}
echo "Add $num users!"

17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;

#!/bin/bash
net="172.16.250."
for((i=20;i<=100;i++)){
ping -c 1 $net$i &> /dev/null
if [ $? -eq 0 ];then
echo $net$i
fi
}

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 
}

原創文章,作者:N21-天天,如若轉載,請注明出處:http://www.www58058.com/40756

(0)
N21-天天N21-天天
上一篇 2016-08-29 09:00
下一篇 2016-08-29 09:01

相關推薦

  • 路由器解析路由表

    1.定義——>選擇最佳路徑;他只完成發送到下一個路徑上就結束,任務到達就撤了(就像快遞員一樣,當他將物件發往到下一個目的地,那他的任務就結束了)2.分類:主機路由、網絡路由、默認路由3.每個路由記錄由四項主要組成部分目標地址:主機IP、網絡ID號、未知地址(0.0.0.0)子網掩碼接口interface:從哪個口發往目標地址 網…

    2017-09-05
  • bash循環、函數、數組、內置的字符串處理、變量、trap信號捕捉

    流程控制 過程式編程語言: 順序執行 如果是命令寫錯了,可以繼續往下執行;但當語法錯誤時則不會往下繼續執行; 選擇執行 循環執行 條件選擇:if語句 單分支 if 判斷條件;then 條件為真的分支代碼 fi 雙分支 if 判斷條件; then 條件為真的分支代碼 else 條件為假的分支代碼 fi 多分支 if 判斷條件1; then 條件為真的分支代碼 …

    Linux干貨 2017-05-21
  • 新的開始

    加入馬幫,新的開始,加油!

    Linux干貨 2016-09-19
  • 編程真難啊

    上周,在Sun的Java論壇上出現了一個這樣的帖子,這個貼子的鏈接如下:http://forums.sun.com/thread.jspa?threadID=5404590&start=0&tstart=0 LZ的貼子翻譯如下: 大家好,我是一個Java的新手,我有一個簡單的問題:請問我怎么才能反轉一個整數的符號啊。比如把-12轉成+12。是…

    Linux干貨 2015-04-03
  • Linux破解root口令

    Centos5、6版本破解口令方法 1 啟動系統 2 在操作系統選擇菜單界面選中要啟動的內核 — 按a鍵 3 在行尾輸入 1(或s或S或single)— 按回車鍵 4 使用passwd命令修改口令即可   Centos7版本破解口令方法 方法1 1 啟動系統 2 在操作系統選擇菜單界面選中要啟動的內核 — 按e鍵…

    Linux干貨 2018-01-08
  • shell編程之函數

    函數:函數function是由若干條shell命令組成的語句塊,實現代碼 重用和模塊化編程      1)函數的定義: 可在 命令行,腳本的一部分,只有函數的單獨文件 中定義        兩部分組成:函數名和函數體;函…

    Linux干貨 2016-08-21

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-30 13:25

    完成功能,還要展示一二

欧美性久久久久