腳本

1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現;

    #!/bin/bash
    #
    sum=0
    num=0

    while read line;do
        usershell=$(echo $line | cut -d : -f 7)

        if [ $usershell == "/sbin/nologin" ];then
            let sum++
        else 
            let num++
        fi
    done < /etc/passwd

    echo "Can login user:$num"
    echo "Not can login user:$sum"

 

2、寫一個腳本

(1) 獲取當前主機的主機名,保存于hostname變量中;
(2) 判斷此變量的值是否為localhost,如果是,則將當前主機名修改為www.magedu.com
(3) 否則,則顯示當前主機名;

    #!/bin/bash
    #
    while read line;do
            hostname=$(echo $line | cut -d . -f 1)

            if [ $hostname == "localhost" ];then
                    echo "HOSTNAME=www.magedu.com" > /etc/sysconfig/network
            else
                    echo "$hostname"
            fi
    done < /proc/sys/kernel/hostname

3、寫一個腳本,完成如下功能

(1) 傳遞一個磁盤設備文件路徑給腳本,判斷此設備是否存在;
(2) 如果存在,則顯示此設備上的所有分區信息;

    #!/bin/bash
    #
    read -p "Please enter a disk device path:" path

    while [ -z "$path" ];do
        echo "Please enter a correct disk device path."
        read -p "Please enter a disk device path:" path
    done

    if [ -b "$path" ];then
        fdisk -l $path
    else
        echo "This is not a disk device path."
    fi

4、寫一個腳本,完成如下功能

腳本能夠接受一個參數;
(1) 如果參數1為quit,則顯示退出腳本,并執行正常退出;
(2) 如果參數1為yes,則顯示繼續執行腳本;
(3) 否則,參數1為其它任意值,均執行非正常退出;

    #!/bin/bash
    #
    cat << EOF
    yes) Continue to execute the shell
    quit) Normal exit
    other) Abnormal exit
    ==================================
    EOF

    read -p "Enter your option:" option

    while [ -z "$option" ];do
        echo "Please enter at least one option"
            read -p "Enter your option:" option
    done

    if [ "$option" == "yes" ];then
        echo "yes,quit or other"
        read -p "Enter your option again:" option
    elif [ "$option" == "quit" ];then
        echo "Normal exit" 
        exit 0
    else
        echo "Abnormal exit"
        exit 1
    fi

5、寫一個腳本,完成如下功能

傳遞一個參數給腳本,此參數為gzip、bzip2或者xz三者之一;
(1) 如果參數1的值為gzip,則使用tar和gzip歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160613.tar.gz;
(2) 如果參數1的值為bzip2,則使用tar和bzip2歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160613.tar.bz2;
(3) 如果參數1的值為xz,則使用tar和xz歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160613.tar.xz;
(4) 其它任意值,則顯示錯誤壓縮工具,并執行非正常退出;

    #!/bin/bash
    #
    cat << EOF
    gzip) Archive compressed /etc directory using gzip tool 
    bzip2) Archive compressed /etc directory using tool
    xz) Archive compressed /etc directory using xz tool
    quit) quit
    ==================================================
    EOF

    read -p "Enter your option:" option

    while [ -z "$option" ];do
        echo "gzip,bzip2,xz or quit"
        read -p "Enter your option again:" option
    done

    case $option in
    gzip)
        tar -zcf  /backups/etc-$(date +\%Y\%m\%d).tar.gz /etc;;
    bzip2)
        tar -jcf /backups/etc-$(date +\%Y\%m\%d).tar.bz2 /etc;;
    xz)
        tar -Jcf /backups/etc-$(date +\%Y\%m\%d).tar.xz /etc;;
    quit)
        echo "quit"
        exit 0;;
    *)
        echo "Abnormal exit"
        exit 1
    esac

6、寫一個腳本,接受一個路徑參數:

(1) 如果為普通文件,則說明其可被正常訪問;
(2) 如果是目錄文件,則說明可對其使用cd命令;
(3) 如果為符號鏈接文件,則說明是個訪問路徑;
(4) 其它為無法判斷;

    #!/bin/bash
    #
    read -p "Please enter a path:" path

    while [ -z "$path" ];do
        read -p "Please enter a path:" path
    done

    if [ -f "$path" ];then
        echo "$path Can be accessed normally."
    elif [ -d "$path" ];then
        echo "$path Is a directory,You can use the CD command to switch to this directory."
    elif [ -h "$path" ];then
        echo "$path Is an access path."
    else
        echo "Can not judge."
        exit 0
    fi

