N26-博客作業-week9

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

#!/bin/bash 
#
declare -i nologin_num=0,login_num=0
for i in $(cut -d: -f7 /etc/passwd); do
    if [[ $i == "/sbin/nologin" ]]; then
        let nologin_num++
    else
        let login_num++
    fi
done

echo "Nologin shell num: $nologin_num"
echo "Login shell num: $login_num"

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

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

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

#!/bin/bash
#
if [ $# -eq 0 ]; then
    echo "Please input a disk directory!"
    exit 1
fi

if df $1 &> /dev/null; then
    fdisk -l $1
else
    echo "No such disk!"
    exit 2
fi

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

#!/bin/bash
#
read -p "Please input your choice: " option

if [[ $option == "quit" ]]; then
    echo "Script is normally quited!"
    exit 0
elif [[ $option == "yes" ]]; then
    echo "Script is still running!"
else
    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
#
cat << EOF
Please chose a tool:
gzip
bzip2
xz
======================
EOF

read -p "Your choice: " option

if [[ $option == "gzip" ]]; then
    tar -zcf /backups/etc-20160613.tar.gz /etc &> /dev/null
elif [[ $option == "bzip2" ]]; then
    tar -jcf /backups/etc-20160613.tar.bz2 /etc &> /dev/null
elif [[ $option == "xz" ]]; then
    tar -Jcf /backups/etc-20160613.tar.xz /etc &> /dev/null
else
    echo "Wrong tool!"
    exit 1
fi

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

#!/bin/bash
#
if [ $# -lt 1 ];then
    echo "At least one directory!"
    exit 1
fi

if ! [ -e $1 ];then
    echo "File is not exist!"
    exit 2
fi

if [ -f $1 ];then
    echo "This file can be access normally"
elif [ -d $1 ];then
    echo "This file can use command cd"
elif [ -L $1 ];then
    echo "This is an access path!"
else
    echo "Can not judge!"
fi

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

#!/bin/bash
#
hostname=$(hostname)
if [ -z "$hostname" -o "$hostName" == "localhost.localdomain" -o "$hostname" == "localhost" ]; then   
    hostname mail.void.com
    echo "hostname has change to $(hostname)"
else
    hostname
fi

原創文章,作者:浙江-咲,如若轉載,請注明出處:http://www.www58058.com/72271

(0)
浙江-咲浙江-咲
上一篇 2017-04-01
下一篇 2017-04-01

相關推薦

  • 計算機基礎第一部分

    ** 第一課:計算機基礎知識** 第一章計算機的組成 計算機是由硬件(Hardwaer)和軟件(Software)來組成兩大類,他是一臺可以自由傳輸數據, 儲存數據,娛樂,工作等等的智能設備。 第一節計算機硬件 主板架構圖 內存====用來存儲臨時數據,弱點喜歡松動一般電腦黑屏都是他松動了,導致電腦不能機 基本上%80以上的電腦不能開機都是他出了問題,服務器…

    Linux干貨 2017-05-19
  • 網絡互聯參考模型(詳解)

    網絡互聯參考模型 1. 什么是協議 為了使數據可以在網絡上從源傳遞到目的地,網絡上所有設備需要“講”相同的“語言” 描述網絡通信中“語言”規范的一組規則就是協議 例如:兩個人交談,必須使用相同的語言,如果你說漢語,他說阿拉伯語…… 數據通信協議的定義 決定數據的格式和傳輸的一組規則或者一組慣例 2. 協議分層 網絡通信的過程很復雜: 數據以電子信號的形式穿越…

    Linux干貨 2015-05-07
  • DNS原理詳解02

    9、子域授權     1、在父域的區域配置文件中增加以下記錄,即為增加了子域授權            opt.patrickli.com.         IN      NS     &…

    Linux干貨 2016-08-29
  • 封裝和結構及set

    封裝|set

    Linux干貨 2017-10-09
  • N25_第十一周的作業

    1、詳細描述一次加密通訊的過程,結合圖示最佳。 2、描述創建私有CA的過程,以及為客戶端發來的證書請求進行辦法證書。 3、描述DNS查詢過程以及DNS服務器類別。          第一段:主機到運營商的DNS服務器(遞歸)    &nbs…

    Linux干貨 2017-02-22
  • Centos不重啟添加新硬盤

     顯示當前磁盤分區: [root@centos7 ~]# fdisk -l</p>< p>    Disk /dev/sda: 32.2 GB, 32212254720 bytes, 6…

    Linux干貨 2016-03-27

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-04-10 16:22

    總結的很好,腳本部分可以給出運行結果,加油~~~

欧美性久久久久