Net25-第9周作業

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

#!/bin/bash
for line in `cat /etc/passwd`;do
    if [[ `echo $line | awk -F: '{print $7}'` == '/sbin/nologin' ]];then
        n=$[++n]
    else
        s=$[++s]
    fi
done
echo "shell is /sbin/nologin    $n"
echo "shell is not /sbin/nologin   $s"

2、寫一個腳本

  • (1) 獲取當前主機的主機名,保存于hostname變量中;
  • (2) 判斷此變量的值是否為localhost,如果是,則將當前主機名修改為www.magedu.com;
  • (3) 否則,則顯示當前主機名;
#!/bin/bash
hostname=`hostname`
if [[ ${hostname} == 'localhost' ]];then
    hostname www.magedu.com
    sed -i  's@\(^HOSTNAME=\).*/\1www.magedu.com/g' /etc/sysconfig/network
    hostname
else
    echo ${hostname}
fi

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

  • (1) 傳遞一個磁盤設備文件路徑給腳本,判斷此設備是否存在;
  • (2) 如果存在,則顯示此設備上的所有分區信息;
#!/bin/bash
check_parm(){
    if [ $# -lt 1 ];then
        echo "at least one disk file"
        exit 1
    fi
}

show_patitions(){
    for disk in "$@";do
        if [ -b ${disk} ];then
            fdisk -l ${disk}
        else
            echo "no such ${disk} disk!"
        fi
    done
}

check_parm "$@"
show_patitions "$@"

4、寫一個腳本,完成如下功能
腳本能夠接受一個參數;

  • (1) 如果參數1為quit,則顯示退出腳本,并執行正常退出;
  • (2) 如果參數1為yes,則顯示繼續執行腳本;
  • (3) 否則,參數1為其它任意值,均執行非正常退出;
while true;do
    read -p "please choose(yes|no|quit):" parm
    case $parm in
    quit)
        echo "bye!"
        exit 
        ;;
    yes)
        continue
        ;;
    *)
        exit 2
    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
if [ $# -lt 1 ];then
    echo "at least one parm..."
    exit 1
fi

mkdir -p /backups

case $1 in 
 gzip)
      tar -czf /backups/etc-`date +%F`.tar.gz /etc
      ;;
bzip2)
      tar -cjf /backups/etc-`date +%F`.tar.bz2 /etc
      ;;
xz)
     tar -Jcf /backups/etc-`date +%F`.tar.xz /etc
     ;;
*)
     echo "error compress tools"
     exit 2
     ;;
esac

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

  • (1) 如果為普通文件,則說明其可被正常訪問;
  • (2) 如果是目錄文件,則說明可對其使用cd命令;
  • (3) 如果為符號鏈接文件,則說明是個訪問路徑;
  • (4) 其它為無法判斷;
#!/bin/bash
if [ $# -lt 1 ];then
    echo "at least one parm..."
    exit 1
fi

if [ -f $1 ];then
    echo "$1 能被正常訪問"
elif [ -d $1 ];then
    echo "$1 可以使用cd命令"
elif [ -l $1 ];then
    echo "$1 是個訪問路徑"
else
    echo "無法判斷"
fi

原創文章,作者:N25_隨心,如若轉載,請注明出處:http://www.www58058.com/70549

(0)
N25_隨心N25_隨心
上一篇 2017-03-15 19:09
下一篇 2017-03-15 19:09

相關推薦

  • FHS文件系統下個各目錄功能

    FHS文件系統下個各目錄功能 FHS文件系統的建立是為了讓開發者和用戶可以預測軟件安裝文件和文件夾的位置。對整個linux的文件系統系統做了以下的規范:     /bin:命令二進制文件的存放目錄;     /boot:系統啟動時一些文件存放的目錄,包含引導linux的重要文件,…

    Linux干貨 2016-10-18
  • 第五周 程序包管理

    1、簡述tar命令的常見選項,并舉例 tar——? 文件壓縮與解壓? ?? ★命令格式 tar [OPTION…] [FILE]…  創建歸檔(-c,-f 指定文件): tar -c -f?/PATH/TO/SOMEFILE.tar ?FILE…?(后綴名固定以 .tar 結尾;) tar -cf /PATH/TO/SOM…

    2017-12-31
  • shell腳本編程

    Shell腳本是包含一些命令或聲明,并符合一定格式的文本文件。 程序:指令+數據 程序編程風格 過程式  以指令為中心,數據服務于指令。 對象式  以數據為中心,指令服務于數據。 Shell程序:提供了編寫和能力,解釋執行。 編程邏輯處理方式:           順序執行   …

    Linux干貨 2016-08-15
  • 第三周作業

    博客具體內容請移步博客園: http://www.cnblogs.com/ITOps/p/6204549.html

    Linux干貨 2016-12-20
  • 1019作業

    1019作業 柴震 軟連接 硬連接 軟連接和硬鏈接的區別 屬性與定義: 硬鏈接:新建的文件是已經存在的文件的一個別名,所以創建時鏈接數遞增;而且當原文件刪除時,新建的鏈接文件仍然可以使用,因其直接對應于數據塊。 軟鏈接:也稱為符號鏈接。新建的鏈接文件以“路徑”的形式來表示另一個文件,其大小為指向的路徑字符串的長度,不增加或減少目標文件in…

    Linux干貨 2016-10-19

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-03-29 17:14

    不錯,連腳本函數都已經用的很熟練了。

欧美性久久久久