馬哥教育網絡21期+第八周練習博客

馬哥教育網絡21期+第八周練習博客 #

1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。
集線器:工作于ISO模型的物理層,防止由于距離遠,信號衰減;
網橋:用來連接不同網段,隔離沖突域;
二層交換機:二層交換機一般做為了三層交換機以下,利用設備mac地址進行通信,可以劃分vlan,隔離廣播域;
三層交換機:用于核心數據轉發,不僅可以劃分廣播域,也可以實現路由轉發功能;
路由器:實現路由轉發功能,并且可以對路由進行優化以及限制功能,通常部署在邊界或三層交換機之上;

2、IP地址的分類有哪些?子網掩碼的表示形式及其作用;
    IP地址分為5類:A類,B類,C類,D類,E類;
    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

3、計算機網絡的分成模型有哪些(OSI模型和TCP/IP模型),每一層的功能及涉及到的物理設備有哪些。
OSI七層模型:物理層,數據鏈路層,網絡層,傳輸層,會話層,表示層,應用層;
    物理層:網線,集線器
    數據鏈路層:網卡,網橋
    網絡層:路由器
    傳輸層:四層交換機
    應用層:計算機的各種數據
TCP/IP四層模型:物理層,網絡層,傳輸層,應用層;


4、如何將Linux主機接入到TCP/IP網絡,請描述詳細的步驟。(手動指定的方式)
    1,首先物理層需要將網線或ip地址與互聯網配置在同一個網段當中;
    2,使用ifconfig命令配置ip地址,這里請注意ifconfig配置命令在系統重新啟動之后需要重新配置;
    3,如上層沒有網絡轉發功能,需要使用route -n配置路由轉發;


5、為Linux主機配置網絡信息的方式有哪些,請描述各個過程。
    Liunx網絡屬性配置的相關配置文件:/etc/sysconfig/network-scripts/文件下;
    DEVICE:此配置文件應用到的設備;
    HWADDR:對應的設備的MAC地址;
    BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp;
    NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控制;
    ONBOOT:在系統引導時是否激活此設備;
    TYPE:接口類型;常見有的Ethernet, Bridge;
    UUID:設備的惟一標識;
下面看一下具體的配置:
    [root@localhost network-scripts]# cat ifcfg-eth0 
    DEVICE=eth0-->設備名稱
    TYPE=Ethernet-->設備名稱
    UUID=840aafa6-9d45-43a1-ba88-dd3be9f3ff1e-->設備的唯一標識
    ONBOOT=no-->系統引導時是否激活此設備
    NM_CONTROLLED=yes-->此網卡是是否接受NM控制;
    BOOTPROTO=none-->激活此設備使用的ip地址配置協議;
    HWADDR=08:00:27:B5:54:45
    IPADDR=192.168.1.5-->ip地址
    PREFIX=24
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=yes
    IPV6INIT=no
    NAME="System eth0"
這里要注意配置完此配置文件需要使用service network restart重新激活此網絡功能!
這里的路由配置文件:/etc/sysconfig/network-scripts/route-IFACE
網絡接口識別并命名相關的udev配置文件:/etc/udev/rules.d/70-persistent-net.rules

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

[root@wanghongkai bin]# cat ping.sh 
    #!/bin/bash
    declare -i i=1
    net="192.168.56"
    declare -i j=0
    declare -i k=0
    while [ $i -le 254 ];do
      ping -c 1 -w 1 $net.$i &> /dev/null
        if [ $? -eq 0 ]; then
        echo -e "\033[32m $net.$i is up. \033[0m"
              let j++
        else
            echo -e "\033[31m $net.$i is down. \033[0m"
          let k++
        fi
        let i++
    done
    echo -e "\033[32m up is $j \033[0m"
    echo -e "\033[31m down is $i \033[0m"

7、詳細描述每個網絡接口的配置文件中各個參數的含義和其所對應的值;
Liunx網絡屬性配置的相關配置文件:/etc/sysconfig/network-scripts/文件下;
    DEVICE:此配置文件應用到的設備;
    HWADDR:對應的設備的MAC地址;
    BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp;
    NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控制;
    ONBOOT:在系統引導時是否激活此設備;
    TYPE:接口類型;常見有的Ethernet, Bridge;
    UUID:設備的惟一標識;
下面看一下具體的配置:
    [root@localhost network-scripts]# cat ifcfg-eth0 
    DEVICE=eth0-->設備名稱
    TYPE=Ethernet-->設備名稱
    UUID=840aafa6-9d45-43a1-ba88-dd3be9f3ff1e-->設備的唯一標識
    ONBOOT=no-->系統引導時是否激活此設備
    NM_CONTROLLED=yes-->此網卡是是否接受NM控制;
    BOOTPROTO=none-->激活此設備使用的ip地址配置協議;
    HWADDR=08:00:27:B5:54:45
    IPADDR=192.168.1.5-->ip地址
    PREFIX=24
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=yes
    IPV6INIT=no
    NAME="System eth0"
