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

相关推荐

  • 配置逻辑卷·设定LVM快照·btrfs文件系统

    _ueditor_page_break_tag_ 配置逻辑卷,设定LVM快照,btrfs文件系统                 逻辑卷管理器( LVM)v允许对卷进行方便操作的抽象层,包括重新设定文…

    Linux干货 2016-09-01
  • Linux基础知识之软件包管理(二)

    (1)CentOS7 yum dnf  yum repository: yum repo 存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录下,repodata) 文件服务器: ftp:// http:// nfs:// file:/// (2)yum客户端: 配置文件: /etc/yum…

    Linux干货 2016-08-24
  • N25-第一周 总结

    一、描述计算机的组成及其功能     CPU:包括运算器、控制器、寄存器、缓存,计算枢纽,网络的包处理、磁盘读写、数学计算等。     内存:加载数据,提高计算速度,程序被加载到内存成为进程运行。     输入:键盘、鼠标     输出:打印机、显示器 二、按系列罗列linux的…

    Linux干货 2016-12-05
  • 第二周作业

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 目录管理类的命令: mkdir, rmdir mkdir:make directories mkdir [OPTION]… DIRECTORY… -p: 自动按需创建父目录; -v: verbose,显示详细过程; -m MODE:直接给定权限; 注意:路径…

    Linux干货 2018-01-17
  • 高可用集群基本概念与heartbeat文本配置接口

    一、高可用集群基本概念:     什么是高可用集群:          所谓高可用集群,就是在出现故障时,可以把业务自动转移到其他主机上并让服务正常运行的集群构架     高可用集群的构架层…

    Linux干货 2016-01-13
  • bash通配符和正则表达式元字符部分归纳

    Linux中有各种各样的字符,而且在不同环境和不同命令之下含义也不同 作为新手,决定先归纳学到的符号,方便后面学习厘清它们之间的关系。 glob 简化了的正则表达式 bash默认通配符: ? :只匹配一个任意字符; * :匹配零个或多个任意字符;   [^] :方括号及其中^中的取反 [abc]:匹配任何一个列在方括号中的字符(这个例子要么匹配一个…

    Linux干货 2016-04-11

评论列表(1条)

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

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