22期第8周課堂練習

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

blob.png

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

  A類:第一段為網絡號,后三段為主機號   

        網絡號0 000 0000 – 0 111 1111:1-127                  

        網絡數量:126,127                  

        每個網絡中的主機數量:2^24-2                  

        默認子網掩碼:255.0.0.0,/8                           

        私網地址:10.0.0.0/255.0.0.0   

  

  B類:前兩段為網絡號,后兩段為主機號

   網絡號:10 00 0000 – 10 11 1111:128-191         網絡數量:2^14

   每個網絡中的主機數量:2^16-2

   默認子網掩碼:255.255.0.0,/16        

   私網地址:172.16.0.0-172.31.0.0  C類:前三段為網絡號,最后一段為主機號

   網絡號:110 0 0000 – 110 1 1111:192-223            網絡數:2^21

   每個網絡中的主機數量:2^8-2

   默認子網掩碼:255.255.255.0,  /24

  D類:組播

  網絡號:1110 0000 – 1110 1111:224-239

  E類:科研 240-255      

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

  blob.png

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

1.修改/etc/sysconfig/network-scripts/ifcfg-eth0 
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 

DEVICE=eth0
HWADDR=00:0C:29:9C:52:A6
TYPE=Ethernet
UUID=2d7a302b-7ce9-4b03-b021-7d7bd22c4c4f
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.2.1
NETMASK=255.255.255.0
GATEWAY=192.168.2.254
DNS1=192.168.2.10
2.重啟網絡服務
[root@localhost ~]# service network restart
Shutting down interface eth0:  Device state: 3 (disconnected)
                                                           [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Active connection state: activating
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/1
state: activated
Connection activated

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

1./etc/sysconfig/network-scripts/配置文件
DEVICE=eth0
HWADDR=00:0C:29:9C:52:A6
TYPE=Ethernet
UUID=2d7a302b-7ce9-4b03-b021-7d7bd22c4c4f
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.2.1
NETMASK=255.255.255.0
GATEWAY=192.168.2.254
DNS1=192.168.2.10

2.setup

3.路由的相關配置文件:/etc/sysconfig/networkj-scripts/route-IFACE      

 2.2 ss命令

ss  [options]  [ FILTER ]

選項:

    -t:TCP協議的相關連接

    -u:UDP相關的連接

    -w:raw socket相關的連接

    -l:監聽狀態的連接

    -a:所有狀態的連接

    -n:數字格式

    -p:相關的程序及其PID

    -e:擴展格式信息

    -m:內存用量

    -o:計時器信息

 2.3nmcli命令

nmcli  [ OPTIONS ] OBJECT { COMMAND | help }

device – show and manage network           

#nmcli device show           

#nmcli device status`interfaces

COMMAND := { status | show | connect | disconnect | delete | wifi | wimax } connection – start, stop, and manage network connections

COMMAND := { show | up | down | add | edit | modify | delete | reload | load } modify [ id | uuid | path ] <ID> [+|-]

<setting>.<property> <value>

    

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

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

#!/bin/bash
for i in 172.16.250.{1..254};do
    ping -c 2 -w 2 $i &> /dev/null
    if [ $? -eq 0 ];then
       echo  -e "\e[32m $i is up \e[0m"
    else
       echo  -e "\e[31m $i is down \e[0m"
    fi
done

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

DEVICE:此配置文件對應的設備的名稱;				
ONBOOT:在系統引導過程中,是否激活此接口;				
UUID:此設備的惟一標識;				
IPV6INIT:是否初始化IPv6;				
BOOTPROTO:激活此接口時使用什么協議來配置接口屬性,常用的有dhcp、bootp、static、none;				
TYPE:接口類型,常見的有Ethernet, Bridge;				
DNS1:第一DNS服務器指向;				
DNS2:備用DNS服務器指向;				
DOMAIN:DNS搜索域;				
IPADDR: IP地址;				N
ETMASK:子網掩碼;CentOS 7支持使用PREFIX以長度方式指明子網掩碼;				
GATEWAY:默認網關;				
USERCTL:是否允許普通用戶控制此設備;				
PEERDNS:如果BOOTPROTO的值為“dhcp”,是否允許dhcp server分配的dns服務器指向覆蓋本地手動指定的DNS服務器指向;默認為允許;				
HWADDR:設備的MAC地址;				NM_CONTROLLED:是否使用NetworkManager服務來控制接口;

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

第一種:[root@localhost ~]# ifconfig  eth0:1 192.168.1.20
第二種:[root@localhost ~]# ip address  add  192.16.2.1/24 dev eth0
第三種:setup
第四種:修改/etc/sysconfig/network-scripts/ifcfg-eth0:1
第五種:Linux網絡屬性配置的tui(text user interface):system-config-network-tui

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


      1.1ifcfg命令家族

     1.1 ifconfig命令
   ifconfig  [INTERFACE]  ifconfig -a:顯示所有接口,包括inactive狀態的接口;				
   ifconfig interface [aftype] options | address ...				
   # ifconfig  IFACE  IP/MASK  [up|down]				
   # ifconfig  IFACE  IP  netmask

       1.2 route命令

路由條目的類型:				
主機路由:目標地址為單個IP;				
網絡路由:目標地址為IP網絡;				
默認路由:目標為任意網絡,0.0.0.0/0.0.0.0				
查看:				
# route  -n			
添加:route  add  [-net|-host]  target  [netmask  Nm]  [gw GW]  [[dev] If]
刪除:
route  del  [-net|-host] target  [gw Gw]  [netmask Nm]  [[dev] If]

       1.3 netstat命令

顯示路由表:netstat  -rn

        -r:顯示內核路由表

        -n:數字格式

顯示網絡連接: netstat  [–tcp|-t]  [–udp|-u]  [–udplite|-U]  [–sctp|-S]  [–raw|-w]  [–listening|-l]  [–all|-a]  [–numeric|-n]  

 [–extend|-e[–extend|-e]]  [–program|-p] -t:TCP協議的相關連接,連接均有其狀態;FSM(Finate State Machine);

        -u:UDP相關的連接        

        -w:raw socket相關的連接

        -l:處于監聽狀態的連接

        -a:所有狀態

        -n:以數字格式顯示IP和Port;

        -e:擴展格式

        -p:顯示相關的進程及PID;

常用組合:-tan,  -uan,  -tnl,  -unl,  -tunlp

傳輸層協議:

tcp:面向連接的協議;通信開始之前,要建立一個虛鏈路;通信完成后還要拆除連接;

udp:無連接的協議;直接發送數據報文;

顯示接口的統計數據:

netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–verbose|-v] [–program|-p] [–numeric|-n]

