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
?。?span>“

 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 09:28
下一篇 2017-03-06 17:23

相關推薦

  • memcache

      memcached: memcached is a high-performance, distributed memory object caching system, generic in nature, but&nbsp…

    Linux干貨 2016-11-01
  • php 設計模式-數據映射模式(應用程序與數據庫交互模式)

    前面提到的設計模式大大提高了代碼的可讀性與可維護性。然而,在WEB應用設計與開發中一個基本的需求與挑戰:數據庫應用,這些設計模式都沒有涉及到。數據映射模式使您能更好的組織你的應用程序與數據庫進行交互。 下面我將用實際代碼說明,如果一個表發生變動。我們要修改客戶端代碼就可以了。特別是游戲項目,需求經??赡軙洺W儎印P薷谋斫Y構,可能引起大片代碼的改動。 首先我…

    Linux干貨 2015-04-07
  • Linux第一周心得

          第一次接觸Linux,內心還是有點緊張,怕自己學不會、怕太難。不過,還是想挑戰一下自己,所以來到了馬哥學習Linux。      過來的第一天有點坎坷,不過還好有小琰姐的陪伴,一直和我們東西奔走,總算是解決了一大堆的麻煩,所以,感激……表白小琰姐!哈哈哈  撒花花  …

    Linux干貨 2017-07-15
  • 快速搭建ss上網

    快速搭建ss 方法一: [root@cloud ~]# yum install build-essential autoconf libtool openssl-devel gcc -y [root@cloud ~]# git clone&…

    Linux干貨 2016-06-09
  • 馬哥教育網絡班21期+第五周課程練習

    馬哥教育網絡班21期+第5周課程練習 [TOC] 1. 顯示/boot/grub/grub.conf中至少以一個空白字符開頭的行。 [root@rhel-5 ~]# grep -E '^[[:space:]]+' /boot/grub/grub.conf  root (hd…

    Linux干貨 2016-08-02
  • Linux 進程及作業管理

    一 進程、線程、程序概念 1、進程(Process) 什么是進程,簡單的說,進程是程序的執行實例,即運行中的程序,同時也是程序的一個副本;程序是放置于磁盤的,而運行中的程序是位于內存中的。 2、線程(Thread) 一個進程至少包括一個線程,通常將該線程稱為主線程,所以線程是比進程更小的單位,是系統分配處理器時間資源的基本單元。一個進程要想同時在多顆CPU上…

    Linux干貨 2016-03-15

評論列表(2條)

  • JL
    JL 2017-03-09 17:54

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

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

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

欧美性久久久久