1. 寫一個腳本,判斷當前系統上所有用戶的shell是否為可登陸shell(即用戶的shell不是/sbin/nologin);分別統計這兩類用戶的個數,通過字符串比較來實現
#! /bin/bash#寫一個腳本,判斷當前系統上所有用戶的shell是否為可登陸shell(即用戶的shell不是/sbin/nologin);#分別統計這兩類用戶的個數#通過字符串比較來實現##declare NO_LOGIN_SHELL=0declare LOGIN_SHELL=0for i in `cat /etc/passwd | cut -f 1 -d :`; do USR_SHELL=`grep "^$i" /etc/passwd | cut -f 7 -d :` if [[ $USR_SHELL == /sbin/nologin ]];then let NO_LOGIN_SHELL=$NO_LOGIN_SHELL+1 else let LOGIN_SHELL=$LOGIN_SHELL+1 fidoneecho -e "total NO LOGIN SHELL are $NO_LOGIN_SHELL.\ntotal LOGIN SHELL is $LOGIN_SHELL"
2. 寫一個腳本
a. 獲取當前主機的主機名,保存于hostname變量中
b. 判斷此變量的值是否為localhost, 如果是,則將當前主機名修改為www.magedu.com
c. 否則,怎顯示當前主機名
#! /bin/bash #a. 獲取當前主機的主機名,保存于hostname變量中 #b. 判斷此變量的值是否為localhost, 如果是,則將當前主機名修改為www.magedu.com #c. 否則,怎顯示當前主機名 # # # _hostname=`hostname` if [[ $_hostname == "localhost" ]]; then hostname www.magedu.com echo $HOSTNAME else hostname fi
3. 寫一個腳本
a. 傳遞一個磁盤設備文件路徑給腳本,判斷此設備是否存在
b. 如果存在,則顯示此設備上所有分區信息
#! /bin/bash [ $# -ne 1 ] && echo "需要一個磁盤設備" && exit 1 if [ -b $1 ]; then if ls /dev/{r,l}* | grep $1;then echo "您輸入的為內存或回環設備" exit 100 else fdisk -l $1 fi else echo "沒有此磁盤設備,請重新輸入" exit 2 fi
4. 寫一個腳本,完成如下功能
腳本能夠接受一個參數
如果參數1為quit, 則顯示退出腳本,并執行正常退出
如果參數1為yes, 則顯示繼續執行腳本
否則,參數1為其他任意值,均執行非正常退出
#! /bin/bash #寫一個腳本,完成如下功能 #腳本能夠接受一個參數 #如果參數1為quit, 則顯示退出腳本,并執行正常退出 #如果參數1為yes, 則顯示繼續執行腳本 #否則,參數1為其他任意值,均執行非正常退出 [ $# -ne 1 ] && echo -e "Useage: $0 [quit|yes]\n其他參數均無效" && exit 1 if [[ $1 == quit ]]; then echo "quit script" exit 0 elif [[ $1 == yes ]]; then echo "conuting script" else echo -e "Usage: $0 [quit|yes]\n其他參數均無效" && exit 2 fi
5. 寫一個腳本,完成如下功能
傳遞一個參數給腳本,此參數為gzip, bzip2或者xz三者之一
a. 如果參數 1的值為gzip, 則使用tar和gzip歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160513.tar.gz
b. 如果參數 1的值為bzip2, 則使用tar和bzip2歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160513.tar.bz2
c. 如果參數 1的值為xz, 則使用tar和sz歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160513.tar.xz
d. 其他任意值,則顯示錯誤壓縮工具,并執行非正常退出
#! /bin/bash #寫一個腳本,完成如下功能 #傳遞一個參數給腳本,此參數為gzip, bzip2或者xz三者之一 #a. 如果參數 1的值為gzip, 則使用tar和gzip歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160513.tar.gz #b. 如果參數 1的值為bzip2, 則使用tar和bzip2歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160513.tar.bz2 #c. 如果參數 1的值為xz, 則使用tar和sz歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20160513.tar.xz #d. 其他任意值,則顯示錯誤壓縮工具,并執行非正常退出 [ $# -ne 1 ] && echo -e "Usage: $0 [gzip|bzip2|xz], 其他參數均無效" && exit 1 [ -d /backup ] || mkdir -p /backup &> /dev/null case $1 in gzip) tar -zcvf /backup/etc-20170310.tar.gz /etc/* ;; bzip2) tar -jcvf /backup/etc-20170310.tar.bz2 /etc/* ;; xz) tar -Jcvf /backup/etc-20170310.tar.xz /etc/* ;; *) echo -e "Unknow zip tools.\nUseage: $0 [gzip|bzip2|xz]" ;; esac
6. 寫一個腳本,接受一個路徑參數
a. 如果為普通文件,則說明其可被正常訪問
b. 如果是目錄文件,則說明可對其使用cd命令
c. 如果為符號鏈接,則說明是個訪問路徑
d. 其他為無法判斷
#! /bin/bash#寫一個腳本,接受一個路徑參數#a. 如果為普通文件,則說明其可被正常訪問#b. 如果是目錄文件,則說明可對其使用cd命令#c. 如果為符號鏈接,則說明是個訪問路徑#d. 其他為無法判斷[ $# -ne 1 ] && echo -e "Usage: $0 DIRECTORY|FILE|LINKFILE" && exit 1if [ -d $1 ];then echo "$1是一個目錄文件,可以對其使用cd命令"elif [ -L $1 ];then echo "$1是一個鏈接文件,鏈接的文件為$(ls -l $1 | cut -d ' ' -f 9,10,11)"elif [ -f $1 ];then echo "$1是一個普通文件,可以正常訪問"else echo "無法判斷此文件屬性" exit 3fi
原創文章,作者:JL,如若轉載,請注明出處:http://www.www58058.com/70898
贊,幾個功能都已經實現了,能給出運行示例會更好~加油~