[作業] 馬哥2016全新Linux+Python高端運維班第八週作業

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


  網橋:比較古老的方式二層交換設備,網橋的兩個端口分別有一條獨立的交換信道,不是共享一條背板總線,可隔離衝突域。類似中繼器。


  集線器: 二層交換設備,多口的網橋


  二層交換機: 二層交換設備,可以識別數據包中的MAC地址信息,根據MAC地址進行轉發,並將這些MAC地址與對應的端口記錄在自己內部的一個地址表中


  三層交換機: 工作在二層和三層,具有路由功能的交換機。三層交換機的最重要目的是加快大型局域網內部的數據交換,所具有的路由功能也是爲這目的服務的,能夠做到一次路由,多次轉發。對於數據包轉發等規律性的過程由硬件高速實現,而像路由信息更新、路由表維護、路由計算、路由確定等功能,由軟件實現。


  路由器:是連接因特網中各局域網、廣域網的設備,它會根據信道的情況自動選擇和設定路由,以最佳路徑,按前後順序發送信號。



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


  IPv4 地址分類:


    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


    E類:

      240-255


  子網掩碼:

    點分十進制:0-255

      0000 0000 - 1111 1111


      0.0.0.0-255.255.255.255


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


  OSI模型

    物理層:提供爲建立、維護和拆除物理鏈路所需要的機械的、電氣的、功能的和規程的特性;有關的物理鏈路上傳輸非結構的位流以及故障檢測指示。

      物理層的媒體包括架空明線、平衡電纜、光纖、無線信道等

    數據鏈路層:在網絡層實體間提供數據發送和接收的功能和過程;提供數據鏈路的流控。

      二層交換機,集線器,網橋

    網絡層:控制分組傳送系統的操作、路由選擇、擁護控制、網絡互連等功能,它的作用是將具體的物理傳送對高層透明。

      路由器,三層交換機

    傳輸層:提供建立、維護和拆除傳送連接的功能;選擇網絡層提供最合適的服務;在系統之間提供可靠的透明的數據傳送,提供端到端的錯誤恢復和流量控制。

    會話層:提供兩進程之間建立、維護和結束會話連接的功能;提供交互會話的管理功能,如三種數據流方向的控制,即一路交互、兩路交替和兩路同時會話模式 。

    表示層:代表應用進程協商數據表示;完成數據轉換、格式化和文本壓縮。

    應用層:提供OSI用戶服務,例如事務處理程序、文件傳送協議和網絡管理等。


  tcp/ip分層:

  第一層:網絡接口層

  包括用於協作IP數據在已有網絡介質上傳輸的協議。實際上TCP/IP標準並不定義與ISO數據鏈路層和物理層相對應的功能。相反,它定義像地址解析協議(Address Resolution Protocol,ARP)這樣的協議,提供TCP/IP協議的數據結構和實際物理硬件之間的接口。

  第二層:網絡層(Internet Layer)。網絡層解決的是計算機到計算機間的通信問題,它包括三個方面的功能:


    處理來自傳輸層的分組發送請求,收到請求後將分組裝入IP數據報,填充報頭,選擇路徑,然後將數據報發往適當的網絡接口。


    處理數據報。


    處理網絡控制報文協議、即處理路徑、流量控制、阻塞等。


  對應於OSI七層參考模型的網絡層。本層包含IP協議、RIP協議(Routing Information Protocol,路由信息協議),負責數據的包裝、尋址和路由。同時還包含網間控制報文協議(Internet Control Message Protocol,ICMP)用來提供網絡診斷信息。

  第三層:傳輸層

  傳輸層解決的是計算機程序到計算機程序之間的通信問題。對應於OSI七層參考模型的傳輸層,它提供兩種端到端的通信服務。其中TCP協議(Transmission Control Protocol)提供可靠的數據流運輸服務,UDP協議(Use Datagram Protocol)提供不可靠的用戶數據報服務。

  第四層:應用層

  對應於OSI七層參考模型的應用層和表達層。因特網的應用層協議包括Finger、Whois、FTP(文件傳輸協議)、Gopher、HTTP(超文本傳輸協議)、Telent(遠程終端協議)、SMTP(簡單郵件傳送協議)、IRC(因特網中繼會話)、NNTP(網絡新聞傳輸協議)等。




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


  1、Linux主機有一個可以正常被系統識別的網卡

  2、網卡的接口上有一條可以正常和外界交換的鏈路

    ifconfig,ip addr查看網卡狀態

  3、爲網卡指定一個正確的IP地址和路由

    靜態指定:

        ifcfg: ifconfig, route, netstat

        ip: object {link, addr, route}, ss, tc

        配置文件

          system-config-network-tui (setup)

        CentOS 7:

          nmcli, nmtui

    netstat查看路由

  4、爲機器指定一個正確的網關

    /etc/sysconfig/network-scripts/ifcfg-XXX

    /etc/sysconfig/networking

      GATEWAY=XXXXXXX

  5、爲機器制定DNS解析服務器

    /etc/resolv.conf

      nameserver DNS_SERVER_IP1 #主DNS

      nameserver DNS_SERVER_IP2 #次DNS

      nameserver DNS_SERVER_IP3 #第三DNS





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


    配置方式:

      靜態指定:

        ifcfg: ifconfig, route, netstat

        ip: object {link, addr, route}, ss, tc

        配置文件

          system-config-network-tui (setup)

        CentOS 7:

          nmcli, nmtui

      動態分配:

        DHCP: Dynamic Host Configuration Protocol


    配置網絡接口:

        CentOS 6: 

          以太網:eth[0,1,2,...]

          ppp:ppp[0,1,2,...]


      ifconfig命令

        ifconfig [interface]

          # ifconfig -a

          # ifconfig IFACE [up|down]

            ifconfig interface [aftype] options | address ...

              # ifconfig IFACE IP/mask [up]

              # ifconfig IFACE IP netmask MASK


              注意:立即生效;


              啓用混雜模式:[-]promisc


          route命令

            路由管理命令

              查看:route -n

              添加:route add

                route add  [-net|-host]  target [netmask Nm] [gw Gw] [[dev] If]


                  目標:192.168.1.3  網關:172.16.0.1

                  ~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0


                  目標:192.168.0.0 網關:172.16.0.1

                  ~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0

                  ~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0


                  默認路由,網關:172.16.0.1

                  ~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1

                  ~]# route add default gw 172.16.0.1


              刪除:route del

                route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]


                  目標:192.168.1.3  網關:172.16.0.1

                  ~]# route del -host 192.168.1.3


                  目標:192.168.0.0 網關:172.16.0.1

                  ~]# route del -net 192.168.0.0 netmask 255.255.255.0


            DNS服務器指定

              /etc/resolv.conf

                nameserver DNS_SERVER_IP1

                nameserver DNS_SERVER_IP2

                nameserver DNS_SERVER_IP3


              正解:FQDN-->IP

                # dig -t A FQDN

                # host -t A FQDN

              反解:IP-->FQDN

                # dig -x IP

                # host -t PTR IP

                

                FQDN: www.magedu.com.


            netstat命令:

              netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships


              顯示網絡連接:

                netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]]  [--program|-p]

                  -t: tcp協議相關

                  -u: udp協議相關

                  -w: raw socket相關

                  -l: 處於監聽狀態

                  -a: 所有狀態

                  -n: 以數字顯示IP和端口;

                  -e:擴展格式

                  -p: 顯示相關進程及PID


                  常用組合:

                    -tan, -uan, -tnl, -unl


              顯示路由表:

                netstat  {--route|-r} [--numeric|-n]

                  -r: 顯示內核路由表

                  -n: 數字格式


              顯示接口統計數據:

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


                  # netstat -i

                  # netstat -I IFACE  


          總結:ifcfg家庭命令配置

            ifconfig/route/netstat

            ifup/ifdown




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

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

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


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



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


    DEVICE:此配置文件應用到的設備;

    HWADDR:對應的設備的MAC地址;

    BOOTPROTO:激活此設備時使用的地址配置協議,常用的dhcp, static, none, bootp;

    NM_CONTROLLED:NM是NetworkManager的簡寫;此網卡是否接受NM控制;CentOS6建議爲“no”;

    ONBOOT:在系統引導時是否激活此設備;

    TYPE:接口類型;常見有的Ethernet, Bridge;

    UUID:設備的惟一標識;


    IPADDR:指明IP地址;

    NETMASK:子網掩碼;

    GATEWAY: 默認網關;

    DNS1:第一個DNS服務器指向;

    DNS2:第二個DNS服務器指向;


    USERCTL:普通用戶是否可控制此設備;

    PEERDNS:如果BOOTPROTO的值爲“dhcp”,是否允許dhcp server分配的dns服務器指向信息直接覆蓋至/etc/resolv.conf文件中;


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


    ifconfig:

      ifconfig IFACE_ALIAS 

    ip

      ip addr add 

    配置文件:

      ifcfg-IFACE_ALIAS

        DEVICE=IFACE_ALIAS


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


  ip命令:

      ip - show / manipulate routing, devices, policy routing and tunnels


      ip [ OPTIONS ] OBJECT { COMMAND | help }


        OBJECT := { link | addr | route }


      link OBJECT:

        ip link - network device configuration


          set

            dev IFACE

            可設置屬性:

              up and down:激活或禁用指定接口;


          show

            [dev IFACE]:指定接口

            [up]:僅顯示處於激活狀態的接口


        ip address - protocol address management


          ip addr { add | del } IFADDR dev STRING

            [label LABEL]:添加地址時指明網卡別名

            [scope {global|link|host}]:指明作用域

              global: 全局可用;

              link: 僅鏈接可用;

              host: 本機可用;

            [broadcast ADDRESS]:指明廣播地址


          ip address show - look at protocol addresses

            [dev DEVICE]

            [label PATTERN]

            [primary and secondary]


          ip address flush - flush protocol addresses

            使用格式同show


        ip route - routing table management


          ip route add

            添加路由:ip route add TARGET via GW dev IFACE src SOURCE_IP

              TARGET:

                主機路由:IP

                網絡路由:NETWORK/MASK


              添加網關:ip route add defalt via GW dev IFACE


          ip route delete

            刪除路由:ip route del TARGET 


          ip route show

          ip route flush

            [dev IFACE]

            [via PREFIX]


  ss命令:

    格式:ss [OPTION]... [FILTER]

      選項:

        -t: tcp協議相關

        -u: udp協議相關

        -w: 裸套接字相關

        -x:unix sock相關

        -l: listen狀態的連接

        -a: 所有

        -n: 數字格式

        -p: 相關的程序及PID

        -e: 擴展的信息

        -m:內存用量

        -o:計時器信息


        FILTER := [ state TCP-STATE ] [ EXPRESSION ]


    TCP的常見狀態:

      tcp finite state machine:

        LISTEN: 監聽

        ESTABLISHED:已建立的連接

        FIN_WAIT_1

        FIN_WAIT_2

        SYN_SENT

        SYN_RECV

        CLOSED


      EXPRESSION:

        dport = 

        sport = 

        示例:’( dport = :ssh or sport = :ssh )’


    常用組合:

      -tan, -tanl, -tanlp, -uan


  netstat命令:

        netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships


        顯示網絡連接:

          netstat [--tcp|-t] [--udp|-u] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]]  [--program|-p]

            -t: tcp協議相關

            -u: udp協議相關

            -w: raw socket相關

            -l: 處於監聽狀態

            -a: 所有狀態

            -n: 以數字顯示IP和端口;

            -e:擴展格式

            -p: 顯示相關進程及PID


            常用組合:

              -tan, -uan, -tnl, -unl


        顯示路由表:

          netstat  {--route|-r} [--numeric|-n]

            -r: 顯示內核路由表

            -n: 數字格式


        顯示接口統計數據:

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


            # netstat -i

            # netstat -I IFACE


  ifconfig命令

        ifconfig [interface]

          # ifconfig -a

          # ifconfig IFACE [up|down]

            ifconfig interface [aftype] options | address ...

              # ifconfig IFACE IP/mask [up]

              # ifconfig IFACE IP netmask MASK


              注意:立即生效;

              啓用混雜模式:[-]promisc


  路由管理命令

              查看:route -n

              添加:route add

                route add  [-net|-host]  target [netmask Nm] [gw Gw] [[dev] If]


                  目標:192.168.1.3  網關:172.16.0.1

                  ~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0


                  目標:192.168.0.0 網關:172.16.0.1

                  ~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0

                  ~]# route add -net 192.168.0.0/24 gw 172.16.0.1 dev eth0


                  默認路由,網關:172.16.0.1

                  ~]# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1

                  ~]# route add default gw 172.16.0.1


              刪除:route del

                route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]


                  目標:192.168.1.3  網關:172.16.0.1

                  ~]# route del -host 192.168.1.3


                  目標:192.168.0.0 網關:172.16.0.1

                  ~]# route del -net 192.168.0.0 netmask 255.255.255.0


            DNS服務器指定

              /etc/resolv.conf

                nameserver DNS_SERVER_IP1

                nameserver DNS_SERVER_IP2

                nameserver DNS_SERVER_IP3


              正解:FQDN-->IP

                # dig -t A FQDN

                # host -t A FQDN

              反解:IP-->FQDN

                # dig -x IP

                # host -t PTR IP

                

                FQDN: www.magedu.com.


  Linux網絡屬性配置的tui(text user interface):

    system-config-network-tui


    也可以使用setup找到;


  CentOS7

  地址配置工具:nmcli

      nmcli  [ OPTIONS ] OBJECT { COMMAND | help }


        device - show and manage network interfaces


        connection - start, stop, and manage network connections


      如何修改IP地址等屬性:

        #nmcli connection modify IFACE [+|-]setting.property value

           setting.property:

            ipv4.addresses

            ipv4.gateway

            ipv4.dns1

            ipv4.method

              manual


    網絡接口配置tui工具:nmtui


    主機名稱配置工具:hostnamectl

    status

    set-hostname


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


