馬哥教育網絡班19期第八周課程練習

馬哥教育網絡班19期第八周課程練習

1、請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、命名用場景

   網橋:為最早的網絡連接設備,它主要用來延長擴展網絡的物理長度

   集線器:對網橋的功能作了擴充,它的功能是將兩個不同網段(廣播域)網絡進行連接,作為網絡物理邊界的擴展,一般用在連接兩個網段不同的網絡

   二層交換機:工作在網絡鏈路層,可實現點對點傳輸,全雙工工作。一般用在內部網絡中,作為接入層設備。

   三層交換機:工作在IP層,在二層交換的基礎上,增加了路由功能,能實現簡單的路由尋址。一般用在內部網絡內為作網關或匯聚層設備。

   路由器:工作在IP層,主要負責將接收到的報文進行路由尋址轉發。一般用于外網不同網段間的網關設備或是內網核心網絡的網關設備。

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

   IP地址分為A類1.0.0.0-126.0.0.0,B類128-191.0.0.0,C類192-223.0.0.0,D類224-239.0.0.0,E類240-255.0.0.0;

   子網掩碼形式分為兩段,前半段全1表示網絡地址,后半段全0表示主機地址,得出子網掩碼。子網掩碼與IP地址相或,

   計算出的值,能就算出IP所在網絡的網絡地址。通常兩臺計算機通訊前都需計算出對方的網絡地址,然后與自己的網絡

   地址相比較,如果是在同一網段,那就通過第二層arp廣播通信,如果是不同網段,那就封包成第三層的IP協議,通過路由發送數據。

        

      

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

   計算機網絡的分層模型主要有ISO的OSI七層模型及互聯網TCT/IP的四層模型。

   OSI七層模型:

       物理層:對應物理設備為網卡,該層負責物理設備的連接及通信,如電壓信號、光信號的傳輸等。

       數據鏈路層:將底層的物理通信,抽象成鏈路格式,在本地網絡內以廣播,mac地址尋址等方式通信

       網絡層:將數據鏈路層的數據進一步編碼,加入網絡尋址的方式,對數據進行路由尋址通信

  傳輸層:在網絡層的基礎上,加入對傳輸數據的控制,比如TCP的糾錯重傳機制,或UDP的直接傳輸機制,

          以便于更為精準的控制數據在IP網絡上的傳輸行為。

       會話層:提供會話建立、保持等一系列功能

  表示層:提供各個應用程序之間的數據展現方式。

       應用層:各應用程序特有的數據通信格式。   

TCP/IP四層模型

       物理層,對應物理設備為網卡,該層負責物理設備的連接及通信,如電壓信號、光信號的傳輸等。

       數據鏈路層,將底層的物理通信,抽象成鏈路格式,在本地網絡內以廣播,mac地址尋址等方式通信

       網絡層,將數據鏈路層的數據進一步編碼,加入網絡尋址的方式,對數據進行路由尋址通信

       應用層,接收或發送到網絡層的信息,轉換成應用程序能理解的數據,比如會話保持,展示格式,

          軟件應用的專有數據等。

     

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

    將Linux主機接入到網絡中,有如下步驟:

 a.指定IP地址及子網掩碼

 b.設定路由,即默認網關地址

 c.指定DNS服務器地址,該項可填寫3個,以防單個DNS失效后可找到其它DNS替代發揮作用

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

   1.在GUI界面手工指定

    a.指定IP地址及子網掩碼

b.設定路由,即默認網關地址

c.指定DNS服務器地址,該項可填寫3個,以防單個DNS失效后可找到其它DNS替代發揮作用

   

   2.在命令行直接修改

     通過 ifconfig interface ip/mask up 命令行指定IP地址

通過 route add -net ip/mask if 命令設定路由

 

   3.直接修改配置文件

     網卡配置修改 /etc/sysconfig/network-scripts 下的網卡配置文件,類似 ifcfg-eth0 之類

路由修改地址 /etc/rc.d/rc.local

DNS地址修改  /etc/resolv.conf 

 

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

  #!/bin/bash

  #

  #ping hosts

   hosts=172.16.200

   for i in {1..254} ; do

     if  ping -c 1 -w 1 $hosts.$i &> /dev/null  ; then

       echo "$hosts.$i is up"

     else

       echo "$hosts.$i is down"

     fi

   done

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

TYPE=Ethernet                  網卡類型

BOOTPROTO=none                 

IPADDR=172.16.200.201          IP地址

PREFIX=16                      子網掩碼  

DNS1=172.16.0.2                DNS服務器地址1

DEFROUTE=yes                   路由選項

IPV4_FAILURE_FATAL=yes         

IPV6INIT=no

NAME=eth2                      網卡名稱

UUID=6ad68c63-e7b1-4200-915a-c72a0caf44c7    UUID值

ONBOOT=yes                     電腦啟動時是否自動啟動

HWADDR=00:0C:29:D9:58:B4       網卡MAC地址

GATEWAY=172.16.0.2             默認網關

LAST_CONNECT=1465863967