7、寫一個腳本,取得當前主機的主機名,判斷

(1) 如果主機名為空或為localhost,或為"(none)",則將其命名為mail.magedu.com;
(2) 否則,顯示現有的主機名即可;

    #!/bin/bash
    #
    while read line;do
        hostname=$(echo $line | cut -d . -f1)

        if [ $hostname == "localhost" -o  $hostname == "(none)" ];then
            echo "HOSTNAME=mail.magedu.com" > /etc/sysconfig/network
        else 
            echo "The current host name is:$line"
        fi
    done < /proc/sys/kernel/hostname

8、寫一腳本,接受一個用戶名為參數;

(1) 如果用戶的id號為0,則顯示其為管理員;
(2) 如果用戶的id號大于0且小于500, 則顯示其為系統用戶;

    #!/bin/bash
    #
    read -p "Please enter a user name:" user

    while [ -z $(grep -o "^$user\>" /etc/passwd) ];do
        echo -e "\033[32m Please enter a correct username. \033[0m"
        read -p "Please enter a user name again:" user
    done

    if [ $(grep "^$user\>" /etc/passwd | cut -d : -f 3) -eq 0 ];then
        echo -e "\033[31m This is an admin user \033[0m"
    elif [ $(grep "^$user\>" /etc/passwd | cut -d : -f 3) -gt 0 -a $(grep "^$user\>" /etc/passwd | cut -d : -f 3) -lt 500 ];then
        echo -e "\033[31m This is an System user \033[0m"
    else
        echo -e "\033[31m This is an Ordinary user \033[0m"
    fi

 

原創文章,作者:641348038@qq.com,如若轉載,請注明出處:http://www.www58058.com/64327

(0)
641348038@qq.com641348038@qq.com
上一篇 2016-12-23 09:52
下一篇 2016-12-23 21:24

相關推薦

  • 虛擬網卡實驗:網卡別名 與 bond多網卡模式

     一、網卡別名:多IP 綁定一個 Interface        ? 將多個IP地址綁定到一個NIC上            網卡別名:    &n…

    Linux干貨 2016-09-05
  • 正則

    Edit 正則 概述: 正則表達式,Regular Expression,縮寫regex、regexp、RE 正則表達式是文本處理極為重要的技術,用它可以對字符串按照某種規則進行檢索、替換 1970年,Unix之父ken Thompson將正則表達式引入到Unix中文本編輯器ed和grep命令中,由此正則表達式普及開來 1980年后,perl語言對Henry…

    Linux干貨 2017-11-06
  • RAID磁盤冗余探究

    RAID磁盤冗余探究 RAID的全稱是Redundant Arrays of Inexpensive Disk,可以翻譯為廉價的磁盤冗余陣列。由加利福尼亞大學伯克利分校的一位教授在1988年提出,是一種磁盤管理方式。其產生的初衷是為了降低成本,但是為了達到RAID的功能,其造價并不便宜,所以后來改為Redundant Arrays of Independen…

    2017-08-26
  • 馬哥教育網絡班22期+第1周課程練習

    1.描述計算機的組成及其功能 計算機的組成及各功能:  計算機主要由硬件、操作系統、軟件三大部分組成 硬件 :主要由五部分組成 :運算器:主要是做數據運算              控制器:控制計算機各部件的協調和尋址操作         …

    Linux干貨 2016-08-15
  • Tomcat相關知識整理

    初識Servlet SUN公司制定了一系列Web應用與Web服務器進行協作的標準Java接口,統稱為Java Servlet API,還對Web服務器發布及運行Web應用的一些細節做了規約。SUN公司把這一系列標準Java接口和規約統稱為Servlet規范。Servlet就是Web服務器與Web應用進行協作的標準接口。 Servlet規范把能夠發布和運行Ja…

    Linux干貨 2016-12-05
  • 基于Cobbler實現多版本系統批量部署

    前言 運維自動化在生產環境中占據著舉足輕重的地位,尤其是面對幾百臺,幾千臺甚至幾萬臺的服務器時,僅僅是安裝操作系統,如果不通過自動化來完成,根本是不可想象的。記得前面我們探究了基于PXE實現系統全自動安裝,但PXE同時只能提供單一操作系統的批量部署,面對生產環境中不同服務器的需求,該如何實現批量部署多版本的操作系統呢?Cobbler便可以的滿足這一實際需求,…

    Linux干貨 2015-07-09

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-01-04 16:21

    腳本寫的不錯,但是不要使用系統的命令來作為變量,如果可以修改一下就完美了

欧美性久久久久