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.178linux.com/37003

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

相关推荐

  • Linux磁盘管理(一)

      磁盘,计算机最常见的存储硬件设备。对Linux而言,其哲学思想之一就是一切皆文件,因此linux之上所有设备的操作都是通过文件接口来实现的,也就是说在访问设备的时候就如同访问一个文件一样,因为他们使用的都是文件系统接口。 向磁盘中写入数据的操作过程:   首先硬件设备在系统上会映射成一个一个文件,我们在对硬件中写入数据就相当…

    Linux干货 2016-08-30
  • N22-第二周作业

    1、linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。    文件管理命令        mkdir     创建目录         &…

    Linux干货 2016-08-22
  • JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

    摘要: JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat、hprof等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。     现实企业级Java开发中,有时候我们会碰到下面这些问题: Out…

    2017-08-17
  • 源码安装http

    http://xxlii.blog.51cto.com/10277731/1841570     哈哈!

    Linux干货 2016-08-24
  • raid5创建

    创建分区并改类型 创建raid5   创建把文件系统 生成配置文件    

    2017-12-17
  • N22-第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 # who|cut -d' ' -f1|sort|uniq # root 2、取出最后登录到当前系统的用户的相关信息。 # last|head -n 1 # …

    Linux干货 2016-08-29

评论列表(1条)

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

    总结的有点简单了哦,下次用点心,作业完成的还可以。