第九周作業

第九周作業

第九周作業

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

#!/bin/bash

LOGIN_USER=0

NOLOGIN_USER=0

for SHELLUSER in $(cat /etc/passwd | cut -d : -f 7);do

if [ $SHELLUSER == “/sbin/nologin” ];then

let NOLOGIN_USER++

else

let LOGIN_USER++

fi

done

 

echo “login shell = $LOGIN_USER , nologin shell =$NOLOGIN_USER”

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

#!/bin/bash

hostname=$(echo $HOSTNAME)

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

hostname “www.magedu.com”

else

echo $HOSTNAME

fi

 

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

#!/bin/bash

if [[ “$1” =~ /dev/[hs]d* ]];then

if ls /dev/[hs]d* | grep “$1” &> /dev/null ; then

fdisk -l $1

else

echo “no this partitions”

exit 2

fi

else

echo “wrong path”

fi

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

#!/bin/bash

read -p “Please give a parameter(yes or quit)” -t 5 NAME

if [ -z $NAME ];then

echo “need a parameter”

exit 2

elif [ $NAME == yes ]; then

echo “continue scripting”

elif [ $NAME == quit ]; then

echo “Normal exit”

exit 0

else

echo “wrong paramter”

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

NAME=/backups/etc-20160613.tar

read -p “chose a compression tool(gzip/bzip2/xz)” -t 5 TOOL

cd /

mkdir backups &> /dev/null

if [ $TOOL == gzip ];then

tar -zcf $NAME.gz etc

elif [ $TOOL == bzip2 ];then

tar -jcf $NAME.bz2 etc

elif [ $TOOL == xz ];then

tar -Jcf $NAME.xz etc

else

echo “wrong compression tool”

fi

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

#!/bin/bash

read -p “please give a path to (file|dir|ln)”? NAME

if [[ -f $NAME ]];then

echo “this is a file,you can access”

elif [[ -d $NAME ]];then

echo “this is a Directory file,you can cd”

elif [[ -L $NAME ]];then

echo “this is a path to file”

else

echo “cannot judge”

fi

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

#!/bin/bash

HOSTNAME=$(hostname)

if [ $HOSTNAME == “localhost” -o “(none)” ];then

hostname mail.magedu.com

else

echo “hostname is $HOSTNAME”

fi

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/88332

(1)
N27_yangjifengN27_yangjifeng
上一篇 2017-11-13
下一篇 2017-11-13

相關推薦

  • lvm基本應用,擴展及縮減實現

    一、    LVM的創建     LVM因為他的可擴展和可伸縮的特性,被廣泛的應用于磁盤管理中,創建LVM則必須先創建pv然后創建vg最后才能創建lv,他們之間的關系如下:呈金字塔結構     1、創建查看pv     …

    Linux干貨 2016-03-09
  • 網絡及TCP

    為什么要使用分層網絡模型     降低復雜性     標準化接口     簡化模塊化設計     確保技術的互操作性     加快發展速度  &nbs…

    2017-05-08
  • Apache-httpd工作模型

    httpd   httpd是由apache軟件基金會開發的一款著名的web服務器軟件。由于其開放源代碼,并且擁有跨平臺、功能強大、安全穩定等特性,而被廣泛使用。早期httpd是在修修補補的基礎上成長起來的,所以早期也叫作a pachey server,由于開發httpd的組織叫作apache,因此httpd也被稱作apache。httpd有三個長線維護版本,…

    Linux干貨 2017-02-15
  • systemd

    1、systemd (1)CentOS 7 使用systemd替換了SysV。Systemd目的是要取代一直在使用的init系統,兼容SysV和LSB的啟動腳本,負責在系統啟動或運行時,激活系統資源、服務器進程和其它進程。 (2)systemd的新特性: 系統引導是實現服務并行啟動 按需啟動守護進程 自動化管理各服務間的依賴關系 同時采用sockets式與D…

    Linux干貨 2016-09-21
  • 文本處理三劍客之Sed(行編輯器)

    sed(流編輯器,行編輯器)     是一種流編輯器,一次處理一行內容,處理時把當前處理的行存儲在臨時緩存中,成為“模式空間”,接著用sed命令處理緩沖區的內容,處理完畢后吧緩沖區內容輸出到屏幕接著處理下一行。這樣不斷重復到末尾。文件內容并沒有改變。除非使用重定向輸出才會改變內容。 sed:行編輯器(全屏編輯器:vi)   &n…

    Linux干貨 2016-08-15
  • N22-℡浮生.若夢 ╮第一周作業

    1.描述計算機的組成及其功能  組成:     硬件       (1).CPU: 是計算機的主要設備之一,功能主要是解釋計算機指令以及處理計算機軟件中的數據.       (2).存儲器:內存,硬盤,存儲器的功能是存儲程序、數據和各種信號…

    Linux干貨 2016-09-19

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-12-02 09:08

    寫的很好,腳本只能多聯系,之后就會了。

欧美性久久久久