這里要注意配置完此配置文件需要使用service network restart重新激活此網絡功能!

8、如何給網絡接口配置多個地址,有哪些方式?
1)  ifconfigetho IP/mask
2)  ipaddr add ip device etho
3)  Linux網絡屬性配置的tui(text user interface):system-config-network-tui
4)  使用setup找到;

9、常用的網絡管理類工具有哪些,并用示例形式描述他們的使用方法。
netstat:-r顯示內核路由信息
        -n數字格式
ss: -t: tcp協議相關
    -u: udp協議相關
    -w: 裸套接字相關
    -x:unix sock相關
    -l: listen狀態的連接
    -a: 所有
    -n: 數字格式
    -p: 相關的程序及PID
    -e: 擴展的信息
    -m:內存用量
    -o:計時器信息
常用組合:-tan,-tanl,tanlp,-uan


10、Linux系統軟件包管理方法(安裝、升級、卸載等操作)有哪些,以及如何管理的。
    rpm:-v:顯示詳細信息
        -vv:顯示更多丑陋的調試信息
        -h:以#顯示程序包管理執行進度,每個#表示2%的進度
        -U:升級
        --oldpackage:降級
        --force:強行升級
        -a:查詢當前系統已安裝的程序包
        -f:查詢指定的文件由那個程序安裝生成
        --changelog:查詢rpm包的changlog
        -c: 查詢程序的配置文件
        -d: 查詢程序的文檔
        -i: information
        -l: 查看指定的程序包安裝后生成的所有文件;
        --scripts:程序包自帶的腳本片斷
        -R: 查詢指定的程序包所依賴的CAPABILITY;
        --provides: 列出指定程序包所提供的CAPABILITY;
        這里使用man rpm查看各個命令使用方式;
        yum:解決了程序包的依賴關系;
            這里我已經安裝了新的操作系統,并將系統中的yum源更改為阿里云的yum源:
            [root@localhost ~]# cd /etc/yum.repos.d/
            [root@localhost yum.repos.d]# ls
            CentOS-Base.repo       CentOS-Media.repo                 epel.repo
            CentOS-Base.repo.bach  CentOS-Vault.repo                 epel-testing.repo
            CentOS-Debuginfo.repo  epel-release-latest-6.noarch.rpm

11、如何使用發行版光盤作為yum repository,請描述該過程。
    這里先掛載新的光盤并創建目錄:
    將光盤進行掛載:mount -r -t iso9660 /dev/cdrom /media/cdrom
    創建yum源中的配置文件;
    這里給yum源中的配置文件逐一解釋:
    name=新建yum名稱
    baseurl:指定yum源的地址
    enabled:是否啟用
    gpgcheck:是否需要驗證
這里有必要說一下編譯安裝:
    因為有的軟件是無法通過yum,rpm等方法進行安裝,這時候我們就需要進行源代碼的編譯安裝;



