第九周作業

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

#!/bin/bash
LOGIN_USER=0
NOLOGIN_USER=0
for SHELLUSER in $(cat /etc/passwd | cut -d : -f 7);do
    if [ $SHELLUSER == "/sbin/nologin" ];then
            let NOLOGIN_USER++
    else
            let LOGIN_USER++
    fi
done
echo "login shell = $LOGIN_USER , nologin shell =$NOLOGIN_USER"
~                         

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

#!/bin/bash
hostname=$(echo $HOSTNAME)
if [ "$hostname" == "localhost" ]; then
    hostname "www.magedu.com"
else
    echo $HOSTNAME
fi
~       

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

#!/bin/bash
if [[ "$1" =~ /dev/[hs]d* ]];then
    if ls /dev/[hs]d* | grep "$1" &> /dev/null ; then
        fdisk -l $1
    else
        echo "no this partitions"
        exit 2
    fi
else
        echo "wrong path"
fi

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

#!/bin/bash
read -p "Please give a parameter(yes or quit)" -t 5 NAME
if [ -z $NAME ];then
        echo "need a parameter"
        exit 2
elif [ $NAME == yes ]; then
        echo "continue scripting"
elif [ $NAME == quit ]; then
        echo "Normal exit"
        exit 0
else
        echo "wrong paramter"
        exit 2
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
NAME=/backups/etc-20160613.tar
read -p "chose a compression tool(gzip/bzip2/xz)" -t 5 TOOL
cd /
mkdir backups &> /dev/null
if [ $TOOL == gzip ];then
        tar -zcf $NAME.gz etc
elif [ $TOOL == bzip2 ];then
        tar -jcf $NAME.bz2 etc
elif [ $TOOL == xz ];then
        tar -Jcf $NAME.xz etc
else
        echo "wrong compression tool"
fi

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

#!/bin/bash
read -p "please give a path to (file|dir|ln)"  NAME
if [[ -f $NAME ]];then
        echo "this is a file,you can access"
elif [[ -d $NAME ]];then
        echo "this is a Directory file,you can cd"
elif [[ -L $NAME ]];then
        echo "this is a path to file"
else
        echo "cannot judge"
fi  

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

#!/bin/bash
HOSTNAME=$(hostname)
if [ $HOSTNAME == "localhost" -o "(none)" ];then
        hostname mail.magedu.com
else
        echo "hostname is $HOSTNAME"
fi

原創文章,作者:M36-Masuri,如若轉載,請注明出處:http://www.www58058.com/79373

(0)
M36-MasuriM36-Masuri
上一篇 2017-07-03
下一篇 2017-07-03

相關推薦

  • linux常用網絡配置

    網卡名稱:  網絡接口識別并命名相關的udev配置文件:    /etc/udev/rules.d/70-persistent-net.rules  卸載網卡驅動:    modprobe  -r e1000  裝載網卡驅動:    modprobe &nbs…

    Linux干貨 2016-09-06
  • bash腳本之進階

    bash腳本 1、終端打印 1、單雙引號(echo) 雙引號: ①在雙引號里面打不出! ②雙引號,可以在文本中使用“;”,“;”在bash中被用作命令定界符。 單引號: 變量替換在單引號中無效。 2、printf:不會自動添加換行符,要手動添加 如下: 結果: 3、補充: echo 要使用轉義系列需要加e,!號除外 2、變量和環境變量 腳本語言通?!?/p>

    Linux干貨 2016-11-28
  • 早安

    既來之,則安之。好好學習,努力奮斗?。?!#linux#

    Linux干貨 2017-07-11
  • 把編譯安裝的httpd 實現服務腳本,通過service和chkconfig 進行管理

    把編譯安裝的httpd 實現服務腳本,通過service和chkconfig 進行管理 1 編譯安裝httpd 把httpd編譯安裝在/app/httpd/目錄下。 2 在/etc/rc.d/init.d/目錄下新建一個文件httpd 這個文件的目的在于讓service 命令可以管理編譯安裝的httpd服務。 文件內容如下: [root@CentOS68 ~…

    Linux干貨 2017-05-15
  • linux用戶和組管理

    linux系統是一個多用戶的系統,每個賬號都干什么用,你必須了如指掌。 【Linux用戶】 即UID分為兩大類:管理員 UID:0                               普通用戶 UID:…

    Linux干貨 2016-08-05
  • rpm程序包管理器使用詳解

    rpm程序包管理器的使用詳解   說到程序包管理器,就會想到基于CentOS系統上的rpm命令與其對應的前端處理器yum。所謂程序包,是將源代碼轉換為二進制格式,再組織成一個或者多個包文件供用戶安裝使用。rpm程序包的命名格式如下:   name-VERSION-release.arch.rpm   軟件名-版本號(分為主版本m…

    Linux干貨 2016-08-21

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-07-13 17:22

    不錯,非常認真,腳本可以貼上運行的結果,加油!??!

欧美性久久久久