所有接口:netstat  -i

指定接口:netstat  -I<IFace>

ifup/ifdown命令:

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

rpm命令:rpm  [OPTIONS]  [PACKAGE_FILE]			
安裝:-i, --install			
升級:-U, --update, -F, --freshen			
卸載:-e, --erase			
查詢:-q, --query			
校驗:-V, --verify			
數據庫維護:--builddb, --initdb

 (1)安裝			
 rpm {-i|--install} [install-options] PACKAGE_FILE ...
 rpm  -ivh  PACKAGE_FILE ...								
 GENERAL OPTIONS:					
 -v:verbose,詳細信息					
 -vv:更詳細的輸出
 (2)升級
  rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...			
  rpm {-F|--freshen} [install-options] PACKAGE_FILE ...							
  -U:升級或安裝;				
  -F:升級								
  rpm  -Uvh PACKAGE_FILE ...				
  rpm  -Fvh PACKAGE_FILE ...									
  --oldpackage:降級;					
  --force:強制升級;	
  (3)卸載	
  rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--test] PACKAGE_NAME ...								
  --allmatches:卸載所有匹配指定名稱的程序包的各版本;				
  --nodeps:忽略依賴關系				
  --test:測試卸載,dry run模式	
  (4)查詢
   rpm {-q|--query} [select-options] [query-options]
   [select-options] PACKAGE_NAME:查詢指定的程序包是否已經安裝,及其版本;				
   -a, --all:查詢所有已經安裝過的包;				
   -f  FILE:查詢指定的文件由哪個程序包安裝生成;								
   -p, --package PACKAGE_FILE:用于實現對未安裝的程序包執行查詢操作;								
   --whatprovides CAPABILITY:查詢指定的CAPABILITY由哪個程序包提供;				
   --whatrequires CAPABILITY:查詢指定的CAPABILITY被哪個包所依賴;
   [query-options]				
   --changelog:查詢rpm包的changlog;				
   -l, --list:程序安裝生成的所有文件列表;				
   -i, --info:程序包相關的信息,版本號、大小、所屬的包組,等;				
   -c, --configfiles:查詢指定的程序包提供的配置文件;				
   -d, --docfiles:查詢指定的程序包提供的文檔;				
   --provides:列出指定的程序包提供的所有的CAPABILITY;				
   -R, --requires:查詢指定的程序包的依賴關系;				
   --scripts:查看程序包自帶的腳本片斷;							
   用法:-qi  PACKAGE, -qf FILE, -qc PACKAGE, -ql PACKAGE, -qd PACKAGE				
         -qpi  PACKAGE_FILE, -qpl PACKAGE_FILE, -qpc PACKAGE_FILE, ...						
         校驗:			
         rpm {-V|--verify} [select-options] [verify-options]												
         S file Size differs			
         M Mode differs (includes permissions and file type)			
         5 digest (formerly MD5 sum) differs			
         D Device major/minor number mismatch			
         L readLink(2) path mismatch			
         U User ownership differs			
         G Group ownership differs			
         T mTime differs			
         P caPabilities differ				
         包來源合法性驗正和完整性驗正:		
         來源合法性驗正:		
         完整性驗正:				
         獲取并導入信任的包制作者的密鑰:			
         對于CentOS發行版來說:rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7					
         驗正:			
         (1) 安裝此組織簽名的程序時,會自動執行驗正;			
         (2) 手動驗正:rpm -K PACKAGE_FILE				
             數據庫重建:rpm管理器數據庫路徑:/var/lib/rpm/			
                         查詢操作:通過此處的數據庫進行;					
                         獲取幫助:			
                         CentOS 6:man rpm			
                         CentOS 7:man rpmdb						
                         rpm {--initdb|--rebuilddb} [--dbpath DIRECTORY] [--root DIRECTORY]				
                         --initdb:初始化數據庫,當前無任何數據庫可實始化創建一個新的;當前有時不執行任何操作;				
                         --rebuilddb:重新構建,通過讀取當前系統上所有已經安裝過的程序包進行重新創建;	

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

    1.將光盤進行掛載:mount -r -t iso9660 /dev/cdrom /media/cdrom
    2.創建yum源中的配置文件;
    [root@localhost network-scripts]# cat /etc/yum.repos.d/test.repo 
        [test]
        name=aa#新建yum名稱
        baseurl=file:///media/cdrom#指定yum源的地址
        enabled=1#是否啟用
        gpcheck=0#是否需要驗證

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

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

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

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

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

