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
下一篇 2017-03-15

相關推薦

  • 3、常用命令介紹

    http://note.youdao.com/yws/public/redirect/share?id=4840e26ee1d2b2c928b6c26e2ba14661&type=false

    Linux干貨 2016-08-08
  • 通過堡壘機代理SSH運行Ansible(譯)

    有一種常見的網絡安全模式是阻止私有網絡外部對應用服務器的所有連接(指除了業務數據外其它的連接,如后臺管理系統和內部業務系統。譯者注),然后使用 DMZ 區域中的 堡壘機 來選擇性的將到服務器的流量加入白名單。 我們有這樣的一個服務器池,只允許來自特定 IP 地址的 SSH 流量。這些服務器還由 Ansible…

    Linux干貨 2015-02-14
  • N26-第十一周

    1、詳細描述一次加密通訊的過程,結合圖示最佳。     發送方:1、使用單項加密算法計算數據文件的特征碼2、使用發送方私鑰加密特征碼3、使用對稱加密算法生成一對臨時密鑰4、使用臨時密鑰加密數據文件和加密后的特征碼5、使用接收方的公鑰加密使用臨時密鑰加密后的數據和特征碼和臨時密鑰的解密密碼,并將之發送給接收方 接收方1、使用接收方的私鑰解密…

    2017-04-09
  • linux基礎知識

    馮*諾依曼體系 摩爾定律

    2018-03-26
  • Linux簡述與部分基礎命令

    Linux簡述與基礎命令

    Linux干貨 2017-12-04
  • Shell腳本編程基礎之一

      Linux為高效管理系統,提供了CLI命令行接口,供用戶在命令提示符下輸入命令,它有很多bash shell基礎特,根據這些特性能夠很靈活的使用命令,也支持使同時輸入多個命令執行,命令之間用冒號分隔;但是要完成復雜多次重復性的操作,非常不便,系統管理工作變得很是繁忙,很難輕松完成工作任務;不過Linux的shell支持腳本編程,通過編寫純文本格…

    Linux干貨 2016-08-15

評論列表(1條)

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

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

欧美性久久久久