N25第九周博客作業

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

#!/bin/sh

lg=0

nlg=0

while read line;do

  if [[ “${line}” =~
“/sbin/nologin” ]];then

    let nlg++

  else

    let lg++

  fi

done < /etc/passwd

echo “可登錄用戶為${lg}

       echo “不可登陸的用戶為${nlg}

 

執行結果:

[root@www ~]# sh bash.sh

可登錄用戶為8

不可登陸的用戶為24

[root@www ~]#

 

 

2、寫一個腳本

    (1) 獲取當前主機的主機名,保存于hostname變量中;

    (2) 判斷此變量的值是否為localhost,如果是,則將當前主機名修改為www.magedu.com;

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

#!/bin/sh

hostName=`hostname`

if [[ “$hostName” ==
“localhost” ]];then

     hostnamectl set-hostname www.magedu.com

 else

      hostname

fi

 

 

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

    (1) 傳遞一個磁盤設備文件路徑給腳本,判斷此設備是否存在;

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

#!/bin/sh

[ $# -ne 1 ]&&echo
“only one Disk path!!”&&exit 1

if [ -b $1 ];then

   fdisk -l $1

else

   echo “is not find!!”

   exit 2

fi

 

 

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

   腳本能夠接受一個參數;

   (1) 如果參數1quit,則顯示退出腳本,并執行正常退出;

   (2) 如果參數1yes,則顯示繼續執行腳本;

   (3) 否則,參數1為其它任意值,均執行非正常退出;

#!/bin/sh

if [[ “$1” == “quit” ]];then

   echo
退出腳本,并執行正常退出。

   exit 0

elif [[ “$1” == “yes”
]];then

   echo
繼續執行腳本

else

   echo
輸入錯誤,非正常退出!!

   exit 2

fi

 

 

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

   傳遞一個參數給腳本,此參數為gzip、bzip2或者xz三者之一;

   (1) 如果參數1的值為gzip,則使用targzip歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160613.tar.gz;

   (2) 如果參數1的值為bzip2,則使用tarbzip2歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160613.tar.bz2;

   (3) 如果參數1的值為xz,則使用tarxz歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160613.tar.xz;

   (4) 其它任意值,則顯示錯誤壓縮工具,并執行非正常退出;

#!/bin/sh

[[ “$1” == “gzip” ]]||[[
“$1” == “xz” ]]||[[ “$1” == “bzip2”
]]||echo “please input ‘gzip’ or ‘xz’ or ‘bzip2’!!”||exit 1

[ ! -e 
/backups ]&&mkdir /backups

if [[ “$1” == “gzip” ]];then

 tar zcvf
/backups/etc-`date “+%Y%m%d”`.tar.gz 
/etc/*

elif [[ “$1” == “bzip2”
]];then

 tar jcvf
/backups/etc-`date “+%Y%m%d”`.tar.bz2 
/etc/*

elif [[ “$1” == “xz” ]];then

 tar Jcvf
/backups/etc-`date “+%Y%m%d”`.tar.xz 
/etc/*

else

 echo
“Error compression tool
??!

 exit 2

fi

 

 

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

   (1) 如果為普通文件,則說明其可被正常訪問;

   (2) 如果是目錄文件,則說明可對其使用cd命令;

   (3) 如果為符號鏈接文件,則說明是個訪問路徑;

   (4) 其它為無法判斷;

#!/bin/sh

[ $# -ne 1 ]&&echo “only need one
path!!”&&exit 1

if [ -f 
$1 ];then

 echo
“is file, It can be accessed!”

elif [ -d $1 ];then

 echo
“is dir,  you can use the
‘cd’command!!”

elif [ -h $1 ];then

 echo
“is link,It is an access path!”

else

  echo
“Cannot judge!!”

fi

 

 

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

   (1) 如果主機名為空或為localhost,或為“(none)”,則將其命名為mail.magedu.com;

   (2) 否則,顯示現有的主機名即可;

#!/bin/sh

hostName=`hostname`

if [ -z   “$hostName” ];then

    hostnamectl set-hostname mail.magedu.com

elif [  “$hostName” == “localhost” ];then

    hostnamectl set-hostname mail.magedu.com

else

   hostname

fi

~  

原創文章,作者:N25_韓奇洋,如若轉載,請注明出處:http://www.www58058.com/70584

(0)
N25_韓奇洋N25_韓奇洋
上一篇 2017-03-06
下一篇 2017-03-06

相關推薦

  • N25-第十一周博客作業

    1、詳細描述一次加密通訊的過程,結合圖示最佳。 點對點加密過程如下: 發送方根據單向加密算法計算數據的特征碼 用私鑰加密這段特征碼,生產數字簽名,將數字簽名附著在數據后面 發送方生產臨時對稱密鑰,用對稱加密算法結合對稱加密密鑰加密整段數據(數據+數字簽名) 為保證接收方可以解密,發送方用接收方的公鑰加密對稱加密密鑰,附加在數據后面 接收方用自己的私鑰解密數據…

    Linux干貨 2017-03-30
  • CentOS系統安裝

    centos系統安裝        安裝程序:anaconda,Anaconda是RedHat、CentOS、Fedora等Linux的安裝管理程序。它可以提供文本、圖形等安裝管理方式,并支持Kickstart等腳本提供自動安裝的功能。此外,其還支持許多啟動參數,熟悉這些參數可為安裝帶來很多方便。該程序的功能是把位于光…

    Linux干貨 2016-09-23
  • rpm包及rmp命令詳解

    一、軟件運行環境          ? API: Application Programming Interface              國際標準&nbs…

    Linux干貨 2016-08-22
  • iptables使用示例

    iptables規則

    2017-10-14
  • 第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@localhost /]# who | cut -d ‘ ‘ -f 1  | sort -u root user1 或: [root@localhost /]# who | cut -d ‘ ‘ -…

    Linux干貨 2017-02-24
  • linux 3.26 第一課

    setup app

    2018-03-26

評論列表(2條)

  • JL
    JL 2017-03-09 17:54

    親, 我在做第三題的時候遇到了問題, 上博客看看大家是怎么寫的.我看到你寫的這個了. 使用 [ -b $1 ]來判斷參數是否為塊設備沒有問題, 但是[ -b $1 ]并不能避免輸入的是內存設備或者是回環設備. 例如你可以試試 將ram#或者loop#來作為參數,也是可以通過的.

  • 馬哥教育
    馬哥教育 2017-03-15 01:03

    建議使用markdown來格式化~加油~

欧美性久久久久