#!/bin/bash

for i in $(find /etc/rc.d/rc3.d/K*);do
 echo -e "${i}.stop \n"
done
for j in $(find /etc/rc.d/rc3.d/S*);do
  echo -e "${j}.start \n"
done
echo "$(find /etc/rc.d/rc3.d/K*|wc -l)"
echo "$(find /etc/rc.d/rc3.d/S*|wc -l)"

    13、寫一個腳本,完成以下功能
       (1) 腳本能接受用戶名作為參數;

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

#!\bin\bash
id1=$(head /etc/passwd |tail -1|cut -d: -f3)
id2=$(head -20 /etc/passwd |tail -1 |cut -d: -f3)
sum=$[id1 + id2]
echo $sum

    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
a=`id -u $1`
if ! grep "^$1\>" /etc/passwd &> /dev/null; then
echo "no such user"
elif [ $a -ge 500 ];then
echo "this regular user"
else
  echo "this no regular user"
fi
~

    16、寫一個腳本
       (1)   添加10用戶user1-user10;密碼同用戶名;
       (2) 用戶不存在時才添加;存在時則跳過;

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

#!/bin/bash
declare -i j=0
for i in user{1..10};do
   if grep "^$i\>" /etc/passwd &> /dev/null; then
      echo "User $i exists."
   else
      useradd $i
      echo $i | passwd --stdin $i &> /dev/null
      echo "Add user $i finished."
      let j++
   fi
done
      echo $j

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

#!/bin/bash
for i in 172.16.250.{20..100};do
    ping -c 2 -w 2 $i &> /dev/null
    if [ $? -eq 0 ];then
       echo   "$i is up"
    fi
done

18、打印九九乘法表;

#!/bin/bash
 for i in {1..9};do
       for j in $(seq 1 $i);do
           echo -n -e "${i}x${j}=$[${i}*${j}]\t"
       done
       echo
 done

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

(0)
a295053193a295053193
上一篇 2016-10-09
下一篇 2016-10-09

相關推薦

  • 開班第一天

    我的一篇小日記

    Linux干貨 2018-03-26
  • N25-第三周作業

      alias NAME='COMMAND'           定義命令的別名—對當前用戶有效  un為解除別名 Which   查看命令別名 Whereis    查看程序的文檔和源碼路徑(-b &nbs…

    Linux干貨 2016-12-18
  • Linux Basics–part3

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

    Linux干貨 2017-08-07
  • 筆記

    命令 命令列表 alias 別名 bc 計算器 basename文件基本名 cp 復制 cd 進入文件夾 cat /proc/partition 查看硬盤的使用情況 cat /proc/meminfo 查看內存的使用情況 chvt 切換終端 chown改變文件的所屬組 edj:chown -R www /etc/host clock 查詢或設置硬件時間 ch…

    Linux干貨 2017-05-25
  • N25第四周 chmod chown以及 grep命令的常用示例

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。     [root@localhost ~]# cp -r /etc/skel /home/tuser1   &n…

    Linux干貨 2016-12-22
  • 文本編輯工具vim

                             vim +#: 打開文件直接處在#行 +/PATTERN:打開文件直接處在第一次匹配到行 vim + file :打開文件直接處在最后行 vim –b file :以二進制打開文件…

    Linux干貨 2016-08-12

評論列表(1條)

  • luoweiro
    luoweiro 2016-10-11 23:27

    作業總結詳細認真,尤其是網絡基礎知識的總結,這些雖是基礎的知識,但是還是很有必要認真對待,加油。

欧美性久久久久