第九周-Shell腳本編程

 

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

#!/bin/bash
nologin=0
login=0
for i in  `cut -d : -f 7 /etc/passwd`;do
     if [ $i = /sbin/nologin ];then
        let nologin++
     else
        let login++
     fi
done
echo Login is $login,Nologin is $nologin

2、寫一個腳本

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

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

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

#!/bin/bash

hostname=$HOSTNAME
if [ $hostname = localhost ];then
   hostname www.magedu.com
else
   echo "$hostname"
fi

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

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

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

#!/bin/bash

if [ -b $1 ];then
 fdisk -l $1
else
 echo "Not is Block device file"
fi

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

腳本能夠接受一個參數;

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

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

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

#!/bin/bash

while true;do
read -p "please input yes|quit|other str: " word
case $word in
  quit)
  exit 0
  ;;
  yes)
  continue
  ;;
  *)
  echo "Wrong"
  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
mkdir /backups 2>/dev/null
case $1 in
  gzip)
  tar -zcPf /backups/etc-`date +%Y%m%d`.tar.gz /etc
  ;;
  bzip2)
  tar -jcPf /backups/etc-`date +%Y%m%d`.tar.bz2 /etc
  ;;
  xz)
  tar -JcPf /backups/etc-`date +%Y%m%d`.tar.xz /etc
  ;;
  *)
  echo "Error compression tool"
  exit 2
  ;;
esac

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

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

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

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

(4) 其它為無法判斷;

#!/bin/bash

if [ -f $1 ];then
  echo "Normal access the file"
elif [ -d $1 ];then
  echo "Can use cd command"
elif [ -h $1 ];then
  echo "this is a access path"
else
  echo "Cannot judge"
fi

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

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

#!/bin/bash

if [ -z $HOSTNAME -o "$HOSTNAME" = "localhost" -o "$HOSTNAME" = "(none)" ];then
hostname mail.magedu.com
fi

 

原創文章,作者:N27_what,如若轉載,請注明出處:http://www.www58058.com/85296

(0)
N27_whatN27_what
上一篇 2017-08-23
下一篇 2017-08-24

相關推薦

  • 文件查找locate和find

    locate 查詢系統上預建的文件索引數據庫 /var/lib/mlocate/mlocate.db 依賴于事先構建的索引 索引的構建是在系統較為空閑時自動進行(周期性任務),管理員手動更新數據庫(updatedb) 索引構建過程需要遍歷整個根文件系統,極消耗資源 工作特點: ?查找速度快 ?模糊查找 ?非實時查找 ?搜索的是文件的全路徑,不僅僅是文件名 ?…

    2017-08-11
  • Linux-文件基本權限及特殊權限詳解

    Linux文件基本權限及特殊權限詳解 背景 Linux文件基本權限和特殊權限對于初學者很少煩惱,各種無法理解,所以在學到這一節時,將自己學到的以及自己的理解寫出來以檢查自己對這個部分的掌握情況。 什么是權限 在Linux里一切皆文件,所謂的權限就是用戶對文件(目錄也是以個文件)的操作范圍,對文件的操作包括讀、寫和執行,用戶對文件有不同的權限就能做相應的操作?!?/p>

    Linux干貨 2017-07-22
  • 20160802課堂練習題

    練習: 1、  當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作? 無法cd進入該目錄,但可以ls查看到該目錄下的文件,其余的任何操作都執行不了。 2、  當用戶xiaoqiang對/testdir 目錄無讀權限時,意味著無法做哪些操作? 能夠進入該目錄,不能讀取到信息;但如果知道有哪些文件及目錄是可以創建…

    Linux干貨 2016-08-04
  • 博客開始的地方

    來北京挺長時間了,一直都在瞎忙,特別想找個地逛逛,約朋友一起去,結果人家只喜歡吃飯,逛街,來北京瞎逛過兩次,第一次是面試路過潘家園,然后進去逛了半天,看各種各樣的老古董,當然最多的還是手串,那種核桃,當然還是看到了好多好多有意思的東西,比如下面的小和尚和老和尚,小和尚光著頭感覺特別可愛,老和尚還賣萌, 當然還有下面這個關老爺,他的肚子為什么被雕刻的那么大,難…

    2018-03-26
  • 【26期】Linux第六周學習小總結

        時光匆匆,一周時光悠然而逝,帶給我們的只有知識的充實,和每日強大的自信心,學習的日益深入,慢慢的然我們的思緒和狀態帶回高中時光,吃飯上課睡覺三點一線的生活,枯燥中透露出稍微的晨曦,讓每個明天都充滿著期待,那我們的本周的學習中磁盤管理算是占了很大的比重,畢竟關于磁盤的知識很是難理解,那我就把本周的知識回顧溫習,同時分享給大家。 &n…

    2017-08-19
  • 導讀谷歌三大核心技術之一 GoogleFileSystem(一)

    GoogleFileSystem設計構想 為滿足Google數據處理的需求,Google工程師設計并實現了GoogleFileSystem(GFS)。GFS與傳統分布式文件系統類似,也需要滿足高性能、可伸縮性、可靠性以及可用性。與傳統分布式文件系統思路不不同的是: GFS認為組件失效是常態而非意外,GFS由大量廉價設備組成 文件數量異常巨大 絕大部分文件修改…

    Linux干貨 2017-05-07
欧美性久久久久