N27_網絡班第九周作業
1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現
#!/bin/bash
loginuser=`grep -v '/sbin/nologin' /etc/passwd | wc -l`
nologin=`grep '/sbin/nologin' /etc/passwd | wc -l`
echo "可登錄的用戶共$loginuser"
echo "不可登錄的用戶共$nologin"
[root@localhost ~]# bash bin.sh
可登錄的用戶共22
不可登錄的用戶共43
2、寫一個腳本
1)獲取當前主機的主機名,保存于hostname變量中
2)判斷此變量的值是否為localhost,如果是,則將當前主機名修改為www.magedu.com
3)否則,則顯示當前主機名
#!/bin/bash
host=`hostname`
if (($host=="localhost"));then
hostname shoushangdezhu
else
echo $hostname
fi
[root@localhost ~]# hostname
shoushangdezhu
3、寫一個腳本,完成如下功能
1)傳遞一個磁盤設備文件路徑給腳本,判斷此設備是否存在
2)如果存在,則顯示此設備上的所有分區信息
#!/bin/bash
if [ $# -lt 1 ];then
echo "請輸入磁盤文件名"
exit 1
fi
if [ -e $1 ];then
fdisk -l $1
else
echo "沒有這個磁盤文件"
fi
[root@shoushangdezhu ~]# bash filename.sh /dev/sdb1
Disk /dev/sdb1: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
4、寫一個腳本,完成如下功能
腳本能夠接受一個參數
1)如果參數1為quit,則顯示退出腳本,并執行正常退出
2)如果參數1為yes,則顯示繼續執行腳本
3)否則,參數1為其他任意值,均執行非正常退出
if [ $# -lt 1 ];then
echo "請輸入quit/yes/。。。"
exit 1
fi
if [ "$1" == "quit" ];then
echo "quit"
exit 2
elif [ "$1" == "yes" ];then
echo "continue"
else
echo "break"
exit 3
fi
echo "lalalal"
················
[root@cjh ~]# bash a.sh
請輸入quit/yes/。。。
[root@cjh ~]# bash a.sh as
break
[root@cjh ~]# bash a.sh quit
quit
[root@cjh ~]# bash a.sh yes
continue
lalalal
5、寫一個腳本,完成如下功能
傳遞一個參數給腳本,此參數為gzip,則使用tar和gzip、bzip2或者xz三者之一
1)如果參數1的值為gzip,則使用tar和gzip歸檔壓縮/etc目錄至/backups目錄中,并
命名為/backups/etc-20171008.tar.gz
2)如果參數1為bzip2,則使用tar和bzip2歸檔壓縮/etc目錄至/backups目錄中,并命名為/backups/etc-20171008.tar.bz2
3)如果參數1的值為xz,則使用tar和xz歸檔壓縮/etc目錄至/backup目錄中,并命名為/backups/etc-20171008.tar.xz
4)其他任意值,則顯示錯誤壓縮工具,并執行非正常退出
#!/bin/bash
if [ $# -lt 1 ];then
echo "請輸入一個參數(gzip、tar、bzip2)"
exit 1
fi
day=`date +%Y%m%d`
if [ $1 == "gzip" ];then
tar -zcf /backup/$day.tar.gz /etc/
elif [ $1 == "bzip2" ];then
tar -jcf /backup/$day.tar.gz /etc/
elif [ $1 == "xz" ];then
tar -Jcf /backup/$day.tar.xz /etc/
exit 0
fi
6、寫一個腳本,接受一個路徑參數
1)如果為普通文件,則說明其可被正常訪問
2)如果是目錄文件,則說明可對其使用cd命令
3)如果為符號鏈接文件,則說明是個訪問路徑
4)其他為無法判斷
#!/bin/bash
if [ $# -lt 1 ];then
echo "請輸入一個路徑"
exit 0
fi
if [ -f $1 ];then
echo "這是一個普通文件可以正常訪問"
elif [ -d $1 ];then
echo "這是一個目錄,可以對其使用cd命令"
elif [ -L $1 ];then
echo "這是一個符號鏈接"
else
echo "無效路徑"
exit 1
fi
7、寫一個腳本,取得當前主機的主機名,判斷
1)如果主機名為空或者為localhost,或為‘none’,則將其名命名為mail.magedu.com
#!/bin/bash
host=`hostname`
if [ $host == "localhost" -o $host == 'none'];then
hostname shoushangdezhu
else
echo $hostname
fi
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/87719