bash腳本編程

Linux腳本編程中bash常用的測試類型:            

    整數測試:

      -gt greater than  大于

      -le less or equal 小于或等于

      -ne not equal    不等

      -eq equal    等于

      -ge greater or equal  大于或等于

      -lt less than  小于

    字符測試            

        == 是否等于

        >  是否大于

        <  是否小于

        != 是否不等于

       =~ 左側字符串能否被右側的模式所匹配

       -z 判斷指定的字符串是否為空,空為真,不空為假

       -n 判斷指定的字符串是否不空,不空為真,空為假;

    文件測試

            文件的存在測試

          -a 

          -e

    文件的類型測試

     -b 是否存在并且為塊設備文件

     -c 是否存在并且為字符設備文件

     -d 是否存在并且為目錄設備文件

    -f 是否存在并且為普通設備文件

    -p 是否存在并且為命名管道文件

    -S 是否存在并且為套接字文件

    -h 是否存在并且為符號鏈接文件

文件權限測試

    -r 是否存在并且對當前用戶可讀

    -w 是否存在并且對當前用戶可寫

    -x 是否存在并且對當前用戶可執行

特殊權限測試

    -g 是否存在并且有sgid權限

    -u 是否存在且擁有suid權限

    -k 是否存在且擁有sticky權限

文件內容測試

    -s 文件是否存在且是否有內容

文件時間戳測試

    -N 文件自從上一次讀取后是否被修改過

從屬關系測試

    -O 當前用戶是否為文件的屬主

    -G 當前用戶是否屬于文件屬組

壓縮與解壓縮工具

   file-roller
?     compress/uncompress: .Z
?     gzip/gunzip: .gz
?     bzip2/bunzip2: .bz2
?     xz/unxz: .xz
?     zip/unzip
?     tar
?     cpio

作業 

    

                查找/var目錄下屬主為root,且屬組為mail的所有文件

                find /var/ -user root -group mail

                查找/var目錄下不屬于root、lp、gdm的所有文件

                find /var/  -not \( -user root -o -user lp -o -user gdm \) -ls

                查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件

                find /var/ -mtime -7 -not \( -user root -o -user postfix \) -ls

                查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪問過的文件

                find /var/ -atime -7 -nouser  -nogroup

                查找/etc目錄下大于1M且類型為普通文件的所有文件

                find /etc/ -type f -size +1M  -exec ls -lh {} \;

                查找/etc目錄下所有用戶都沒有寫權限的文件

                find /etc/ -not -perm /222 -ls

                查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件

                find /etc/init.d/ -perm /111 -a -perm /002

    

         編寫腳本,利用變量RANDOM生成10個隨機數字,輸出這個10數字,并顯示其中的最大者

#!/bin/bash
	i=1
	max=0
        until [ $i -eq 10 ] ;do
                one=`echo $RANDOM`
        echo $one
        if [ $one -gt $max ] ;then
                max=$one
        else
                max=$max
        fi
                let i=$i+1
        done
	echo "the bigest number is $max"

      編寫腳本,通過ping命令探測172.16.250.1-254范圍內的所有主機的在線狀態,統計在線主機和離線主機各多少。 

#!/bin/bash
	#
	i=0 a=0 b=0
	until [ $i -gt 254 ] ; do
        ping -c 2 -w 2 10.1.252."$i" &> /dev/null
			if [ $? -eq 0 ] ;then
				echo "The host 10.1.252.$i on line"
				let a=$a+1
		else 
				echo "The host 10.1.252.$i out of line"
				let b=$b+1
			fi
				let i=$i+1
		done
	echo "The totol on line host is $a"
	echo "The totol out of line host is $b"

     編寫腳本,打印九九乘法表

#!/bin/bash
	#
	h=1 s=1
		until [ $h -gt 9 ] ; do
     echo -e " \n"		
        s=1
      until [ $s -gt $h ] ; do
		let sum=$h*$s		
		echo -e "$s*$h=$sum \c"
		let s=$s+1
      done
       let h=$h+1
   done
echo -e " \n"

原創文章,作者:317376161,如若轉載,請注明出處:http://www.www58058.com/37003

(0)
317376161317376161
上一篇 2016-08-18
下一篇 2016-08-18

相關推薦

  • 第五周作業

    1、顯示當前系統上root,fedora或user1用戶的默認shell。 [root@hostname ~]# grep -E ‘^(root|fedora|user1)’ /etc/passwd | cut -d: -f1,7 root:/bin/bash 2、找出/etc/rc.d/init.d/functions文件中某詞后面跟一組小括號的行,形如:…

    Linux干貨 2017-08-04
  • centos6啟動故障及修復

    前言 前文中我們熟悉了linux的啟動流程,如果在啟動過程中文件丟失或者損壞了怎么辦呢?難道只有重裝系統這一條路嗎?那我們不是成了普通網管了嗎?作為專業的運維工程師,我們需要掌握如何快速修復系統啟動。 實驗1: 破壞/boot/grup/下的文件——-stage2 階段  不影響啟動  mv /boot/grub …

    2017-09-03
  • LVS實際操作與調度方法

    LVS概念、類型、調度方法、命令操作與實際配置 字數2134 閱讀4 評論0 喜歡1 LVS (一)LVS概念 LVS( Linux Virtual Server)是一種負載均衡(LB,Laod Balance)技術,采用IP負載均衡技術和基于內容請求分發技術。具有很好的吞吐率,將請求均衡地轉移到不同的服務器上執行。LVS是一套…

    Linux干貨 2016-10-30
  • LVS詳解

    概述     LVS是工作在4層的負載均衡調度器,可根據請求報文的目標IP和目標協議及端口,根據指定的調度算法,將請求調度轉發至某RealServer,本篇就針對LVS的原理,配置和使用進行簡單介紹,具體包含:     1、LVS的四種類型的介紹   &nbs…

    Linux干貨 2016-10-27
  • grep命令和find命令的練習

    1、顯示系統上root、Fedora、或user1用戶的默認shell [root@localhost ~]# grep -E “^(root|fedora|user1)\>” /etc/passwd | cut -d: -f1,7 root:/bin/bash fedora:/bin/bash user1:/bin/bash 2、找出/etc/rc.…

    Linux干貨 2017-07-30
  • 第三周作業

    1.列出當前系統上所有已經登錄的用戶名,同一個用戶登錄多次,只顯示一次 [root@localhost ~]# who |awk '{print $1}'|sort -u root 2.取出最后登錄到當前系統的用戶的相關信息 [root@localhost ~]#&nb…

    Linux干貨 2016-12-13

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-19 09:21

    總結的有點簡單了哦,下次用點心,作業完成的還可以。

欧美性久久久久