顯示倉庫列表:

      repolist [all|enabled|disabled]


    顯示程序包:

      list

        # yum list [all | glob_exp1] [glob_exp2] [...]

        # yum list {available|installed|updates} [glob_exp1] [...]


    安裝程序包:

      install package1 [package2] [...]


      reinstall package1 [package2] [...]  (重新安裝)


    升級程序包:

      update [package1] [package2] [...]


      downgrade package1 [package2] [...] (降級)


    檢查可用升級:

      check-update


    卸載程序包:

      remove | erase package1 [package2] [...]


    查看程序包information:

      info [...]


    查看指定的特性(可以是某文件)是由哪個程序包所提供:

      provides | whatprovides feature1 [feature2] [...]


    清理本地緩存:

      clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]


    構建緩存:

      makecache


    搜索:

      search string1 [string2] [...]


      以指定的關鍵字搜索程序包名及summary信息;


    查看指定包所依賴的capabilities:

      deplist package1 [package2] [...]


    查看yum事務歷史:

      history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]


    安裝及升級本地程序包:

    * localinstall rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use install)

        * localupdate rpmfile1 [rpmfile2] [...]

           (maintained for legacy reasons only - use update)


    包組管理的相關命令:

        * groupinstall group1 [group2] [...]

        * groupupdate group1 [group2] [...]

        * grouplist [hidden] [groupwildcard] [...]

        * groupremove group1 [group2] [...]

        * groupinfo group1 [...]


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


  (1) 掛載光盤至某目錄,例如/media/cdrom

        # mount -r -t iso9660 /dev/cdrom /media/cdrom

  (2) 創建配置文件

      [CentOS7]

      name=

      baseurl=

      gpgcheck=

      enabled=


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

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

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

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

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

