馬哥教育網絡班20期+第九周博客作業

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

#!/bin/bash
export nolginbash
export otherbash
for i in `grep -o '[^/]*$' /etc/passwd`;do
	if [ $i == nologin ];then
		let nologinbash=$nologinbash+1
	else
		let otherbash=$otherbash+1
	fi
done
echo "nologin user sum is $nologinbash; other user sum is $otherbash"

2、寫一個腳本

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

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

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

	#!/bin/bash
	hostname = `echo $HOSTNAME`
	if [ $hostname == localhost ];then
		sed -i 's/HOSTNAME=.*/HOSTNAME=www.magedu.com' /etc/sysconfig/network
	else
		echo $HOSTNAME
	fi

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

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

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

	#!/bin/bash
	if [ -e $1 ];then
		fdisk -l $disk
	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
	cat << EOF
	==============
	gzip) tar -zcf
	bzip2) tar -jcf
	xz) tar -Jcf
	=============
	EOF
	case "$1" in 
	gzip)
		tar -zcf  /backups/etc-`date +%Y%m%d`.tar.gz  /etc
		;;
	bzip2)
		tar -jcf /backups/etc-`date +%Y%m%d`.tar.bz /etc
		;;
	xz)
		tar -Jcf /backups/etc-`date + %Y%m%d`.tar.xz /etc
		;;
	quit)
		echo "waring "
		exit 1
		;;
	esac

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

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

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

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

   (4) 其它為無法判斷;

   #!/bin/bash
	if [ -f $1 ];then
		echo This file can be normal access
	elif [ -d $1 ];then
		echo You can use the CD command
	elif [ -L $1 ];then
		echo This file is the access path
	else
		echo Unable to determine
	fi

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

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

   (2) 否則,顯示現有的主機名即可;

   #!/bin/bash
	hostname=`echo $HOSTNAME`
	if [ $hostname == localhost -a $hostname == \(none\) -a -z $hostname ];then
		sed -i 's/HOSTNAME=*/HOSTNAME=mail.magedu.com' /etc/sysconfig/network
	else
		echo $HOSTNAME
	fi

8、寫一腳本,接受一個用戶名為參數;

   (1) 如果用戶的id號為0,則顯示其為管理員;

   (2) 如果用戶的id號大于0且小于500, 則顯示其為系統用戶;

   (3) 否則,則顯示其為普通用戶;

   #!/bin/bash
	if [ `id -u $1` -eq 0 ];then
		echo "user $1 is administrator"
	elif [ `id -u $1` -le 500 ];then
		echo "user $1 is system user"
	else
		echo "user $1 is average user"
	fi

10、寫一個腳本,傳遞一個用戶名參數給腳本;

   (1) 如果用戶的id號大于等于500,且其默認shell為以sh結尾的字符串,則顯示“a user can log system.”類的字符串;

   (2) 否則,則顯示無法登錄系統;

	#!/bin/bash
	if [ `id -u $1` -ge 500 ];then
		if [ `grep -o 'sh$' /etc/passwd` == sh ];then
			echo a user can log system
		fi
	else
		echo a user can\'t log system
	fi	

11、寫一個腳本,完成如下任務 :

   (1) 按順序分別復制/var/log目錄下的每個直接文件或子目錄至/tmp/test1-testn目錄中;

   (2) 復制目錄時,才使用cp -r命令;

   (3) 復制文件時使用cp命令;

   (4) 復制鏈接文件時使用cp -d命令;

   (5) 余下的所有類型,使用cp -a命令;

	#!/bin/bash
	for i in `ls /var/log`;do
		if [ -d $i ];then
			cp -r /var/log/$i /tmp/test1-testn/
		elif [ -f $i ];then
			cp /var/log/$i /tmp/test1-testn/
		elif [ -L $i ];then
			cp -d /var/log/$i /tmp/test1-testn/
		else
			cp -a /var/log/$i /tmp/test-testn/
		fi
	done

原創文章,作者:Net20-deamon,如若轉載,請注明出處:http://www.www58058.com/31872

(0)
Net20-deamonNet20-deamon
上一篇 2016-08-08
下一篇 2016-08-09

相關推薦

  • tomcat

      編程語言:硬件級:微碼編程,匯編語言系統級:C,C++,…應用級:Java, PHP, Python, Ruby, Perl, C#, …Python: PVMStandard LibraryWeb Framework:Django, Flask, …Java:JVM,JDKbash:bash ex…

    Linux干貨 2017-05-22
  • iptables介紹和使用

    iptables/netfilter:    Packets Filter Firewall:          包過濾型防火墻:  Firewall:隔離工具,工作于主機或網絡的邊緣處,對經由的報文根據預先定義的規則(識別標準)進行檢測,對于能夠被規則匹配到的報文實行…

    Linux干貨 2017-04-29
  • 文本處理工具練習題(包含正則)

    正則練習題(包含文本處理練習題) 問題 找出ifconfig命令結果中本機的所有IPv4地址  查出分區空間使用率的最大百分比值 查出用戶UID最大值的用戶名、UID及shell類型 查出/tmp的權限,以數字方式顯示 統計當前連接本機的每個遠程主機IP的連接數,并按從大 到小排序 答; ifconfig | grep -o '[0-9]\…

    Linux干貨 2016-08-08
  • 8月2日作業

    1、在/testdir/data里創建的新文件自動屬于g1組,組g2的成員如:alice能對這些新文件有讀寫權限,組g3的成員如:tom只能對新文件有讀權限,其它用戶(不屬于g1,g2,g3)不能訪問這個文件夾。 答: ~]# groupadd g1 ~]# groupadd g2 ~]# groupadd g3 ~]# useradd -G g2 alic…

    Linux干貨 2016-08-04
  • 通過webGUI顯示日志信息

         日志信息通常對于我們維護人員有著極為重要的意義,能夠為我們提供故障排查、運維監控、歷史操作記錄等等很多必要的信息。為了方便此類信息的獲取,我們可以搭建日志服務器,并實現webGUI顯示以便更直觀形象的觀察收集它們。     一、拓撲圖         &nbs…

    Linux干貨 2015-07-15
  • 高級文件系統的管理

    接上一篇文章http://www.www58058.com/40874 移動介質     掛載意味著 使外來的文件系統看起來如同是主目錄樹 的 一部分     訪問前、介質必須被掛載     摘除時,介質必須被卸載   …

    Linux干貨 2016-09-08

評論列表(2條)

  • 馬哥教育
    馬哥教育 2016-08-12 14:22

    寫的很好,排版也很棒,加油,主機名那個是不是還要用hostname命令修改一下

    • Net20-deamon
      Net20-deamon 2016-08-15 11:35

      @馬哥教育重啟生效了!!!還需要hostname=????嗎

欧美性久久久久