N25-第九周

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

#!/bin/bash
#統計shell及非shell個數
#author:dodo
declare -i loginnum=0
declare -i nologinnum=0

while read line;do
        if [[ "${line}" =~ "/sbin/nologin" ]];then
                let nologinnum++
        else
                let loginnum++
        fi
done < /etc/passwd

echo "可登錄shell用戶數: $loginnum"
echo "非登陸sheel用戶數: $nologinnum"

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

    (3) 否則,則顯示當前主機名;

#!/bin/bash
hostname=`hostname`
if [[ ${hostname} == 'localhost' ]];then
        hostname www.magedu.com
    else
        echo ${hostname}
fi

3、寫一個腳本,完成如下功能
    (1) 傳遞一個磁盤設備文件路徑給腳本,判斷此設備是否存在;

    (2) 如果存在,則顯示此設備上的所有分區信息;

#!/bin/bash
#顯示磁盤分區信息
#author:dodo

if [[ $1 != /dev/[sh]d[a-z]* ]];then
           echo "${1} 錯誤的磁盤設備!"
elif [ -e $1 ];then
           fdisk -l $1
else
        echo "${1} 該磁盤設備不存在!"
fi

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

#!/bin/bash
#判斷
#author:dodo  

read -p "請輸入一個參數:" num

while true;do
  case $num in
    quit)
      exit 0;;
    yes)    
      read -p "請繼續輸入一個參數:" num
      ;;
    *)
      exit 1;;
  esac
done

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
#判斷
#author:dodo 
[ $# -lt 1 ] && echo "請輸入一種壓縮工具" && exit 1 
if [ ! -d /backups ];then 
mkdir /backups 
fi

case $1 in
    gzip)
            tar -zcvf /backups/etc-$(date +%Y%m%d).tar.gz /etc &> /dev/null
        ;;
   bzip2)
        tar -jcvf /backups/etc-$(date +%Y%m%d).tar.bz2 /etc &> /dev/null
            ;;
    xz)
            tar -Jcvf /backups/etc-$(date +%Y%m%d).tar.xz /etc &> /dev/null
*)
        echo "錯誤壓縮工具!"
        exit 1
        ;;
esac

6、寫一個腳本,接受一個路徑參數:
   (1) 如果為普通文件,則說明其可被正常訪問;
   (2) 如果是目錄文件,則說明可對其使用cd命令;
   (3) 如果為符號鏈接文件,則說明是個訪問路徑;

   (4) 其它為無法判斷;

#!/bin/bash
#判斷路徑參數
#author:dodo
[ $# -lt 1 ] && echo -e "Usage: $0 DIRECTORY|FILE|LINKFILE" && exit 1

if [ -d $1 ];then
            echo "$1是一個目錄文件,可以對其使用cd命令"
elif [ -L $1 ];then
            echo "$1是一個鏈接文件,鏈接的文件為$(ls -l $1 | cut -d ' ' -f 9,10,11)"
elif [ -f $1 ];then
            echo "$1是一個普通文件,可以正常訪問"
else
        echo "無法判斷此文件屬性"
        exit 3
fi

7、寫一個腳本,取得當前主機的主機名,判斷
(1) 如果主機名為空或為localhost,或為””(none)””,則將其命名為mail.magedu.com;
(2) 否則,顯示現有的主機名即可;”

#!/bin/bash
#判斷主機名
#author:dodo
hostname=$(hostname)
    if [[ -z $hostname  || $hostname =~ [[:space:]]+ || $hostname =~ "localhost" || $hostname == "none" ]];then
        hostname "mail.magedu.com" && hostname
else
        hostname
fi


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

(0)
lyj821202lyj821202
上一篇 2017-05-27
下一篇 2017-05-27

相關推薦

  • linux權限管理

    linux文件權限    文件的屬性和權限的設置對于linux系統來說是相當重要的,如果對這一塊的知識沒有一個深入的了解,你的系統就有可能有很大的危險。那么首先我們來看一看文件的屬性所對應的都是什么意思吧。 上圖第一個字符是d,他代表了文件的類型,d的意思就是目錄文件,那么除了目錄文件還有什么文件呢?    …

    Linux干貨 2016-08-04
  • 第一次作業

    第一次作業 作業1 博客 作業2 echo -e "\033[49;31;4;5m*******\033[0m \n\033[49;32;4;5m ***** \033[0m \n\033[49;33;4;5m  ***  \033[0m \n\033[49;34;4;5m   *   \033[0m&quo…

    Linux干貨 2016-08-03
  • 8月3日課堂練習及課后作業

    課堂練習 1、創建用戶gentoo,附加組為bin和root,默認shell為/bin/csh,注釋信息為“Gentoo Distribution” useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo  2、創建下面的用戶、組和組成員關系,名字為admi…

    Linux干貨 2016-08-04
  • 程序員的相關笑話(二)

    從前,有一個牧羊人,他有很多的羊。一天他趕著他的那群羊到了一條公路邊上。突然,有一輛保時潔急駛過來,上面坐著一個年輕人人,穿著Armani的衣服,和Cerutti的皮鞋,Ray-Ban的太陽眼鏡,TAG-Heuer的手表,以前Versace的領帶。 他走到牧羊人面前問牧羊人:“如果我能說出你有多少只羊,你能給我一只嗎?” 牧羊人看了看他那一大群數都數不過來的…

    Linux干貨 2016-07-10
  • Linux命令基礎

    Linux命令基礎

    2018-03-25
  • Linux運維學習歷程-第十一天-bash邏輯運算、測試類型和腳本語句

    概述:本篇重點介紹linux當中默認設立了類型,bash的邏輯運算、測試類型和腳本語句,本篇內容極其重要,望小伙伴們在日后的學習中用心學習 一、邏輯運算 變量:   本地變量、環境變量、局部變量、位置參數變量、特殊變量   變量賦值:name=value,export name=value,declare -x nam…

    Linux干貨 2016-08-24
欧美性久久久久