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)
上一篇 2016-08-18 10:10
下一篇 2016-08-18 10:10

相关推荐

  • 超文本传输协议-HTTP

        超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。     设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或…

    Linux干货 2017-07-31
  • shell,系统启动和内核管理

    shell中的for和while循环,Linux的组成,系统启动的步骤,以及内核的管理

    2017-12-21
  • 网络管理基础

    什么是网络?    在计算机领域中,网络是信息传输,接受,共享的虚拟平台,通过它把各个点,面体的信息联系到一起, 从而实现这些资源的共享。 网路物理组件     终端:可发送和接受数据的,如计算机。移动设备,打印机,服务器….    互联设备:互联…

    Linux干货 2016-09-06
  • Linux命令date命令详解

    在linux环境中,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便,下面是详细的使用说明和示例 在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便。 1.命令格式:date[参数]… [+格式] 2.命…

    2017-07-18
  • RPM包管理功能全解。【第三周】

    CentOS系统上rpm命令管理程序包: 安装、升级、卸载、查询、校验、数据库维护 rpm命令:rpm [OPTIONS] [PACKAGE_FILE]     安装:-i, –install     升级:-U, –update,&n…

    Linux干货 2016-11-26
  • Linux的用户组和权限管理之特殊权限及ACL的使用

    用户组和权限管理 一、了解和使用批量新建用户和批量修改用户密码: ##用户创建的模板和配置文件的存放位置:/etc/default/useradd;/etc/skel/* ;/etc/login.defs## 批量新建用户(newusers):适合用于新老机器转换时,迁移系统上的用户。 使用格式: newusers  passwd  fi…

    Linux干货 2016-08-04

评论列表(1条)

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

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