DEVICE=lo                      回環網卡

IPADDR=127.0.0.1               IP地址

NETMASK=255.0.0.0              子網掩碼

NETWORK=127.0.0.0              網絡地址

BROADCAST=127.255.255.255      廣播地址

ONBOOT=yes                     電腦啟動時是否自動啟動

NAME=loopback                  網卡名稱

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

   可使用輔助網卡的形式,直接添加,比如:

      ifconfig eth0:0 ip/mask    

 比如:ifconfig eno16777736:0 172.16.128.100 255.255.0.0 

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

    常用網絡管理類工具有:

ifconfig 列出當前網卡IP地址信息

[root@localhost ~]# ifconfig

eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 172.16.128.3  netmask 255.255.0.0  broadcast 172.16.255.255

        inet6 fe80::20c:29ff:fee4:b5eb  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:e4:b5:eb  txqueuelen 1000  (Ethernet)

        RX packets 755924  bytes 939077981 (895.5 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 174367  bytes 11214179 (10.6 MiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eno16777736:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 172.16.128.100  netmask 255.255.0.0  broadcast 172.16.255.255

        ether 00:0c:29:e4:b5:eb  txqueuelen 1000  (Ethernet)

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 0  (Local Loopback)

        RX packets 20  bytes 1904 (1.8 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 20  bytes 1904 (1.8 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ip 命令:

[root@localhost ~]# ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host 

       valid_lft forever preferred_lft forever

2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:e4:b5:eb brd ff:ff:ff:ff:ff:ff

    inet 172.16.128.3/16 brd 172.16.255.255 scope global dynamic eno16777736

       valid_lft 1370sec preferred_lft 1370sec

    inet 172.16.128.100/16 brd 172.16.255.255 scope global secondary eno16777736:0

       valid_lft forever preferred_lft forever

    inet6 fe80::20c:29ff:fee4:b5eb/64 scope link 

       valid_lft forever preferred_lft forever

netstat 列出當前服務器所有的TCP/IP網絡連接

[root@localhost ~]# netstat -ntlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    

tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1751/master         

tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1610/rpcbind        

tcp        0      0 0.0.0.0:36692           0.0.0.0:*               LISTEN      1618/rpc.statd      

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1612/sshd           

tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      2380/cupsd          

tcp6       0      0 ::1:25                  :::*                    LISTEN      1751/master         

tcp6       0      0 :::58625                :::*                    LISTEN      1618/rpc.statd      

tcp6       0      0 :::111                  :::*                    LISTEN      1610/rpcbind        

tcp6       0      0 :::22                   :::*                    LISTEN      1612/sshd           

tcp6       0      0 ::1:631                 :::*                    LISTEN      2380/cupsd 

ss 功能同netstat類似,但速度比netstat快

[root@localhost ~]# ss -ntal

State      Recv-Q Send-Q                    Local Address:Port                      Peer Address:Port 

LISTEN     0      100                           127.0.0.1:25                                   *:*     

LISTEN     0      128                                   *:111                                  *:*     

LISTEN     0      128                                   *:36692                                *:*     

LISTEN     0      128                                   *:22                                   *:*     

LISTEN     0      128                           127.0.0.1:631                                  *:*     

LISTEN     0      100                                 ::1:25                                  :::*     

LISTEN     0      128                                  :::58625                               :::*     

LISTEN     0      128                                  :::111                                 :::*     

LISTEN     0      128                                  :::22                                  :::*     

LISTEN     0      128                                 ::1:631                                 :::*     

[root@localhost ~]# 

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

  Linux系統軟件包管理方法,主要有兩種,一是直接使用RPM進行軟件包管理,另一種是借助yum工具。

  RPM:

    安裝:  rpm -ivh packagename 

升級:  rpm -U packagename 

卸載:  rpm -e packagename 

查看當前所有rpm包: rpm -qa 

查看某個rpm包的信息: rpm -qi packagename 

  YUM:

安裝:  yum install packagename

升級:  yum update packagename 

卸載:  yum remove packagename 

查看當前所有rpm包: yum list  

查看某個rpm包的信息: yum info packagename 

 

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

首先掛載光盤

    mount /dev/cdrom /mnt/cdrom -t 9665

然后,增加一個repository配置文件 在 /etc/yum.repos.d 添加后綴為 repo的文件。

例如:local.repo 

  [repositoryID] 

name=Some name for this repository   //倉庫名稱

baseurl=url://path/to/repository/      //倉庫路徑,路徑的形式有多種,可以是:

            ftp://

   http://

nfs://

file:///

也可以多條,每個地址路徑寫一行即可

這里指定光盤作為倉庫,則baseurl寫成:

        baseurl=file:///mnt/cdrom 

            

enabled={1|0}   //是否啟用此倉庫,1為啟用,0為停用

gpgcheck={1|0}  //是否進行gpg(GNU Private Guard)檢驗,以確定rpm包來源是有效和安全的

gpgkey=URL

enablegroups={1|0}

failovermethod={roundrobin|priority} //默認為:roundrobin,意為隨機挑選;

cost=                         //倉庫權值,默認為1000

通過這樣設置,就可為系統將光盤配置為本地源倉庫。

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

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

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

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

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

   

#!/bin/bash

#

#list /etc/rc.d/rc3.d/

declare -i m=0

declare -i n=0

dir=/etc/rc.d/rc3.d/

Sfiles=`ls $dir | grep ^S`

for i in $Sfiles ; do

  echo "${i}Start"

  m=$m+1

done

Kfiles=`ls $dir | grep ^K`

for j in $Kfiles ; do

  echo "${j}Kstart"

  n=$n+1

done

echo "Total Kfile is : $n"

echo "Total Sfile is : $m"

      

   

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

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

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

   

#!/bin/bash

#

#sum userid

declare -i uids=0

declare -i totals=0

if [ $# -lt 1 ]; then

  echo "Please input atlest 1st args!"

  exit 2

fi

#echo "\$\*:$*"

for i in $* ; do

   if id $i ; then

      let uids=0

      uids=`id -u $i`

      echo "uids: $uids"

      echo "totals: $totals"

      let $totals=$totals+$uids

echo "totals: $totals"

   fi

done

echo "Total UID's is: $totals."

   

 

14、寫一個腳本

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

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

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

   #!/bin/bash

#

#show dir

declare -i totalfiles=0

if [ $# -lt 1 ]; then

  echo "Please input the DIR path"

  exit 2

fi

for i in $*; do

  if [ -d $i ]; then

    for j in `ls $i`; do

       if [ -d $j ]; then

         echo "$j is a dir"

       elif [ -f $j ]; then

         echo "$j is a file"

       else

         echo "Unknow $j"

       fi

       totalfiles=$totalfiles+1

    done

  fi

done

echo "Total Files is: $totalfiles."

   

      

15、寫一個腳本

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

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

   

#!/bin/bash

#

#show uid > 500

declare -i uids=0

if [ $# -lt 1 ]; then

  echo "Please input a username as arg"

  exit 2

fi

if ! id $1 &> /dev/null ; then

  echo "$1: not such user."

fi

uids=`id -u $1`

if [ $uids -gt 500 ]; then

  echo "User $1 is a comm user."

fi

 

   

   

16、寫一個腳本

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

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

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

#!/bin/bash

#

#add user

declare -i totals=0

for i in {1..10}; do

  if ! id user$i &> /dev/null  ; then

    useradd user$i &> /dev/null

    echo $i | passwd user$i &> /dev/null

    totals=$totals+1

  fi

done

echo "Total add user: $totals"

  

  

  

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

 #!/bin/bash

  #

  #ping hosts

   hosts=172.16.250

   for i in {20..100} ; do

     if  ping -c 1 -w 1 $hosts.$i &> /dev/null  ; then

       echo "$hosts.$i is up"

     fi

   done

  

18、打印九九乘法表

[root@localhost tmp]# vim 9X9.sh 

#!/bin/bash

#

#print 9X9

declare -i m=1

declare -i n=1

while [ $n -le 9 ]; do

  while [ $m -le $n ]; do

    echo -e -n  "${m}X${n}=$[$m*$n]\t"

    m=$m+1

  done

  echo

  m=1

  n=$n+1

done

原創文章,作者:馬哥Net19_小斌斌,如若轉載,請注明出處:http://www.www58058.com/20773

(0)
馬哥Net19_小斌斌馬哥Net19_小斌斌
上一篇 2016-06-29 14:29
下一篇 2016-06-29 14:30

相關推薦

  • 20160808課堂練習(sed工具)

    練習: 1、  刪除/etc/grub2.conf文件中所有以空白開頭的行行首的空白字符 # sed 's@^[[:space:]]\+@@' /etc/grub2.cfg                    2、刪除/etc/…

    Linux干貨 2016-08-10
  • 計算機的組成及其功能

    計算機的組成及其功能 計算機由五部分組成 運算器 實現算術運算和邏輯運算(和控制器組成CPU) 控制器 控制總線的使用權限,完成尋址和控制對內存當中的訪問權限是做讀訪問還是寫訪問 存儲器 內存,RAM(Random Access Memory) 輸入(Input) 下指令,提供數據 輸出(Output) 輸出數據加工的結果

    2018-02-22
  • N25_第三周

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 who | cut -d' ' -f1 | sort -u [root@server1 ~]# who  | cut -d' ' -f1 …

    Linux干貨 2016-12-17
  • 管理SYSTEMd

    核心概念unit,systemctl管理系統服務,

    Linux干貨 2018-01-04
  • N25第二周作業

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。     其常用的有: touch、stat、rm、cp、mv、install touch 命令    命令格式: touch [OPTION]… File… 命令參數: -a&n…

    Linux干貨 2016-12-12
  • 第十一周:OPENSSL和DNS

    詳見我的51cto博客:http://afterdawn.blog.51cto.com/

    Linux干貨 2016-12-09

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-06-29 14:54

    寫的很好,有的腳本可以在優化一下,多注意排版

欧美性久久久久