#!/bin/bash
CountK=0
CountS=0
for i in $(ls /etc/rc.d/rc3.d)
do
[[ $i =~ ^K  ]] && cp /etc/rc.d/rc3.d/$i /etc/rc.d/rc3.d/stop_$i && let CountK++ 
[[ $i =~ ^S  ]] && cp /etc/rc.d/rc3.d/$i /etc/rc.d/rc3.d/start_$i && let CountS++
done
echo "Total file start with K==> $CountK"
echo "Total file start with P==> $CountS"



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

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

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


[root@lbtest03 shell]# cat 13.sh
#!/bin/bash
Sum=0
for i in $@
do
ID=$(grep "^$i" /etc/passwd|cut -d: -f3)
let Sum+=$ID
done
echo "total ==> $Sum"
[root@lbtest03 shell]# bash 13.sh ericz sam sam.yi bin adm bin bin bin
total ==> 3022
[root@lbtest03 shell]# bash 13.sh ericz sam sam.yi bin adm bin bin bin bin
total ==> 3023
[root@lbtest03 shell]#



14、寫一個腳本

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

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

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


[root@lbtest03 shell]# cat 14.sh
#!/bin/bash
CountDir=0
CountFile=0
for DirName in $@
do
[[ -d DirName ]] && continue
for FileName in $(ls $DirName)
do
file $DirName/$FileName && let CountFile++
done
let CountDir++
done
echo "Total Dir==> $CountDir"
echo "Total File==> $CountFile"
[root@lbtest03 shell]# bash 14.sh /tmp /etc
/tmp/123: directory
/tmp/api-hccgw.homecredit.cn.conf.maintenance: ASCII text
/tmp/api-hccgw.homecredit.cn.conf.normal: ASCII text
/tmp/hsperfdata_root: directory
/tmp/maintainpage: directory
/tmp/systemd-private-AwD0QN: directory
/tmp/systemd-private-d0txak: directory
/tmp/systemd-private-IsJqQ1: directory
/etc/adjtime: ASCII text
/etc/aliases: ASCII text
/etc/aliases.db: Berkeley DB (Hash, version 9, native byte-order)
/etc/alternatives: directory
/etc/anacrontab: ASCII text
/etc/ansible: directory
/etc/asound.conf: ASCII text
/etc/at.deny: very short file (no magic)
/etc/audisp: directory
/etc/audit: directory
/etc/avahi: directory
/etc/bash_completion.d: directory
/etc/bashrc: ASCII text
/etc/binfmt.d: directory
/etc/centos-release: ASCII text
/etc/chkconfig.d: directory
/etc/cron.d: directory
/etc/cron.daily: directory
/etc/cron.deny: empty
/etc/cron.hourly: directory
/etc/cron.monthly: directory
/etc/crontab: ASCII text
/etc/cron.weekly: directory
/etc/crypttab: empty
/etc/csh.cshrc: ASCII text
/etc/csh.login: ASCII text
/etc/dbus-1: directory
/etc/default: directory
/etc/depmod.d: directory
/etc/dhcp: directory
/etc/DIR_COLORS: ASCII text
/etc/DIR_COLORS.256color: ASCII text
/etc/DIR_COLORS.lightbgcolor: ASCII text
/etc/dnf: directory
/etc/dnsmasq.conf: ASCII text
/etc/dnsmasq.d: directory
/etc/docker: directory
/etc/dracut.conf: ASCII text
/etc/dracut.conf.d: directory
/etc/e2fsck.conf: ASCII text
/etc/environment: empty
/etc/ethertypes: ASCII text
/etc/exports: empty
/etc/favicon.png: symbolic link to `/usr/share/icons/hicolor/16x16/apps/fedora-logo-icon.png'
/etc/filesystems: ASCII text
/etc/firewalld: directory
/etc/fonts: directory
/etc/foomatic: directory
/etc/fstab: ASCII text
/etc/gcrypt: directory
/etc/gdbinit: ASCII text
/etc/gdbinit.d: directory
/etc/ghostscript: directory
/etc/glances: directory
/etc/gnupg: directory
/etc/GREP_COLORS: ASCII text
/etc/groff: directory
/etc/group: ASCII text
/etc/group-: ASCII text
/etc/grub2.cfg: symbolic link to `../boot/grub2/grub.cfg'
/etc/grub.d: directory
/etc/gshadow: ASCII text
/etc/gshadow-: ASCII text
/etc/gss: directory
/etc/haproxy: directory
/etc/host.conf: ASCII text
/etc/hostname: ASCII text
/etc/hosts: ASCII text
/etc/hosts.allow: ASCII text
/etc/hosts.deny: ASCII text
/etc/httpd: directory
/etc/init.d: symbolic link to `rc.d/init.d'
/etc/inittab: ASCII text
/etc/inputrc: ASCII text
/etc/inputrc.origin: ASCII text
/etc/iproute2: directory
/etc/issue: ASCII text
/etc/issue.net: ASCII text
/etc/java: directory
/etc/jvm: directory
/etc/jvm-commmon: directory
/etc/kdump.conf: ASCII text
/etc/kernel: directory
/etc/krb5.conf: ASCII text
/etc/ld.so.cache: data
/etc/ld.so.conf: ASCII text
/etc/ld.so.conf.d: directory
/etc/libaudit.conf: ASCII text
/etc/libnl: directory
/etc/libreport: directory
/etc/libuser.conf: ASCII text
/etc/locale.conf: ASCII text
/etc/localtime: symbolic link to `../usr/share/zoneinfo/Asia/Shanghai'
/etc/login.defs: ASCII text
/etc/logrotate.conf: ASCII text
/etc/logrotate.d: directory
/etc/logstash-agent-nginx.conf: ASCII text
/etc/lsb-release.d: directory
/etc/lvm: directory
/etc/machine-id: ASCII text
/etc/magic: magic text file for file(1) cmd, ASCII text
/etc/mailcap: ASCII text
/etc/mail.rc: ASCII text
/etc/makedumpfile.conf.sample: ASCII text
/etc/man_db.conf: ASCII text
/etc/maven: directory
/etc/mime.types: UTF-8 Unicode text
/etc/mke2fs.conf: ASCII text
/etc/modprobe.d: directory
/etc/modules-load.d: directory
/etc/mongod_27017.conf: ASCII text
/etc/mongod_27018.conf: ASCII text
/etc/mongod_27019.conf: ASCII text
/etc/mongod.conf: ASCII text
/etc/motd: empty
/etc/mtab: symbolic link to `/proc/self/mounts'
/etc/my.cnf: ASCII text
/etc/my.cnf.d: directory
/etc/NetworkManager: directory
/etc/networks: ASCII text
/etc/nginx: directory
/etc/nsswitch.conf: ASCII text
/etc/nsswitch.conf.bak: ASCII text
/etc/ntp: directory
/etc/ocsinventory-agent: directory
/etc/openldap: directory
/etc/opt: directory
/etc/os-release: ASCII text
/etc/pam.d: directory
/etc/passwd: ASCII text
/etc/passwd-: ASCII text
/etc/pkcs11: directory
/etc/pki: directory
/etc/plymouth: directory
/etc/pm: directory
/etc/polkit-1: directory
/etc/popt.d: directory
/etc/postfix: directory
/etc/ppp: directory
/etc/prelink.conf.d: directory
/etc/printcap: ASCII text
/etc/profile: ASCII text
/etc/profile.d: directory
/etc/protocols: ASCII text
/etc/python: directory
/etc/rc0.d: symbolic link to `rc.d/rc0.d'
/etc/rc1.d: symbolic link to `rc.d/rc1.d'
/etc/rc2.d: symbolic link to `rc.d/rc2.d'
/etc/rc3.d: symbolic link to `rc.d/rc3.d'
/etc/rc4.d: symbolic link to `rc.d/rc4.d'
/etc/rc5.d: symbolic link to `rc.d/rc5.d'
/etc/rc6.d: symbolic link to `rc.d/rc6.d'
/etc/rc.d: directory
/etc/rc.local: symbolic link to `rc.d/rc.local'
/etc/redhat-lsb: directory
/etc/redhat-release: symbolic link to `centos-release'
/etc/redis.conf: ASCII text
/etc/redis-sentinel.conf: ASCII text
/etc/resolv.conf: ASCII text
/etc/rpc: ASCII text
/etc/rpm: directory
/etc/rpmdevtools: directory
/etc/rsyncd.conf: ASCII text
/etc/rsyslog.conf: ASCII text
/etc/rsyslog.conf.2015-11-18_00-00-21: ASCII text
/etc/rsyslog.d: directory
/etc/rwtab: ASCII text
/etc/rwtab.d: directory
/etc/sasl2: directory
/etc/securetty: ASCII text
/etc/security: directory
/etc/selinux: directory
/etc/services: C++ source, ASCII text
/etc/sestatus.conf: ASCII text
/etc/shadow: ASCII text
/etc/shadow-: ASCII text
/etc/shells: ASCII text
/etc/skel: directory
/etc/sos.conf: ASCII text
/etc/ssh: directory
/etc/ssl: directory
/etc/statetab: ASCII text
/etc/statetab.d: directory
/etc/subversion: directory
/etc/sudo.conf: ASCII text
/etc/sudoers: C source, ASCII text
/etc/sudoers.2015-11-18_00-00-20: C source, ASCII text
/etc/sudoers.d: directory
/etc/sudo-ldap.conf: UTF-8 Unicode text
/etc/sysconfig: directory
/etc/sysctl.conf: ASCII text
/etc/sysctl.d: directory
/etc/systemd: directory
/etc/system-release: symbolic link to `centos-release'
/etc/system-release-cpe: ASCII text
/etc/terminfo: directory
/etc/tmpfiles.d: directory
/etc/Trolltech.conf: ASCII text
/etc/trusted-key.key: ASCII text, with very long lines, with CRLF line terminators
/etc/tuned: directory
/etc/udev: directory
/etc/uwsgi9090.ini: UTF-8 Unicode text
/etc/vconsole.conf: ASCII text
/etc/vimrc: ASCII text, with escape sequences
/etc/virc: ASCII text, with escape sequences
/etc/vsftpd: directory
/etc/wgetrc: ASCII text
/etc/wpa_supplicant: directory
/etc/X11: directory
/etc/xdg: directory
/etc/xinetd.d: directory
/etc/yum: directory
/etc/yum.conf: ASCII text
/etc/yum.conf.2015-11-18_00-00-18: ASCII text
/etc/yum.repos.d: directory
Total Dir==> 2
Total File==> 223
[root@lbtest03 shell]#



15、寫一個腳本

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

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


[root@lbtest03 shell]# bash 15.sh ericz
Common user
[root@lbtest03 shell]# bash 15.sh root
[root@lbtest03 shell]# cat 15.sh
#!/bin/bash
[[ $(id -u $1) -gt 500 ]] && echo "Common user"
[root@lbtest03 shell]#



16、寫一個腳本

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

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

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


[root@lbtest03 shell]# cat 16.sh 
#!/bin/bash
count=0
for i in $(seq 1 10)
do
id user$i >/dev/null 2>&1 && continue 
useradd user$i
let count++
done
echo "Total==> $count"
[root@lbtest03 shell]#



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


#!/bin/bash
for i in $(seq 1 254)
do
        ServerIp=172.16.250.$i
        ping -c 1 -w 1 $ServerIp &> /dev/null
        if [ $? -eq 0 ]; then
                echo -e "\033[0;32;1m $ServerIp is up. \033[0m"
        fi
done


18、打印九九乘法表;


http://zhangke0516.blog.51cto.com/1655731/1839502


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章