12、寫一個腳本,完成以下功能
   (1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
   (2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
   (3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
   (4) 分別統計S開頭和K開頭的文件各有多少;
    [root@localhost bin]# cat  rc.sh
    #!/bin/bash
    #
    #
    cd $1
    for i in $(ls K*);do
       echo "$i.stop"
        let t++
    done
    for j in $(ls S*);do
       echo "$j.start"
       let u++
    done
    echo "K is $t"
    echo "S is $u"


13、寫一個腳本,完成以下功能
   (1) 腳本能接受用戶名作為參數;
   (2) 計算此些用戶的ID之和;
    [root@wanghongkai bin]# cat sum6.sh 
    #!/bin/bash
    #
    read -p "input your user name " nameuser
    while [ ${nameuser} != "quit" ];do
        id ${nameuser} &> /dev/null && result=0 ||result=1
        if [ ${result} -eq 1 ];then 
            read -p "Please input your user name again,your user name is not exist: " nameuser 
            continue
        fi    
        userid=$(id -u ${nameuser})
        let sumid+=$userid
        read -p "input your user name again:" nameuser
    done
        echo "the sum of these user's ID is ${sumid}."


14、寫一個腳本
   (1) 傳遞一些目錄給此腳本;
   (2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
   (3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
    [root@localhost bin]# cat file2.sh 
    #!/bin/bash
    #
    cd $@
    for file in $(ls ); do
    if [ -f $file ]; then
    echo "Common file."
    let i++
    elif [ -L $file ]; then
    echo "Symbolic file."
    let j++
    elif [ -d $file ]; then
    echo "Directory."
    let y++
    elif [ -S $file ];then
    echo "The socket file."
    let u++
    elif [ -c $file ];then
    echo "Character device file."
    let o++
    else
    echo "Other type."
    let p++
    fi
    done
    #
    echo "Common file $i."
    echo "Symbolic file $j."
    echo "Directory $y."
    echo "The socket file $u."
    echo "Character device file $o."
    echo "Other type $p."




15、寫一個腳本
  通過命令行傳遞一個參數給腳本,參數為用戶名
  如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
    [root@wanghongkai bin]# cat yonghu.sh 
    #!/bin/bash
    #
    read -p "shu ru yong hu ming:" user
    function ID {
     i=`cat /etc/passwd | grep "^$user" | cut -d':' -f3`
     while true; do
      if [ $i -le 500 ];then
        echo "$user is adminhuser."
      else
        echo "$user is hellouser."
      fi
      break
    done
    }
    #
    while true; do 
       ID
       break
    done


16、寫一個腳本
   (1) 添加10用戶user1-user10;密碼同用戶名;
   (2) 用戶不存在時才添加;存在時則跳過;
   (3) 最后顯示本次共添加了多少用戶;
使用while方法:
    [root@wanghongkai bin]# cat user.sh 
    #!/bin/bash
    declare i=1
    while [ $i -le 10 ]; do
      if id user$i &> /dev/null; then
        echo "user$i cun zai."
      else 
        useradd user$i &> /dev/null && echo "user$i" | passwd --stdin user$i &> /dev/null
        echo "user$i yi jing chuangjian."
      fi
      let i++
    done





17、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
使用while方法實現:
    [root@wanghongkai bin]# cat ping.sh 
    #!/bin/bash
    declare -i i=1
    net="192.168.56"
    declare -i j=0
    declare -i k=0
    while [ $i -le 20 ];do
      ping -c 1 -w 1 $net.$i &> /dev/null
        if [ $? -eq 0 ]; then
        echo "$net.$i is up."
              let j++
        else
          let k++
        fi
        let i++
    done
    echo "up is $j"


18、打印九九乘法表;
for方法實現:
    [root@wanghongkai bin]# cat for99.sh 
    #!/bin/bash
    for i in {1..9};do
      for j in {1..9};do
       if [ $j -le $i ]; then
        echo -n -e "${i}X${j}=$[$i*$j]\t"
       fi
      done
      echo
    done

[root@wanghongkai bin]# cat 1.sh 
#!/bin/bash
#
for ((i=1;i<=9;i++));do
  for ((j=1;j<=i;j++));do
    echo -n -e "${j}X${i}=$[$j*$i]\t"
  done
  echo
done

原創文章,作者:wostop,如若轉載,請注明出處:http://www.www58058.com/43091

(0)
wostopwostop
上一篇 2016-09-05
下一篇 2016-09-05

相關推薦

  • N22第六周作業

    VIM編輯器介紹 什么是VIM? Vim是一個類似于Vi的著名的功能強大、高度可定制的文本編輯器,在Vi的基礎上改進和增加了很多特性。VIM是純粹的自由軟件。 Vim是從 vi 發展出來的一個文本編輯器。代碼補全、編譯及錯誤跳轉等方便編程的功能特別豐富,在程序員中被廣泛使用,和Emacs并列成為類Unix系統用戶最喜歡的文本編輯器。 VIM的使用 &nbsp…

    Linux干貨 2016-10-24
  • 搜索引擎的技術架構

    1. 搜索引擎的分類 搜索引擎按其工作方式主要可分為三種: 分別是全文搜索引擎(Full Text Search Engine) 目錄索引類搜索引擎(Search Index/Directory) 元搜索引擎(Meta Search Engine)。 ■ 全文搜索引擎  全文搜索引擎是名副其實的搜索引擎,國外具代表性的有Google、Fast/Al…

    Linux干貨 2015-11-18
  • 三劍客之一sed命令

    sed sed ‘2p’ /etc/passwd  打印paswwd的第二行 這樣執行結果看能看出第二行顯示兩次 sed -n ‘2p’ /etc/passwd -n 執行后 會取出當前行顯示. n是關閉打印  例如[root@cent7 ~]#ifconfig ens33|sed -n &…

    Linux干貨 2017-08-13
  • 網絡管理之基本概念

    本章內容     網絡概念     OSI模型     網絡設備     TCP/IP     IP 地址     配置…

    Linux干貨 2016-09-08
  • 權限

    用戶組和管理權限

    2017-11-30

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-09-07 18:17

    完成的非常好,其中還用幾種方法實現,非常的棒

欧美性久久久久