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

相关推荐

  • heartbeat实现高可用集群(1)

    环境 node1 192.168.1.35 node2 192.168.1.36 fip 192.168.1.80 daemon httpd nfs 192.168.1.15 配置HA集群的前提 1.节点时间必须同步,使用ntp协议实现 2.节点间需要通过主机互相通信,必须解析主机名至IP地址 a.建议名称解析功能能使用hosts文件实现 b.通信中使用的名…

    Linux干货 2017-11-03
  • grep与正则表达式

    文本处理中比较强悍的三个工具是:grep、sed、awk。 其中grep主要作用是对于用户给出“模式”对文本逐行进行匹配检查,然后进行打印。   模式:由正则表达式字符及文本字符编写的过滤条件 格式:grep [选项] [正则表达式字符]  文件  常用的选项:     -v:反向查找,显示没有被匹配的的行 …

    Linux干货 2016-08-08
  • lnmp部署实验

    Lnmp部署 实验环境: 1、Centos 7主机一台,客户机一台。 2、在centos 7主机上部署:    Nginx  php-fpm  php-mysql  mariadb-server 实验步骤: 1、启动nginx服务,确保80端口打开,启动mariadb-server,确保3306端口…

    Linux干货 2016-10-30
  • Linux Cluster之Keepalived + Nginx的实现

      一、实验环境 http server1与http server2组成web集群,由nginx服务器实现负载均衡代理,使用keepalived保证nginx服务的高可用。通过虚拟IP192.168.154.177对外提供web服务。 实验目的: 1)当Nginx server1上的nginx服务异常时,由nginx server2提供反带服务。 …

    2016-11-02
  • iptables 初识

    iptables 包过滤性防火墙     iptables是位于用户空间,是防火墙管理配置规则的工具。     iptables的作用:用来添加,删除,管理netfilter规则。     Netfilter是位于内核中真正的防火墙,由5个钩子组成,…

    Linux干货 2016-06-01
  • linux 常用命令

    命令1 rm 作用: 删除指定的文件  选项 作用 -f 强制删除 -i 删除前提示询问 -r  或  -R 递归处理,删除指定目录下的所有文件包括子目录 -v 显示指令执行过程 -d 直接把删除目录的硬连接数据删成零,删除该目录 命令2 终端(tty): 终端类型 开启方式 物理终端 console 控制台console 虚拟…

    Linux干货 2017-07-13

评论列表(1条)

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

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